mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Restrict unary negation to signed integers.
This commit is contained in:
@@ -627,9 +627,10 @@ TypeResult IntegerType::unaryOperatorResult(Token _operator) const
|
||||
// "delete" is ok for all integer types
|
||||
if (_operator == Token::Delete)
|
||||
return TypeResult{TypeProvider::emptyTuple()};
|
||||
// we allow -, ++ and --
|
||||
else if (_operator == Token::Sub || _operator == Token::Inc ||
|
||||
_operator == Token::Dec || _operator == Token::BitNot)
|
||||
// unary negation only on signed types
|
||||
else if (_operator == Token::Sub)
|
||||
return isSigned() ? TypeResult{this} : TypeResult::err("Unary negation is only allowed for signed integers.");
|
||||
else if (_operator == Token::Inc || _operator == Token::Dec || _operator == Token::BitNot)
|
||||
return TypeResult{this};
|
||||
else
|
||||
return TypeResult::err("");
|
||||
|
||||
Reference in New Issue
Block a user