Clarified binary operator checking for integer types.

This commit is contained in:
Christian 2014-12-28 13:35:58 +01:00
parent 7dc7827907
commit 8442974617

View File

@ -201,17 +201,17 @@ TypePointer IntegerType::binaryOperatorResultImpl(Token::Value _operator, TypePo
if (!commonType)
return TypePointer();
// All integer types can be compared
if (Token::isCompareOp(_operator))
return commonType;
// Nothing else can be done with addresses, but hashes can receive bit operators
if (commonType->isAddress())
{
if (!Token::isCompareOp(_operator))
return TypePointer();
}
else if (commonType->isHash())
{
if (!(Token::isCompareOp(_operator) || Token::isBitOp(_operator)))
return TypePointer();
}
return commonType;
return TypePointer();
else if (commonType->isHash() && !Token::isBitOp(_operator))
return TypePointer();
else
return commonType;
}
const MemberList IntegerType::AddressMemberList =