Type SimpleBinaryOperation::type() const { if (!m_symbolCache) return Type(); if (protoReturn().isUltimatelyNull() && !typeOf(FirstOperand).isNull()) return typeOf(FirstOperand).strippedTo(protoReturn()); else return protoReturn(); }
Type SimpleUnaryOperation::type() const { if (!m_symbolCache) return Type(); if (protoReturn().isUltimatelyNull() && !typeOf(TheOperand).isNull()) { /* mDebug() << typeOf(TheOperand)->code(); typeOf(TheOperand)->debugTree(); mDebug() << protoReturn()->code(); protoReturn()->debugTree(); mDebug() << typeOf(TheOperand).strippedTo(protoReturn())->code(); typeOf(TheOperand).strippedTo(protoReturn())->debugTree();*/ return typeOf(TheOperand).strippedTo(protoReturn()); } return protoReturn(); }