mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #5514 from corollari/develop
Remove unary + from the type system
This commit is contained in:
commit
5fde279d2a
@ -612,10 +612,9 @@ TypeResult IntegerType::unaryOperatorResult(Token _operator) const
|
|||||||
// "delete" is ok for all integer types
|
// "delete" is ok for all integer types
|
||||||
if (_operator == Token::Delete)
|
if (_operator == Token::Delete)
|
||||||
return TypeResult{make_shared<TupleType>()};
|
return TypeResult{make_shared<TupleType>()};
|
||||||
// we allow +, -, ++ and --
|
// we allow -, ++ and --
|
||||||
else if (_operator == Token::Add || _operator == Token::Sub ||
|
else if (_operator == Token::Sub || _operator == Token::Inc ||
|
||||||
_operator == Token::Inc || _operator == Token::Dec ||
|
_operator == Token::Dec || _operator == Token::BitNot)
|
||||||
_operator == Token::BitNot)
|
|
||||||
return TypeResult{shared_from_this()};
|
return TypeResult{shared_from_this()};
|
||||||
else
|
else
|
||||||
return TypeResult{""};
|
return TypeResult{""};
|
||||||
|
@ -366,7 +366,7 @@ BOOST_AUTO_TEST_CASE(unary_operators)
|
|||||||
{
|
{
|
||||||
char const* sourceCode = R"(
|
char const* sourceCode = R"(
|
||||||
contract test {
|
contract test {
|
||||||
function f(int y) { !(~+- y == 2); }
|
function f(int y) { !(~- y == 2); }
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
bytes code = compileFirstExpression(sourceCode, {}, {{"test", "f", "y"}});
|
bytes code = compileFirstExpression(sourceCode, {}, {{"test", "f", "y"}});
|
||||||
|
@ -6,3 +6,4 @@ contract test {
|
|||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// SyntaxError: (70-72): Use of unary + is disallowed.
|
// SyntaxError: (70-72): Use of unary + is disallowed.
|
||||||
|
// TypeError: (70-72): Unary operator + cannot be applied to type uint256
|
||||||
|
Loading…
Reference in New Issue
Block a user