aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlbert <me@albert.sh>2018-11-28 20:23:19 +0800
committerAlbert <me@albert.sh>2018-12-06 08:54:04 +0800
commitdf08d79623302d8eb234402c2f4f00f2b06d7646 (patch)
tree3249b5876e69d5d209a36ede20dd410061af46ce
parent15e28fa444843d6b8e5bef81ae9fc73a41ae97f6 (diff)
downloaddexon-solidity-df08d79623302d8eb234402c2f4f00f2b06d7646.tar.gz
dexon-solidity-df08d79623302d8eb234402c2f4f00f2b06d7646.tar.zst
dexon-solidity-df08d79623302d8eb234402c2f4f00f2b06d7646.zip
Fix #5470
Remove unary + from the type system
-rw-r--r--libsolidity/ast/Types.cpp7
-rw-r--r--test/libsolidity/syntaxTests/parsing/unary_plus_expression.sol1
2 files changed, 4 insertions, 4 deletions
diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp
index c6b4211a..fd8839ca 100644
--- a/libsolidity/ast/Types.cpp
+++ b/libsolidity/ast/Types.cpp
@@ -612,10 +612,9 @@ TypeResult IntegerType::unaryOperatorResult(Token _operator) const
// "delete" is ok for all integer types
if (_operator == Token::Delete)
return TypeResult{make_shared<TupleType>()};
- // we allow +, -, ++ and --
- else if (_operator == Token::Add || _operator == Token::Sub ||
- _operator == Token::Inc || _operator == Token::Dec ||
- _operator == Token::BitNot)
+ // we allow -, ++ and --
+ else if (_operator == Token::Sub || _operator == Token::Inc ||
+ _operator == Token::Dec || _operator == Token::BitNot)
return TypeResult{shared_from_this()};
else
return TypeResult{""};
diff --git a/test/libsolidity/syntaxTests/parsing/unary_plus_expression.sol b/test/libsolidity/syntaxTests/parsing/unary_plus_expression.sol
index 5646c43b..f2542d90 100644
--- a/test/libsolidity/syntaxTests/parsing/unary_plus_expression.sol
+++ b/test/libsolidity/syntaxTests/parsing/unary_plus_expression.sol
@@ -6,3 +6,4 @@ contract test {
}
// ----
// SyntaxError: (70-72): Use of unary + is disallowed.
+// TypeError: (70-72): Unary operator + cannot be applied to type uint256