Merge pull request #4507 from ethereum/v050-var-keyword-trace-removals

Ensures an empty use of var keyword is caught with the proper non-fatal error message
This commit is contained in:
Alex Beregszaszi
2018-08-01 10:59:26 +01:00
committed by GitHub
6 changed files with 59 additions and 2 deletions
@@ -0,0 +1,7 @@
contract C {
function f() public pure {
(uint a, uint b, uint c);
}
}
// ----
// ParserError: (76-77): Expected '=' but got ';'
@@ -0,0 +1,9 @@
contract C {
function f() public pure {
var ();
var (,);
}
}
// ----
// SyntaxError: (52-58): The use of the "var" keyword is disallowed. The declaration part of the statement can be removed, since it is empty.
// SyntaxError: (68-75): The use of the "var" keyword is disallowed. The declaration part of the statement can be removed, since it is empty.
@@ -0,0 +1,8 @@
contract C {
function f() public pure {
var a;
a.NeverReachedByParser();
}
}
// ----
// TypeError: (52-57): Use of the "var" keyword is disallowed.
@@ -0,0 +1,9 @@
contract C {
function f() public pure {
var (b, c);
b.WeMustNotReachHere();
c.FailsToLookupToo();
}
}
// ----
// TypeError: (52-62): Use of the "var" keyword is disallowed.
@@ -0,0 +1,7 @@
contract C {
function f() public pure {
var (d, e,);
}
}
// ----
// TypeError: (52-63): Use of the "var" keyword is disallowed.