From 02024df022af8c6bb188000ed7d2d394f0adaebf Mon Sep 17 00:00:00 2001 From: Soham Zemse <22412996+zemse@users.noreply.github.com> Date: Sat, 26 Nov 2022 07:00:09 +0000 Subject: [PATCH] Add more tests for 3 level nested mapping --- .../parsing/mapping_with_names_func_param_7.sol | 6 ++++++ .../parsing/mapping_with_names_func_type_param_7.sol | 4 ++++ .../parsing/mapping_with_names_local_7.sol | 11 +++++++++++ .../parsing/mapping_with_names_local_8.sol | 9 +++++++++ .../parsing/mapping_with_names_nested_8.sol | 4 ++++ .../parsing/mapping_with_names_struct_member_7.sol | 6 ++++++ 6 files changed, 40 insertions(+) create mode 100644 test/libsolidity/syntaxTests/parsing/mapping_with_names_func_param_7.sol create mode 100644 test/libsolidity/syntaxTests/parsing/mapping_with_names_func_type_param_7.sol create mode 100644 test/libsolidity/syntaxTests/parsing/mapping_with_names_local_7.sol create mode 100644 test/libsolidity/syntaxTests/parsing/mapping_with_names_local_8.sol create mode 100644 test/libsolidity/syntaxTests/parsing/mapping_with_names_nested_8.sol create mode 100644 test/libsolidity/syntaxTests/parsing/mapping_with_names_struct_member_7.sol diff --git a/test/libsolidity/syntaxTests/parsing/mapping_with_names_func_param_7.sol b/test/libsolidity/syntaxTests/parsing/mapping_with_names_func_param_7.sol new file mode 100644 index 000000000000..5234e246b8d7 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/mapping_with_names_func_param_7.sol @@ -0,0 +1,6 @@ +contract test { + function _main(mapping(uint name1 => mapping(uint name2 => mapping(uint name3 => uint name4) name5) name6) storage map) internal { + map[1][2][3] = 4; + } +} +// ---- diff --git a/test/libsolidity/syntaxTests/parsing/mapping_with_names_func_type_param_7.sol b/test/libsolidity/syntaxTests/parsing/mapping_with_names_func_type_param_7.sol new file mode 100644 index 000000000000..78e3a513b187 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/mapping_with_names_func_type_param_7.sol @@ -0,0 +1,4 @@ +contract test { + function(mapping(uint name1 => mapping(uint name2 => mapping(uint name3 => uint name4) name5) name6) storage) internal stateVariableName; +} +// ---- diff --git a/test/libsolidity/syntaxTests/parsing/mapping_with_names_local_7.sol b/test/libsolidity/syntaxTests/parsing/mapping_with_names_local_7.sol new file mode 100644 index 000000000000..ccb44f860d13 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/mapping_with_names_local_7.sol @@ -0,0 +1,11 @@ +contract test { + mapping(uint nameSame => mapping(uint name1 => mapping(uint nameSame => uint name3) name6) name4) map; + + function main() external { + mapping(uint nameSame => mapping(uint name1 => mapping(uint nameSame => uint name3) name6) name4) storage _map = map; + _map[1][2][3] = 4; + } +} +// ---- +// DeclarationError 1809: (20-117): Conflicting parameter name "nameSame" in mapping. +// DeclarationError 1809: (163-260): Conflicting parameter name "nameSame" in mapping. diff --git a/test/libsolidity/syntaxTests/parsing/mapping_with_names_local_8.sol b/test/libsolidity/syntaxTests/parsing/mapping_with_names_local_8.sol new file mode 100644 index 000000000000..08bb80c9e117 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/mapping_with_names_local_8.sol @@ -0,0 +1,9 @@ +contract test { + mapping(uint name1 => mapping(uint name2 => mapping(uint name3 => uint name4) name5) name6) map; + + function main() external { + mapping(uint name1 => mapping(uint name2 => mapping(uint name3 => uint name4) name5) name6) storage _map = map; + _map[1][2][3] = 4; + } +} +// ---- diff --git a/test/libsolidity/syntaxTests/parsing/mapping_with_names_nested_8.sol b/test/libsolidity/syntaxTests/parsing/mapping_with_names_nested_8.sol new file mode 100644 index 000000000000..a3d839a51aea --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/mapping_with_names_nested_8.sol @@ -0,0 +1,4 @@ +contract test { + mapping(uint name1 => mapping(uint name2 => mapping(uint name3 => uint name4) name5) name6) public name7; +} +// ---- diff --git a/test/libsolidity/syntaxTests/parsing/mapping_with_names_struct_member_7.sol b/test/libsolidity/syntaxTests/parsing/mapping_with_names_struct_member_7.sol new file mode 100644 index 000000000000..08ce99da29bc --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/mapping_with_names_struct_member_7.sol @@ -0,0 +1,6 @@ +contract test { + struct Person { + mapping(uint name1 => mapping(uint name2 => mapping(uint name3 => uint name4) name5) name6) name7; + } +} +// ----