diff options
author | chriseth <c@ethdev.com> | 2015-06-18 22:35:25 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-06-18 22:37:06 +0800 |
commit | 4adc684939924da25bebdae427e5bc789e93b0c4 (patch) | |
tree | f4ada1b11359c30f9758e11b070cab0891b3ec45 /libsolidity | |
parent | 1541aa403bf9420e426af4b3045a1ebf423c6fa1 (diff) | |
download | dexon-solidity-4adc684939924da25bebdae427e5bc789e93b0c4.tar dexon-solidity-4adc684939924da25bebdae427e5bc789e93b0c4.tar.gz dexon-solidity-4adc684939924da25bebdae427e5bc789e93b0c4.tar.bz2 dexon-solidity-4adc684939924da25bebdae427e5bc789e93b0c4.tar.lz dexon-solidity-4adc684939924da25bebdae427e5bc789e93b0c4.tar.xz dexon-solidity-4adc684939924da25bebdae427e5bc789e93b0c4.tar.zst dexon-solidity-4adc684939924da25bebdae427e5bc789e93b0c4.zip |
Fix and test for not really recursive structs.
Fixes #2223.
Diffstat (limited to 'libsolidity')
-rw-r--r-- | libsolidity/SolidityNameAndTypeResolution.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libsolidity/SolidityNameAndTypeResolution.cpp b/libsolidity/SolidityNameAndTypeResolution.cpp index fced1284..afa8b727 100644 --- a/libsolidity/SolidityNameAndTypeResolution.cpp +++ b/libsolidity/SolidityNameAndTypeResolution.cpp @@ -190,6 +190,17 @@ BOOST_AUTO_TEST_CASE(struct_definition_indirectly_recursive) BOOST_CHECK_THROW(parseTextAndResolveNames(text), ParserError); } +BOOST_AUTO_TEST_CASE(struct_definition_not_really_recursive) +{ + char const* text = R"( + contract test { + struct s1 { uint a; } + struct s2 { s1 x; s1 y; } + } + )"; + BOOST_CHECK_NO_THROW(parseTextAndResolveNames(text)); +} + BOOST_AUTO_TEST_CASE(struct_definition_recursion_via_mapping) { char const* text = "contract test {\n" |