diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/libsolidity/SolidityParser.cpp | 22 | ||||
-rw-r--r-- | test/libsolidity/syntaxTests/parsing/return_var.sol | 13 | ||||
-rw-r--r-- | test/libsolidity/syntaxTests/parsing/var_in_function_arguments.sol | 13 |
3 files changed, 26 insertions, 22 deletions
diff --git a/test/libsolidity/SolidityParser.cpp b/test/libsolidity/SolidityParser.cpp index 93e6bcaa..100b3662 100644 --- a/test/libsolidity/SolidityParser.cpp +++ b/test/libsolidity/SolidityParser.cpp @@ -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"( diff --git a/test/libsolidity/syntaxTests/parsing/return_var.sol b/test/libsolidity/syntaxTests/parsing/return_var.sol new file mode 100644 index 00000000..113032a7 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/return_var.sol @@ -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. diff --git a/test/libsolidity/syntaxTests/parsing/var_in_function_arguments.sol b/test/libsolidity/syntaxTests/parsing/var_in_function_arguments.sol new file mode 100644 index 00000000..cb166c7d --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/var_in_function_arguments.sol @@ -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. |