From 13d7bc4ee8effe78dd496064065717af2cbeacc0 Mon Sep 17 00:00:00 2001 From: chriseth Date: Tue, 13 Oct 2015 12:22:57 +0200 Subject: Some more tests and typos fixed. --- test/libsolidity/SolidityNameAndTypeResolution.cpp | 25 ++++++++++++++++++++++ test/libsolidity/SolidityParser.cpp | 2 ++ 2 files changed, 27 insertions(+) (limited to 'test/libsolidity') diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp index 4316c6a8..b4810af7 100644 --- a/test/libsolidity/SolidityNameAndTypeResolution.cpp +++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp @@ -2411,11 +2411,14 @@ BOOST_AUTO_TEST_CASE(multi_variable_declaration_wildcards_fine) contract C { function three() returns (uint, uint, uint); function two() returns (uint, uint); + function none(); function f() { var (a,) = three(); var (b,c,) = two(); var (,d) = three(); var (,e,g) = two(); + var (,,) = three(); + var () = none(); } )"; BOOST_CHECK_NO_THROW(parseAndAnalyseReturnError(text)); @@ -2464,6 +2467,28 @@ BOOST_AUTO_TEST_CASE(multi_variable_declaration_wildcards_fail_4) SOLIDITY_CHECK_ERROR_TYPE(parseAndAnalyseReturnError(text), TypeError); } +BOOST_AUTO_TEST_CASE(multi_variable_declaration_wildcards_fail_5) +{ + char const* text = R"( + contract C { + function one() returns (uint); + function f() { var (,) = one(); } + } + )"; + SOLIDITY_CHECK_ERROR_TYPE(parseAndAnalyseReturnError(text), TypeError); +} + +BOOST_AUTO_TEST_CASE(multi_variable_declaration_wildcards_fail_6) +{ + char const* text = R"( + contract C { + function two() returns (uint, uint); + function f() { var (a, b, c) = two(); } + } + )"; + SOLIDITY_CHECK_ERROR_TYPE(parseAndAnalyseReturnError(text), TypeError); +} + BOOST_AUTO_TEST_SUITE_END() } diff --git a/test/libsolidity/SolidityParser.cpp b/test/libsolidity/SolidityParser.cpp index 569530b9..03930479 100644 --- a/test/libsolidity/SolidityParser.cpp +++ b/test/libsolidity/SolidityParser.cpp @@ -945,6 +945,8 @@ BOOST_AUTO_TEST_CASE(multi_variable_declaration) var (f,) = 4; var (x,,) = g(); var (,y,) = g(); + var () = g(); + var (,,) = g(); } function g() returns (uint, uint, uint) {} } -- cgit