diff options
author | chriseth <chris@ethereum.org> | 2018-12-01 07:08:42 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2018-12-03 17:46:03 +0800 |
commit | 0668a9ecfb60ab0e00bfb2c4a4a97ce523860832 (patch) | |
tree | f2c7652047f2f824a35379c415cf27870116238b /test/libsolidity/syntaxTests | |
parent | cc00d8172b6cd7f9fc032e4a21857455ace2f290 (diff) | |
download | dexon-solidity-0668a9ecfb60ab0e00bfb2c4a4a97ce523860832.tar dexon-solidity-0668a9ecfb60ab0e00bfb2c4a4a97ce523860832.tar.gz dexon-solidity-0668a9ecfb60ab0e00bfb2c4a4a97ce523860832.tar.bz2 dexon-solidity-0668a9ecfb60ab0e00bfb2c4a4a97ce523860832.tar.lz dexon-solidity-0668a9ecfb60ab0e00bfb2c4a4a97ce523860832.tar.xz dexon-solidity-0668a9ecfb60ab0e00bfb2c4a4a97ce523860832.tar.zst dexon-solidity-0668a9ecfb60ab0e00bfb2c4a4a97ce523860832.zip |
Public state variables are implementing external functions.
Diffstat (limited to 'test/libsolidity/syntaxTests')
5 files changed, 33 insertions, 0 deletions
diff --git a/test/libsolidity/syntaxTests/inheritance/override/implement_interface_by_public_variable.sol b/test/libsolidity/syntaxTests/inheritance/override/implement_interface_by_public_variable.sol new file mode 100644 index 00000000..49f7c33b --- /dev/null +++ b/test/libsolidity/syntaxTests/inheritance/override/implement_interface_by_public_variable.sol @@ -0,0 +1,7 @@ +interface X { function test() external returns (uint256); } +contract Y is X { + uint256 public test = 42; +} +contract T { + constructor() public { new Y(); } +} diff --git a/test/libsolidity/syntaxTests/inheritance/override/implement_internal_function_by_public_variable.sol b/test/libsolidity/syntaxTests/inheritance/override/implement_internal_function_by_public_variable.sol new file mode 100644 index 00000000..32fac25c --- /dev/null +++ b/test/libsolidity/syntaxTests/inheritance/override/implement_internal_function_by_public_variable.sol @@ -0,0 +1,9 @@ +contract X { function test() internal returns (uint256); } +contract Y is X { + uint256 public test = 42; +} +contract T { + constructor() public { new Y(); } +} +// ---- +// DeclarationError: (81-105): Identifier already declared. diff --git a/test/libsolidity/syntaxTests/inheritance/override/implement_private_function_by_public_variable.sol b/test/libsolidity/syntaxTests/inheritance/override/implement_private_function_by_public_variable.sol new file mode 100644 index 00000000..c58e24b6 --- /dev/null +++ b/test/libsolidity/syntaxTests/inheritance/override/implement_private_function_by_public_variable.sol @@ -0,0 +1,7 @@ +contract X { function test() private returns (uint256); } +contract Y is X { + uint256 public test = 42; +} +contract T { + constructor() public { new Y(); } +} diff --git a/test/libsolidity/syntaxTests/inheritance/override/implement_public_function_by_public_variable.sol b/test/libsolidity/syntaxTests/inheritance/override/implement_public_function_by_public_variable.sol new file mode 100644 index 00000000..7a59c137 --- /dev/null +++ b/test/libsolidity/syntaxTests/inheritance/override/implement_public_function_by_public_variable.sol @@ -0,0 +1,9 @@ +contract X { function test() public returns (uint256); } +contract Y is X { + uint256 public test = 42; +} +contract T { + constructor() public { new Y(); } +} +// ---- +// DeclarationError: (79-103): Identifier already declared. diff --git a/test/libsolidity/syntaxTests/inheritance/override/state_variable_function.sol b/test/libsolidity/syntaxTests/inheritance/override/state_variable_function.sol index 0f05cc8e..fb7f3fbd 100644 --- a/test/libsolidity/syntaxTests/inheritance/override/state_variable_function.sol +++ b/test/libsolidity/syntaxTests/inheritance/override/state_variable_function.sol @@ -6,3 +6,4 @@ contract C is A { } // ---- // DeclarationError: (50-85): Identifier already declared. +// TypeError: (50-85): Redeclaring an already implemented function as abstract |