Fix internal compiler error when parsing `var` declaration without identifier.

This commit is contained in:
Daniel Kirchner
2018-04-12 14:57:14 +02:00
parent c3dc67d0e0
commit 6862f22943
5 changed files with 31 additions and 24 deletions
-22
View File
@@ -557,16 +557,6 @@ BOOST_AUTO_TEST_CASE(variable_definition_with_initialization)
BOOST_CHECK(successParse(text));
}
BOOST_AUTO_TEST_CASE(variable_definition_in_function_parameter)
{
char const* text = R"(
contract test {
function fun(var a) {}
}
)";
CHECK_PARSE_ERROR(text, "Expected explicit type name");
}
BOOST_AUTO_TEST_CASE(variable_definition_in_mapping)
{
char const* text = R"(
@@ -579,18 +569,6 @@ BOOST_AUTO_TEST_CASE(variable_definition_in_mapping)
CHECK_PARSE_ERROR(text, "Expected elementary type name for mapping key type");
}
BOOST_AUTO_TEST_CASE(variable_definition_in_function_return)
{
char const* text = R"(
contract test {
function fun() returns(var d) {
return 1;
}
}
)";
CHECK_PARSE_ERROR(text, "Expected explicit type name");
}
BOOST_AUTO_TEST_CASE(operator_expression)
{
char const* text = R"(
@@ -0,0 +1,13 @@
contract C {
function f() returns(var) {}
function f() returns(var x) {}
function f() public pure returns (var storage) {}
function f() public pure returns (var storage x) {}
}
// ----
// ParserError: (38-38): Expected explicit type name.
// ParserError: (71-71): Expected explicit type name.
// ParserError: (119-119): Expected explicit type name.
// ParserError: (123-123): Location specifier needs explicit type name.
// ParserError: (173-173): Expected explicit type name.
// ParserError: (177-177): Location specifier needs explicit type name.
@@ -0,0 +1,13 @@
contract C {
function f(var) public pure {}
function f(var x) public pure {}
function f(var storage) public pure {}
function f(var storage x) public pure {}
}
// ----
// ParserError: (28-28): Expected explicit type name.
// ParserError: (63-63): Expected explicit type name.
// ParserError: (100-100): Expected explicit type name.
// ParserError: (104-104): Location specifier needs explicit type name.
// ParserError: (143-143): Expected explicit type name.
// ParserError: (147-147): Location specifier needs explicit type name.