Unary + now a synax error (experimental 0.5.0)

The unary + was deprecated with a warning, but will be elevated to an
error in 0.5.0.  This adds the syntax error for the 0.5.0 pragma, and
for a true 0.5.0 release we should consider removing the operator from
the parser.
This commit is contained in:
Rhett Aultman
2017-09-29 17:50:25 +01:00
committed by Alex Beregszaszi
parent 466cce58df
commit e434437eb7
3 changed files with 34 additions and 1 deletions
@@ -4135,6 +4135,8 @@ BOOST_AUTO_TEST_CASE(rational_unary_operation)
}
)";
CHECK_SUCCESS_NO_WARNINGS(text);
// Test deprecation warning under < 0.5.0
text = R"(
contract test {
function f() pure public {
@@ -4154,6 +4156,29 @@ BOOST_AUTO_TEST_CASE(rational_unary_operation)
}
)";
CHECK_WARNING(text,"Use of unary + is deprecated");
// Test syntax error under 0.5.0
text = R"(
pragma experimental "v0.5.0";
contract test {
function f() pure public {
ufixed16x2 a = +3.25;
fixed16x2 b = -3.25;
a; b;
}
}
)";
CHECK_ERROR(text, SyntaxError, "Use of unary + is deprecated");
text = R"(
pragma experimental "v0.5.0";
contract test {
function f(uint x) pure public {
uint y = +x;
y;
}
}
)";
CHECK_ERROR(text, SyntaxError, "Use of unary + is deprecated");
}
BOOST_AUTO_TEST_CASE(leading_zero_rationals_convert)