mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Clarified binary operator checking for integer types.
This commit is contained in:
parent
7dc7827907
commit
8442974617
20
Types.cpp
20
Types.cpp
@ -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 =
|
||||
|
Loading…
Reference in New Issue
Block a user