From 75bba5c9f02df281c667b77db01594c5c7eb823d Mon Sep 17 00:00:00 2001 From: Erik Kundt Date: Tue, 10 Jul 2018 12:48:09 +0200 Subject: Adjusts tests to expect type errors on default visibility. --- test/libsolidity/SolidityEndToEndTest.cpp | 6 +++--- .../syntaxTests/constructor/constructor_no_visibility.sol | 2 +- test/libsolidity/syntaxTests/fallback/default_visibility.sol | 1 + test/libsolidity/syntaxTests/visibility/function_no_visibility.sol | 2 +- .../syntaxTests/visibility/function_no_visibility_050.sol | 6 ------ .../syntaxTests/visibility/interface/function_default.sol | 1 + .../syntaxTests/visibility/interface/function_default050.sol | 7 ------- 7 files changed, 7 insertions(+), 18 deletions(-) delete mode 100644 test/libsolidity/syntaxTests/visibility/function_no_visibility_050.sol delete mode 100644 test/libsolidity/syntaxTests/visibility/interface/function_default050.sol (limited to 'test') diff --git a/test/libsolidity/SolidityEndToEndTest.cpp b/test/libsolidity/SolidityEndToEndTest.cpp index 0fe21c4a..d8f2f531 100644 --- a/test/libsolidity/SolidityEndToEndTest.cpp +++ b/test/libsolidity/SolidityEndToEndTest.cpp @@ -670,7 +670,7 @@ BOOST_AUTO_TEST_CASE(nested_loops_multiple_local_vars) // and free local variables properly char const* sourceCode = R"( contract test { - function f(uint x) returns(uint y) { + function f(uint x) public returns(uint y) { while (x > 0) { uint z = x + 10; uint k = z + 1; @@ -9536,7 +9536,7 @@ BOOST_AUTO_TEST_CASE(continue_in_modifier) _; } } - function f() run { + function f() run public { uint k = x; uint t = k + 1; x = t; @@ -9560,7 +9560,7 @@ BOOST_AUTO_TEST_CASE(return_in_modifier) _; } } - function f() run { + function f() run public { uint k = x; uint t = k + 1; x = t; diff --git a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol index 88553084..3835560a 100644 --- a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol +++ b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol @@ -1,3 +1,3 @@ contract A { constructor() {} } // ---- -// Warning: (13-29): No visibility specified. Defaulting to "public". +// SyntaxError: (13-29): No visibility specified. diff --git a/test/libsolidity/syntaxTests/fallback/default_visibility.sol b/test/libsolidity/syntaxTests/fallback/default_visibility.sol index 31123d59..2199a99b 100644 --- a/test/libsolidity/syntaxTests/fallback/default_visibility.sol +++ b/test/libsolidity/syntaxTests/fallback/default_visibility.sol @@ -3,4 +3,5 @@ contract C { function() {} } // ---- +// SyntaxError: (90-103): No visibility specified. // TypeError: (90-103): Fallback function must be defined as "external". diff --git a/test/libsolidity/syntaxTests/visibility/function_no_visibility.sol b/test/libsolidity/syntaxTests/visibility/function_no_visibility.sol index ecc36f04..63800381 100644 --- a/test/libsolidity/syntaxTests/visibility/function_no_visibility.sol +++ b/test/libsolidity/syntaxTests/visibility/function_no_visibility.sol @@ -2,4 +2,4 @@ contract C { function f() pure { } } // ---- -// Warning: (17-38): No visibility specified. Defaulting to "public". +// SyntaxError: (17-38): No visibility specified. diff --git a/test/libsolidity/syntaxTests/visibility/function_no_visibility_050.sol b/test/libsolidity/syntaxTests/visibility/function_no_visibility_050.sol deleted file mode 100644 index ec7c0937..00000000 --- a/test/libsolidity/syntaxTests/visibility/function_no_visibility_050.sol +++ /dev/null @@ -1,6 +0,0 @@ -pragma experimental "v0.5.0"; -contract C { - function f() pure { } -} -// ---- -// SyntaxError: (47-68): No visibility specified. diff --git a/test/libsolidity/syntaxTests/visibility/interface/function_default.sol b/test/libsolidity/syntaxTests/visibility/interface/function_default.sol index 161d66e1..791ba87e 100644 --- a/test/libsolidity/syntaxTests/visibility/interface/function_default.sol +++ b/test/libsolidity/syntaxTests/visibility/interface/function_default.sol @@ -2,4 +2,5 @@ interface I { function f(); } // ---- +// SyntaxError: (15-28): No visibility specified. Did you intend to add "public"? // TypeError: (15-28): Functions in interfaces must be declared external. diff --git a/test/libsolidity/syntaxTests/visibility/interface/function_default050.sol b/test/libsolidity/syntaxTests/visibility/interface/function_default050.sol deleted file mode 100644 index 513df26b..00000000 --- a/test/libsolidity/syntaxTests/visibility/interface/function_default050.sol +++ /dev/null @@ -1,7 +0,0 @@ -pragma experimental "v0.5.0"; -interface I { - function f(); -} -// ---- -// SyntaxError: (45-58): No visibility specified. -// TypeError: (45-58): Functions in interfaces must be declared external. -- cgit v1.2.3 From dfd2fee91d2d6158dc11146ddc1773ac5eb12c6a Mon Sep 17 00:00:00 2001 From: chriseth Date: Tue, 10 Jul 2018 22:43:02 +0200 Subject: Suggests external for fallback and interface functions. --- .../syntaxTests/constructor/constructor_no_visibility.sol | 2 +- .../syntaxTests/constructor/constructor_no_visibility_050.sol | 2 +- test/libsolidity/syntaxTests/fallback/default_visibility.sol | 2 +- .../567_require_visibility_specifiers_v050.sol | 2 +- .../syntaxTests/visibility/function_no_visibility.sol | 2 +- .../syntaxTests/visibility/interface/function_default.sol | 2 +- .../interface/interface_contract_function_default.sol | 10 ++++++++++ 7 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 test/libsolidity/syntaxTests/visibility/interface/interface_contract_function_default.sol (limited to 'test') diff --git a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol index 3835560a..586329b1 100644 --- a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol +++ b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol @@ -1,3 +1,3 @@ contract A { constructor() {} } // ---- -// SyntaxError: (13-29): No visibility specified. +// SyntaxError: (13-29): No visibility specified. Did you intend to add "public"? diff --git a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol index 0f57a41f..9f60f0d8 100644 --- a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol +++ b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol @@ -1,4 +1,4 @@ pragma experimental "v0.5.0"; contract A { constructor() {} } // ---- -// SyntaxError: (43-59): No visibility specified. +// SyntaxError: (43-59): No visibility specified. Did you intend to add "public"? diff --git a/test/libsolidity/syntaxTests/fallback/default_visibility.sol b/test/libsolidity/syntaxTests/fallback/default_visibility.sol index 2199a99b..6fbb15a5 100644 --- a/test/libsolidity/syntaxTests/fallback/default_visibility.sol +++ b/test/libsolidity/syntaxTests/fallback/default_visibility.sol @@ -3,5 +3,5 @@ contract C { function() {} } // ---- -// SyntaxError: (90-103): No visibility specified. +// SyntaxError: (90-103): No visibility specified. Did you intend to add "external"? // TypeError: (90-103): Fallback function must be defined as "external". diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/567_require_visibility_specifiers_v050.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/567_require_visibility_specifiers_v050.sol index ec7c0937..73a74219 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/567_require_visibility_specifiers_v050.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/567_require_visibility_specifiers_v050.sol @@ -3,4 +3,4 @@ contract C { function f() pure { } } // ---- -// SyntaxError: (47-68): No visibility specified. +// SyntaxError: (47-68): No visibility specified. Did you intend to add "public"? diff --git a/test/libsolidity/syntaxTests/visibility/function_no_visibility.sol b/test/libsolidity/syntaxTests/visibility/function_no_visibility.sol index 63800381..4fc7900f 100644 --- a/test/libsolidity/syntaxTests/visibility/function_no_visibility.sol +++ b/test/libsolidity/syntaxTests/visibility/function_no_visibility.sol @@ -2,4 +2,4 @@ contract C { function f() pure { } } // ---- -// SyntaxError: (17-38): No visibility specified. +// SyntaxError: (17-38): No visibility specified. Did you intend to add "public"? diff --git a/test/libsolidity/syntaxTests/visibility/interface/function_default.sol b/test/libsolidity/syntaxTests/visibility/interface/function_default.sol index 791ba87e..b7e96e5e 100644 --- a/test/libsolidity/syntaxTests/visibility/interface/function_default.sol +++ b/test/libsolidity/syntaxTests/visibility/interface/function_default.sol @@ -2,5 +2,5 @@ interface I { function f(); } // ---- -// SyntaxError: (15-28): No visibility specified. Did you intend to add "public"? +// SyntaxError: (15-28): No visibility specified. Did you intend to add "external"? // TypeError: (15-28): Functions in interfaces must be declared external. diff --git a/test/libsolidity/syntaxTests/visibility/interface/interface_contract_function_default.sol b/test/libsolidity/syntaxTests/visibility/interface/interface_contract_function_default.sol new file mode 100644 index 00000000..5d72376f --- /dev/null +++ b/test/libsolidity/syntaxTests/visibility/interface/interface_contract_function_default.sol @@ -0,0 +1,10 @@ +interface I { + function f(); +} +contract C { + function g(); +} +// ---- +// SyntaxError: (18-31): No visibility specified. Did you intend to add "external"? +// SyntaxError: (51-64): No visibility specified. Did you intend to add "public"? +// TypeError: (18-31): Functions in interfaces must be declared external. -- cgit v1.2.3 From 7d8b39ff4f7eb0da810eadf0de06c1d26460bc9c Mon Sep 17 00:00:00 2001 From: Erik Kundt Date: Tue, 17 Jul 2018 19:30:15 +0200 Subject: Removes obsolete syntax tests. --- .../syntaxTests/constructor/constructor_no_visibility_050.sol | 4 ---- .../567_require_visibility_specifiers_v050.sol | 6 ------ 2 files changed, 10 deletions(-) delete mode 100644 test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol delete mode 100644 test/libsolidity/syntaxTests/nameAndTypeResolution/567_require_visibility_specifiers_v050.sol (limited to 'test') diff --git a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol deleted file mode 100644 index 9f60f0d8..00000000 --- a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol +++ /dev/null @@ -1,4 +0,0 @@ -pragma experimental "v0.5.0"; -contract A { constructor() {} } -// ---- -// SyntaxError: (43-59): No visibility specified. Did you intend to add "public"? diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/567_require_visibility_specifiers_v050.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/567_require_visibility_specifiers_v050.sol deleted file mode 100644 index 73a74219..00000000 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/567_require_visibility_specifiers_v050.sol +++ /dev/null @@ -1,6 +0,0 @@ -pragma experimental "v0.5.0"; -contract C { - function f() pure { } -} -// ---- -// SyntaxError: (47-68): No visibility specified. Did you intend to add "public"? -- cgit v1.2.3 From 05d0e5c8fa24f122c39f7e50d18f3f4d818665cf Mon Sep 17 00:00:00 2001 From: Erik Kundt Date: Tue, 17 Jul 2018 19:41:40 +0200 Subject: Adds comment about reasoning behind syntax test. --- .../visibility/interface/interface_contract_function_default.sol | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/libsolidity/syntaxTests/visibility/interface/interface_contract_function_default.sol b/test/libsolidity/syntaxTests/visibility/interface/interface_contract_function_default.sol index 5d72376f..b1a820ed 100644 --- a/test/libsolidity/syntaxTests/visibility/interface/interface_contract_function_default.sol +++ b/test/libsolidity/syntaxTests/visibility/interface/interface_contract_function_default.sol @@ -1,3 +1,5 @@ +// State of the syntax checker has to be reset after the interface +// was visited. The suggested visibility for g() should not be external. interface I { function f(); } @@ -5,6 +7,6 @@ contract C { function g(); } // ---- -// SyntaxError: (18-31): No visibility specified. Did you intend to add "external"? -// SyntaxError: (51-64): No visibility specified. Did you intend to add "public"? -// TypeError: (18-31): Functions in interfaces must be declared external. +// SyntaxError: (158-171): No visibility specified. Did you intend to add "external"? +// SyntaxError: (191-204): No visibility specified. Did you intend to add "public"? +// TypeError: (158-171): Functions in interfaces must be declared external. -- cgit v1.2.3