From 1346b4407f05335a039c6b71ccceebd7878fd70a Mon Sep 17 00:00:00 2001 From: Erik Kundt Date: Wed, 27 Jun 2018 14:00:13 +0200 Subject: Updates syntax tests to new constructor syntax. --- .../syntaxTests/constructor/constructor_no_visibility.sol | 2 ++ .../constructor/constructor_no_visibility_050.sol | 4 ++++ .../syntaxTests/constructor/overriding_constructor.sol | 12 ++++++++---- 3 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol create mode 100644 test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol (limited to 'test/libsolidity/syntaxTests/constructor') diff --git a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol new file mode 100644 index 00000000..df67c9fa --- /dev/null +++ b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility.sol @@ -0,0 +1,2 @@ +contract A { constructor() public {} } +// ---- diff --git a/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol new file mode 100644 index 00000000..0f57a41f --- /dev/null +++ b/test/libsolidity/syntaxTests/constructor/constructor_no_visibility_050.sol @@ -0,0 +1,4 @@ +pragma experimental "v0.5.0"; +contract A { constructor() {} } +// ---- +// SyntaxError: (43-59): No visibility specified. diff --git a/test/libsolidity/syntaxTests/constructor/overriding_constructor.sol b/test/libsolidity/syntaxTests/constructor/overriding_constructor.sol index 3290a33b..5fb3a189 100644 --- a/test/libsolidity/syntaxTests/constructor/overriding_constructor.sol +++ b/test/libsolidity/syntaxTests/constructor/overriding_constructor.sol @@ -1,6 +1,10 @@ -// It is fine to "override" constructor of a base class since it is invisible -contract A { function A() public { } } +contract A { constructor() public {} } contract B is A { function A() public pure returns (uint8) {} } +contract C is A { function A() public pure returns (uint8) {} } +contract D is B { function B() public pure returns (uint8) {} } +contract E is D { function B() public pure returns (uint8) {} } // ---- -// Warning: (91-114): Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead. -// Warning: (135-178): This declaration shadows an existing declaration. +// Warning: (57-100): This declaration shadows an existing declaration. +// Warning: (121-164): This declaration shadows an existing declaration. +// Warning: (185-228): This declaration shadows an existing declaration. +// Warning: (249-292): This declaration shadows an existing declaration. -- cgit v1.2.3