diff options
Diffstat (limited to 'libsolidity/analysis')
| -rw-r--r-- | libsolidity/analysis/TypeChecker.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 016fe66a..0d74ddba 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -751,19 +751,10 @@ bool TypeChecker::visit(Conditional const& _conditional) _conditional.trueExpression().accept(*this); _conditional.falseExpression().accept(*this); - TypePointer const& trueType = type(_conditional.trueExpression()); - TypePointer const& falseType = type(_conditional.falseExpression()); + TypePointer trueType = type(_conditional.trueExpression())->mobileType(); + TypePointer falseType = type(_conditional.falseExpression())->mobileType(); - TypePointer commonType; - if (*trueType == *falseType) - commonType = trueType; - else - { - commonType = Type::commonType(trueType, falseType); - if (!commonType) - // we fake it as an equal operator, but any other comparison operator can work. - commonType = trueType->binaryOperatorResult(Token::Equal, falseType); - } + TypePointer commonType = Type::commonType(trueType, falseType); if (!commonType) { typeError( |
