diff --git a/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/structs.rs b/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/structs.rs index 68c005bd6d..3dbddea8d6 100644 --- a/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/structs.rs +++ b/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/structs.rs @@ -9,6 +9,11 @@ fn declaration() -> Result<()> { run("structs", "declaration") } +#[test] +fn nested() -> Result<()> { + run("structs", "nested") +} + #[test] fn sample() -> Result<()> { run("structs", "sample") diff --git a/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.4.11.mmd b/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.4.11.mmd new file mode 100644 index 0000000000..e16faf94b1 --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.4.11.mmd @@ -0,0 +1,13 @@ +%% This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +%% WARNING: Parsing failed, graph may be incomplete +graph TD + N0["`**0** @(1, 1) +ROOT_NODE +#null`"] + N1["`**1** @(1, 1) +@source_unit.lexical_scope +line 20 column 21`"] + N2["`**2** @(1, 1) +@source_unit.defs +line 23 column 21`"] diff --git a/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.4.11.txt b/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.4.11.txt new file mode 100644 index 0000000000..734e15640a --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.4.11.txt @@ -0,0 +1,3 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +References and definitions: diff --git a/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.6.0.mmd b/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.6.0.mmd new file mode 100644 index 0000000000..f6be869d16 --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.6.0.mmd @@ -0,0 +1,1065 @@ +%% This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +graph TD + N0["`**0** @(1, 1) +ROOT_NODE +#null`"] + N1["`**1** @(1, 1) +@source_unit.lexical_scope +line 20 column 21`"] + N1 --> N4 + N1 --> N7 + N1 --> N10 + N1 --> N13 + N2["`**2** @(1, 1) +@source_unit.defs +line 23 column 21`"] + N2 --> N4 + N2 --> N7 + N2 --> N10 + N2 --> N13 + N3["`**3** @(20, 1) +@contract.lexical_scope +line 34 column 18`"] + N3 --> N1 + N3 --> N5 + N4["`**4** @(20, 1) +@contract.def +line 35 column 18`"] + N4 --> N29 + N5["`**5** @(20, 1) +@contract.members +line 36 column 18`"] + N5 --> N22 + N5 --> N28 + N6["`**6** @(13, 1) +@interface.lexical_scope +line 42 column 19`"] + N6 --> N1 + N6 --> N8 + N7["`**7** @(13, 1) +@interface.def +line 43 column 19`"] + N7 --> N31 + N8["`**8** @(13, 1) +@interface.members +line 44 column 19`"] + N8 --> N19 + N9["`**9** @(4, 1) +@library.lexical_scope +line 50 column 17`"] + N9 --> N1 + N9 --> N11 + N10["`**10** @(4, 1) +@library.def +line 51 column 17`"] + N10 --> N33 + N11["`**11** @(4, 1) +@library.members +line 52 column 17`"] + N11 --> N16 + N11 --> N25 + N12["`**12** @(1, 1) +@struct.lexical_scope +line 58 column 16`"] + N12 --> N1 + N13["`**13** @(1, 1) +@struct.def +line 59 column 16`"] + N13 --> N110 + N14["`**14** @(1, 1) +@struct.members +line 60 column 16`"] + N14 --> N130 + N15["`**15** @(7, 1) +@struct.lexical_scope +line 58 column 16`"] + N15 --> N9 + N16["`**16** @(7, 1) +@struct.def +line 59 column 16`"] + N16 --> N113 + N17["`**17** @(7, 1) +@struct.members +line 60 column 16`"] + N17 --> N132 + N17 --> N134 + N18["`**18** @(15, 1) +@struct.lexical_scope +line 58 column 16`"] + N18 --> N6 + N19["`**19** @(15, 1) +@struct.def +line 59 column 16`"] + N19 --> N116 + N20["`**20** @(15, 1) +@struct.members +line 60 column 16`"] + N20 --> N136 + N20 --> N138 + N21["`**21** @(22, 1) +@struct.lexical_scope +line 58 column 16`"] + N21 --> N3 + N22["`**22** @(22, 1) +@struct.def +line 59 column 16`"] + N22 --> N119 + N23["`**23** @(22, 1) +@struct.members +line 60 column 16`"] + N23 --> N140 + N23 --> N142 + N23 --> N144 + N24["`**24** @(6, 1) +@enum.lexical_scope +line 64 column 14`"] + N25["`**25** @(6, 1) +@enum.def +line 65 column 14`"] + N25 --> N104 + N26["`**26** @(6, 1) +@enum.members +line 66 column 14`"] + N26 --> N106 + N26 --> N107 + N26 --> N108 + N26 --> N109 + N27["`**27** @(27, 1) +@function.lexical_scope +line 70 column 18`"] + N27 --> N3 + N28["`**28** @(27, 1) +@function.def +line 71 column 18`"] + N28 --> N35 + N29[\"`**Sample** @(20, 1) +def +line 126 column 8`"/] + N29 --> N30 + N30[\"`**.** @(20, 1) +member +line 133 column 8`"/] + N30 --> N5 + N31[\"`**OneInterface** @(13, 1) +def +line 141 column 8`"/] + N31 --> N32 + N32[\"`**.** @(13, 1) +member +line 146 column 8`"/] + N32 --> N8 + N33[\"`**MyLib** @(4, 1) +def +line 154 column 8`"/] + N33 --> N34 + N34[\"`**.** @(4, 1) +member +line 159 column 8`"/] + N34 --> N11 + N35[\"`**hello** @(27, 1) +def +line 167 column 8`"/] + N36["`**36** @(2, 1) +@type_name.type_ref +line 180 column 19`"] + N36 --> N122 + N37["`**37** @(2, 1) +@type_name.output +line 184 column 19`"] + N38["`**38** @(9, 1) +@type_name.type_ref +line 180 column 19`"] + N38 --> N123 + N39["`**39** @(9, 1) +@type_name.output +line 184 column 19`"] + N39 --> N57 + N40["`**40** @(10, 1) +@type_name.type_ref +line 180 column 19`"] + N40 --> N124 + N41["`**41** @(10, 1) +@type_name.output +line 184 column 19`"] + N42["`**42** @(16, 1) +@type_name.type_ref +line 180 column 19`"] + N42 --> N125 + N43["`**43** @(16, 1) +@type_name.output +line 184 column 19`"] + N43 --> N59 + N44["`**44** @(17, 1) +@type_name.type_ref +line 180 column 19`"] + N44 --> N126 + N45["`**45** @(17, 1) +@type_name.output +line 184 column 19`"] + N46["`**46** @(23, 1) +@type_name.type_ref +line 180 column 19`"] + N46 --> N127 + N47["`**47** @(23, 1) +@type_name.output +line 184 column 19`"] + N47 --> N61 + N48["`**48** @(24, 1) +@type_name.type_ref +line 180 column 19`"] + N48 --> N128 + N49["`**49** @(24, 1) +@type_name.output +line 184 column 19`"] + N49 --> N63 + N50["`**50** @(25, 1) +@type_name.type_ref +line 180 column 19`"] + N50 --> N129 + N51["`**51** @(25, 1) +@type_name.output +line 184 column 19`"] + N52["`**52** @(29, 1) +@type_name.type_ref +line 180 column 19`"] + N52 --> N84 + N53["`**53** @(29, 1) +@type_name.output +line 184 column 19`"] + N53 --> N65 + N54["`**54** @(35, 1) +@type_name.type_ref +line 180 column 19`"] + N54 --> N96 + N55["`**55** @(35, 1) +@type_name.output +line 184 column 19`"] + N55 --> N67 + N56["`**56** @(9, 1) +@id_path.left +line 188 column 17`"] + N56 --> N38 + N57["`**57** @(9, 1) +@id_path.right +line 189 column 17`"] + N57 --> N68 + N58["`**58** @(16, 1) +@id_path.left +line 188 column 17`"] + N58 --> N42 + N59["`**59** @(16, 1) +@id_path.right +line 189 column 17`"] + N59 --> N70 + N60["`**60** @(23, 1) +@id_path.left +line 188 column 17`"] + N60 --> N46 + N61["`**61** @(23, 1) +@id_path.right +line 189 column 17`"] + N61 --> N72 + N62["`**62** @(24, 1) +@id_path.left +line 188 column 17`"] + N62 --> N48 + N63["`**63** @(24, 1) +@id_path.right +line 189 column 17`"] + N63 --> N74 + N64["`**64** @(29, 1) +@id_path.left +line 188 column 17`"] + N64 --> N52 + N65["`**65** @(29, 1) +@id_path.right +line 189 column 17`"] + N65 --> N75 + N66["`**66** @(35, 1) +@id_path.left +line 188 column 17`"] + N66 --> N54 + N67["`**67** @(35, 1) +@id_path.right +line 189 column 17`"] + N67 --> N77 + N68[/"`**Base** @(9, 1) +@name.ref +line 205 column 14`"\] + N68 --> N56 + N69[/"`**MyLib** @(16, 1) +@name.ref +line 205 column 14`"\] + N69 --> N58 + N70[/"`**LibStruct** @(16, 1) +@name.ref +line 205 column 14`"\] + N70 --> N78 + N71[/"`**OneInterface** @(23, 1) +@name.ref +line 205 column 14`"\] + N71 --> N60 + N72[/"`**IfaceStruct** @(23, 1) +@name.ref +line 205 column 14`"\] + N72 --> N79 + N73[/"`**MyLib** @(24, 1) +@name.ref +line 205 column 14`"\] + N73 --> N62 + N74[/"`**Direction** @(24, 1) +@name.ref +line 205 column 14`"\] + N74 --> N80 + N75[/"`**SampleStruct** @(29, 1) +@name.ref +line 205 column 14`"\] + N75 --> N64 + N76[/"`**MyLib** @(35, 1) +@name.ref +line 205 column 14`"\] + N76 --> N66 + N77[/"`**LibStruct** @(35, 1) +@name.ref +line 205 column 14`"\] + N77 --> N81 + N78[/"`**.** @(16, 1) +member +line 214 column 8`"\] + N78 --> N69 + N79[/"`**.** @(23, 1) +member +line 214 column 8`"\] + N79 --> N71 + N80[/"`**.** @(24, 1) +member +line 214 column 8`"\] + N80 --> N73 + N81[/"`**.** @(35, 1) +member +line 214 column 8`"\] + N81 --> N76 + N82["`**82** @(28, 19) +@block.lexical_scope +line 316 column 15`"] + N82 --> N27 + N83["`**83** @(28, 19) +@block.defs +line 317 column 15`"] + N84["`**84** @(29, 1) +@stmt.lexical_scope +line 321 column 14`"] + N84 --> N82 + N84 --> N85 + N85["`**85** @(29, 1) +@stmt.defs +line 322 column 14`"] + N85 --> N100 + N86["`**86** @(30, 1) +@stmt.lexical_scope +line 321 column 14`"] + N86 --> N84 + N86 --> N87 + N87["`**87** @(30, 1) +@stmt.defs +line 322 column 14`"] + N88["`**88** @(31, 1) +@stmt.lexical_scope +line 321 column 14`"] + N88 --> N86 + N88 --> N89 + N89["`**89** @(31, 1) +@stmt.defs +line 322 column 14`"] + N90["`**90** @(32, 1) +@stmt.lexical_scope +line 321 column 14`"] + N90 --> N88 + N90 --> N91 + N91["`**91** @(32, 1) +@stmt.defs +line 322 column 14`"] + N92["`**92** @(33, 1) +@stmt.lexical_scope +line 321 column 14`"] + N92 --> N90 + N92 --> N93 + N93["`**93** @(33, 1) +@stmt.defs +line 322 column 14`"] + N94["`**94** @(34, 1) +@stmt.lexical_scope +line 321 column 14`"] + N94 --> N92 + N94 --> N95 + N95["`**95** @(34, 1) +@stmt.defs +line 322 column 14`"] + N96["`**96** @(35, 1) +@stmt.lexical_scope +line 321 column 14`"] + N96 --> N94 + N96 --> N97 + N97["`**97** @(35, 1) +@stmt.defs +line 322 column 14`"] + N97 --> N102 + N98["`**98** @(37, 1) +@stmt.lexical_scope +line 321 column 14`"] + N98 --> N96 + N98 --> N99 + N99["`**99** @(37, 1) +@stmt.defs +line 322 column 14`"] + N100[\"`**s** @(29, 1) +def +line 389 column 8`"/] + N100 --> N101 + N101[/"`**@typeof** @(29, 1) +typeof +line 395 column 8`"\] + N101 --> N53 + N102[\"`**ls** @(35, 1) +def +line 389 column 8`"/] + N102 --> N103 + N103[/"`**@typeof** @(35, 1) +typeof +line 395 column 8`"\] + N103 --> N55 + N104[\"`**Direction** @(6, 1) +def +line 483 column 8`"/] + N104 --> N105 + N105[\"`**.** @(6, 1) +member +line 488 column 8`"/] + N105 --> N26 + N106[\"`**North** @(6, 1) +def +line 500 column 8`"/] + N107[\"`**South** @(6, 1) +def +line 500 column 8`"/] + N108[\"`**West** @(6, 1) +def +line 500 column 8`"/] + N109[\"`**East** @(6, 1) +def +line 500 column 8`"/] + N110[\"`**Base** @(1, 1) +def +line 540 column 8`"/] + N110 --> N111 + N111[\"`**@typeof** @(1, 1) +type_def +line 545 column 8`"/] + N111 --> N112 + N112[\"`**.** @(1, 1) +member +line 548 column 8`"/] + N112 --> N14 + N113[\"`**LibStruct** @(7, 1) +def +line 540 column 8`"/] + N113 --> N114 + N114[\"`**@typeof** @(7, 1) +type_def +line 545 column 8`"/] + N114 --> N115 + N115[\"`**.** @(7, 1) +member +line 548 column 8`"/] + N115 --> N17 + N116[\"`**IfaceStruct** @(15, 1) +def +line 540 column 8`"/] + N116 --> N117 + N117[\"`**@typeof** @(15, 1) +type_def +line 545 column 8`"/] + N117 --> N118 + N118[\"`**.** @(15, 1) +member +line 548 column 8`"/] + N118 --> N20 + N119[\"`**SampleStruct** @(22, 1) +def +line 540 column 8`"/] + N119 --> N120 + N120[\"`**@typeof** @(22, 1) +type_def +line 545 column 8`"/] + N120 --> N121 + N121[\"`**.** @(22, 1) +member +line 548 column 8`"/] + N121 --> N23 + N122["`**122** @(1, 1) +@member.lexical_scope +line 557 column 16`"] + N122 --> N12 + N123["`**123** @(7, 1) +@member.lexical_scope +line 557 column 16`"] + N123 --> N15 + N124["`**124** @(7, 1) +@member.lexical_scope +line 557 column 16`"] + N124 --> N15 + N125["`**125** @(15, 1) +@member.lexical_scope +line 557 column 16`"] + N125 --> N18 + N126["`**126** @(15, 1) +@member.lexical_scope +line 557 column 16`"] + N126 --> N18 + N127["`**127** @(22, 1) +@member.lexical_scope +line 557 column 16`"] + N127 --> N21 + N128["`**128** @(22, 1) +@member.lexical_scope +line 557 column 16`"] + N128 --> N21 + N129["`**129** @(22, 1) +@member.lexical_scope +line 557 column 16`"] + N129 --> N21 + N130[\"`**x** @(1, 1) +def +line 566 column 8`"/] + N130 --> N131 + N131[/"`**@typeof** @(1, 1) +typeof +line 573 column 8`"\] + N131 --> N37 + N132[\"`**base** @(7, 1) +def +line 566 column 8`"/] + N132 --> N133 + N133[/"`**@typeof** @(7, 1) +typeof +line 573 column 8`"\] + N133 --> N39 + N134[\"`**y** @(7, 1) +def +line 566 column 8`"/] + N134 --> N135 + N135[/"`**@typeof** @(7, 1) +typeof +line 573 column 8`"\] + N135 --> N41 + N136[\"`**lib_struct** @(15, 1) +def +line 566 column 8`"/] + N136 --> N137 + N137[/"`**@typeof** @(15, 1) +typeof +line 573 column 8`"\] + N137 --> N43 + N138[\"`**z** @(15, 1) +def +line 566 column 8`"/] + N138 --> N139 + N139[/"`**@typeof** @(15, 1) +typeof +line 573 column 8`"\] + N139 --> N45 + N140[\"`**iface_struct** @(22, 1) +def +line 566 column 8`"/] + N140 --> N141 + N141[/"`**@typeof** @(22, 1) +typeof +line 573 column 8`"\] + N141 --> N47 + N142[\"`**direction** @(22, 1) +def +line 566 column 8`"/] + N142 --> N143 + N143[/"`**@typeof** @(22, 1) +typeof +line 573 column 8`"\] + N143 --> N49 + N144[\"`**w** @(22, 1) +def +line 566 column 8`"/] + N144 --> N145 + N145[/"`**@typeof** @(22, 1) +typeof +line 573 column 8`"\] + N145 --> N51 + N146["`**146** @(30, 1) +@expr.lexical_scope +line 617 column 14`"] + N146 --> N86 + N147["`**147** @(30, 1) +@expr.output +line 619 column 14`"] + N148["`**148** @(30, 1) +@expr.lexical_scope +line 617 column 14`"] + N148 --> N146 + N149["`**149** @(30, 1) +@expr.output +line 619 column 14`"] + N149 --> N228 + N150["`**150** @(30, 1) +@expr.lexical_scope +line 617 column 14`"] + N150 --> N148 + N151["`**151** @(30, 1) +@expr.output +line 619 column 14`"] + N151 --> N230 + N152["`**152** @(30, 1) +@expr.lexical_scope +line 617 column 14`"] + N152 --> N150 + N153["`**153** @(30, 1) +@expr.output +line 619 column 14`"] + N153 --> N232 + N154["`**154** @(30, 1) +@expr.lexical_scope +line 617 column 14`"] + N154 --> N152 + N155["`**155** @(30, 1) +@expr.output +line 619 column 14`"] + N155 --> N234 + N156["`**156** @(30, 1) +@expr.lexical_scope +line 617 column 14`"] + N156 --> N154 + N157["`**157** @(30, 1) +@expr.output +line 619 column 14`"] + N157 --> N220 + N158["`**158** @(30, 39) +@expr.lexical_scope +line 617 column 14`"] + N158 --> N146 + N159["`**159** @(30, 39) +@expr.output +line 619 column 14`"] + N160["`**160** @(31, 1) +@expr.lexical_scope +line 617 column 14`"] + N160 --> N88 + N161["`**161** @(31, 1) +@expr.output +line 619 column 14`"] + N162["`**162** @(31, 1) +@expr.lexical_scope +line 617 column 14`"] + N162 --> N160 + N163["`**163** @(31, 1) +@expr.output +line 619 column 14`"] + N163 --> N236 + N164["`**164** @(31, 1) +@expr.lexical_scope +line 617 column 14`"] + N164 --> N162 + N165["`**165** @(31, 1) +@expr.output +line 619 column 14`"] + N165 --> N238 + N166["`**166** @(31, 1) +@expr.lexical_scope +line 617 column 14`"] + N166 --> N164 + N167["`**167** @(31, 1) +@expr.output +line 619 column 14`"] + N167 --> N240 + N168["`**168** @(31, 1) +@expr.lexical_scope +line 617 column 14`"] + N168 --> N166 + N169["`**169** @(31, 1) +@expr.output +line 619 column 14`"] + N169 --> N221 + N170["`**170** @(31, 34) +@expr.lexical_scope +line 617 column 14`"] + N170 --> N160 + N171["`**171** @(31, 34) +@expr.output +line 619 column 14`"] + N172["`**172** @(32, 1) +@expr.lexical_scope +line 617 column 14`"] + N172 --> N90 + N173["`**173** @(32, 1) +@expr.output +line 619 column 14`"] + N174["`**174** @(32, 1) +@expr.lexical_scope +line 617 column 14`"] + N174 --> N172 + N175["`**175** @(32, 1) +@expr.output +line 619 column 14`"] + N175 --> N242 + N176["`**176** @(32, 1) +@expr.lexical_scope +line 617 column 14`"] + N176 --> N174 + N177["`**177** @(32, 1) +@expr.output +line 619 column 14`"] + N177 --> N244 + N178["`**178** @(32, 1) +@expr.lexical_scope +line 617 column 14`"] + N178 --> N176 + N179["`**179** @(32, 1) +@expr.output +line 619 column 14`"] + N179 --> N222 + N180["`**180** @(32, 23) +@expr.lexical_scope +line 617 column 14`"] + N180 --> N172 + N181["`**181** @(32, 23) +@expr.output +line 619 column 14`"] + N182["`**182** @(33, 1) +@expr.lexical_scope +line 617 column 14`"] + N182 --> N92 + N183["`**183** @(33, 1) +@expr.output +line 619 column 14`"] + N184["`**184** @(33, 1) +@expr.lexical_scope +line 617 column 14`"] + N184 --> N182 + N185["`**185** @(33, 1) +@expr.output +line 619 column 14`"] + N185 --> N246 + N186["`**186** @(33, 1) +@expr.lexical_scope +line 617 column 14`"] + N186 --> N184 + N187["`**187** @(33, 1) +@expr.output +line 619 column 14`"] + N187 --> N223 + N188["`**188** @(33, 10) +@expr.lexical_scope +line 617 column 14`"] + N188 --> N182 + N189["`**189** @(33, 10) +@expr.output +line 619 column 14`"] + N190["`**190** @(34, 1) +@expr.lexical_scope +line 617 column 14`"] + N190 --> N94 + N191["`**191** @(34, 1) +@expr.output +line 619 column 14`"] + N192["`**192** @(34, 1) +@expr.lexical_scope +line 617 column 14`"] + N192 --> N190 + N193["`**193** @(34, 1) +@expr.output +line 619 column 14`"] + N193 --> N248 + N194["`**194** @(34, 1) +@expr.lexical_scope +line 617 column 14`"] + N194 --> N192 + N195["`**195** @(34, 1) +@expr.output +line 619 column 14`"] + N195 --> N224 + N196["`**196** @(34, 18) +@expr.lexical_scope +line 617 column 14`"] + N196 --> N190 + N197["`**197** @(34, 18) +@expr.output +line 619 column 14`"] + N197 --> N250 + N198["`**198** @(34, 18) +@expr.lexical_scope +line 617 column 14`"] + N198 --> N196 + N199["`**199** @(34, 18) +@expr.output +line 619 column 14`"] + N199 --> N252 + N200["`**200** @(34, 18) +@expr.lexical_scope +line 617 column 14`"] + N200 --> N198 + N201["`**201** @(34, 18) +@expr.output +line 619 column 14`"] + N201 --> N225 + N202["`**202** @(37, 1) +@expr.lexical_scope +line 617 column 14`"] + N202 --> N98 + N203["`**203** @(37, 1) +@expr.output +line 619 column 14`"] + N204["`**204** @(37, 1) +@expr.lexical_scope +line 617 column 14`"] + N204 --> N202 + N205["`**205** @(37, 1) +@expr.output +line 619 column 14`"] + N205 --> N254 + N206["`**206** @(37, 1) +@expr.lexical_scope +line 617 column 14`"] + N206 --> N204 + N207["`**207** @(37, 1) +@expr.output +line 619 column 14`"] + N207 --> N256 + N208["`**208** @(37, 1) +@expr.lexical_scope +line 617 column 14`"] + N208 --> N206 + N209["`**209** @(37, 1) +@expr.output +line 619 column 14`"] + N209 --> N226 + N210["`**210** @(37, 16) +@expr.lexical_scope +line 617 column 14`"] + N210 --> N202 + N211["`**211** @(37, 16) +@expr.output +line 619 column 14`"] + N211 --> N258 + N212["`**212** @(37, 16) +@expr.lexical_scope +line 617 column 14`"] + N212 --> N210 + N213["`**213** @(37, 16) +@expr.output +line 619 column 14`"] + N213 --> N260 + N214["`**214** @(37, 16) +@expr.lexical_scope +line 617 column 14`"] + N214 --> N212 + N215["`**215** @(37, 16) +@expr.output +line 619 column 14`"] + N215 --> N262 + N216["`**216** @(37, 16) +@expr.lexical_scope +line 617 column 14`"] + N216 --> N214 + N217["`**217** @(37, 16) +@expr.output +line 619 column 14`"] + N217 --> N264 + N218["`**218** @(37, 16) +@expr.lexical_scope +line 617 column 14`"] + N218 --> N216 + N219["`**219** @(37, 16) +@expr.output +line 619 column 14`"] + N219 --> N227 + N220[/"`**s** @(30, 1) +ref +line 655 column 8`"\] + N220 --> N156 + N221[/"`**s** @(31, 1) +ref +line 655 column 8`"\] + N221 --> N168 + N222[/"`**s** @(32, 1) +ref +line 655 column 8`"\] + N222 --> N178 + N223[/"`**s** @(33, 1) +ref +line 655 column 8`"\] + N223 --> N186 + N224[/"`**s** @(34, 1) +ref +line 655 column 8`"\] + N224 --> N194 + N225[/"`**MyLib** @(34, 18) +ref +line 655 column 8`"\] + N225 --> N200 + N226[/"`**ls** @(37, 1) +ref +line 655 column 8`"\] + N226 --> N208 + N227[/"`**s** @(37, 16) +ref +line 655 column 8`"\] + N227 --> N218 + N228[/"`**x** @(30, 1) +ref +line 673 column 8`"\] + N228 --> N229 + N229[/"`**.** @(30, 1) +member +line 676 column 8`"\] + N229 --> N151 + N230[/"`**base** @(30, 1) +ref +line 673 column 8`"\] + N230 --> N231 + N231[/"`**.** @(30, 1) +member +line 676 column 8`"\] + N231 --> N153 + N232[/"`**lib_struct** @(30, 1) +ref +line 673 column 8`"\] + N232 --> N233 + N233[/"`**.** @(30, 1) +member +line 676 column 8`"\] + N233 --> N155 + N234[/"`**iface_struct** @(30, 1) +ref +line 673 column 8`"\] + N234 --> N235 + N235[/"`**.** @(30, 1) +member +line 676 column 8`"\] + N235 --> N157 + N236[/"`**y** @(31, 1) +ref +line 673 column 8`"\] + N236 --> N237 + N237[/"`**.** @(31, 1) +member +line 676 column 8`"\] + N237 --> N165 + N238[/"`**lib_struct** @(31, 1) +ref +line 673 column 8`"\] + N238 --> N239 + N239[/"`**.** @(31, 1) +member +line 676 column 8`"\] + N239 --> N167 + N240[/"`**iface_struct** @(31, 1) +ref +line 673 column 8`"\] + N240 --> N241 + N241[/"`**.** @(31, 1) +member +line 676 column 8`"\] + N241 --> N169 + N242[/"`**z** @(32, 1) +ref +line 673 column 8`"\] + N242 --> N243 + N243[/"`**.** @(32, 1) +member +line 676 column 8`"\] + N243 --> N177 + N244[/"`**iface_struct** @(32, 1) +ref +line 673 column 8`"\] + N244 --> N245 + N245[/"`**.** @(32, 1) +member +line 676 column 8`"\] + N245 --> N179 + N246[/"`**w** @(33, 1) +ref +line 673 column 8`"\] + N246 --> N247 + N247[/"`**.** @(33, 1) +member +line 676 column 8`"\] + N247 --> N187 + N248[/"`**direction** @(34, 1) +ref +line 673 column 8`"\] + N248 --> N249 + N249[/"`**.** @(34, 1) +member +line 676 column 8`"\] + N249 --> N195 + N250[/"`**North** @(34, 18) +ref +line 673 column 8`"\] + N250 --> N251 + N251[/"`**.** @(34, 18) +member +line 676 column 8`"\] + N251 --> N199 + N252[/"`**Direction** @(34, 18) +ref +line 673 column 8`"\] + N252 --> N253 + N253[/"`**.** @(34, 18) +member +line 676 column 8`"\] + N253 --> N201 + N254[/"`**x** @(37, 1) +ref +line 673 column 8`"\] + N254 --> N255 + N255[/"`**.** @(37, 1) +member +line 676 column 8`"\] + N255 --> N207 + N256[/"`**base** @(37, 1) +ref +line 673 column 8`"\] + N256 --> N257 + N257[/"`**.** @(37, 1) +member +line 676 column 8`"\] + N257 --> N209 + N258[/"`**x** @(37, 16) +ref +line 673 column 8`"\] + N258 --> N259 + N259[/"`**.** @(37, 16) +member +line 676 column 8`"\] + N259 --> N213 + N260[/"`**base** @(37, 16) +ref +line 673 column 8`"\] + N260 --> N261 + N261[/"`**.** @(37, 16) +member +line 676 column 8`"\] + N261 --> N215 + N262[/"`**lib_struct** @(37, 16) +ref +line 673 column 8`"\] + N262 --> N263 + N263[/"`**.** @(37, 16) +member +line 676 column 8`"\] + N263 --> N217 + N264[/"`**iface_struct** @(37, 16) +ref +line 673 column 8`"\] + N264 --> N265 + N265[/"`**.** @(37, 16) +member +line 676 column 8`"\] + N265 --> N219 diff --git a/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.6.0.txt b/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.6.0.txt new file mode 100644 index 0000000000..833bd826e3 --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/structs/nested/generated/0.6.0.txt @@ -0,0 +1,157 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +References and definitions: + ╭─[crates/solidity/testing/snapshots/bindings_output/structs/nested/input.sol:1:1] + │ + 1 │ struct Base { + │ ──┬─ + │ ╰─── def: 1 + 2 │ int x; + │ ┬ + │ ╰── def: 2 + │ + 5 │ library MyLib { + │ ──┬── + │ ╰──── def: 3 + 6 │ enum Direction { North, South, West, East } + │ ────┬──── ──┬── ──┬── ──┬─ ──┬─ + │ ╰───────────────────────────────── def: 4 + │ │ │ │ │ + │ ╰─────────────────────── def: 5 + │ │ │ │ + │ ╰──────────────── def: 6 + │ │ │ + │ ╰───────── def: 7 + │ │ + │ ╰─── def: 8 + │ + 8 │ struct LibStruct { + │ ────┬──── + │ ╰────── def: 9 + 9 │ Base base; + │ ──┬─ ──┬─ + │ ╰──────── ref: 1 + │ │ + │ ╰─── def: 10 + 10 │ int y; + │ ┬ + │ ╰── def: 11 + │ + 14 │ interface OneInterface { + │ ──────┬───── + │ ╰─────── def: 12 + 15 │ struct IfaceStruct { + │ ─────┬───── + │ ╰─────── def: 13 + 16 │ MyLib.LibStruct lib_struct; + │ ──┬── ────┬──── ─────┬──── + │ ╰───────────────────────── ref: 3 + │ │ │ + │ ╰───────────────── ref: 9 + │ │ + │ ╰────── def: 14 + 17 │ int z; + │ ┬ + │ ╰── def: 15 + │ + 21 │ contract Sample { + │ ───┬── + │ ╰──── def: 16 + 22 │ struct SampleStruct { + │ ──────┬───── + │ ╰─────── def: 17 + 23 │ OneInterface.IfaceStruct iface_struct; + │ ──────┬───── ─────┬───── ──────┬───── + │ ╰──────────────────────────────── ref: 12 + │ │ │ + │ ╰──────────────────── ref: 13 + │ │ + │ ╰─────── def: 18 + 24 │ MyLib.Direction direction; + │ ──┬── ────┬──── ────┬──── + │ ╰──────────────────────── ref: 3 + │ │ │ + │ ╰──────────────── ref: 4 + │ │ + │ ╰────── def: 19 + 25 │ int w; + │ ┬ + │ ╰── def: 20 + │ + 28 │ function hello() { + │ ──┬── + │ ╰──── def: 21 + 29 │ SampleStruct memory s; + │ ──────┬───── ┬ + │ ╰──────────────── ref: 17 + │ │ + │ ╰── def: 22 + 30 │ s.iface_struct.lib_struct.base.x = 1; + │ ┬ ──────┬───── ─────┬──── ──┬─ ┬ + │ ╰───────────────────────────────── ref: 22 + │ │ │ │ │ + │ ╰───────────────────────── ref: 18 + │ │ │ │ + │ ╰───────────── ref: 14 + │ │ │ + │ ╰───── ref: 10 + │ │ + │ ╰── ref: 2 + 31 │ s.iface_struct.lib_struct.y = 2; + │ ┬ ──────┬───── ─────┬──── ┬ + │ ╰──────────────────────────── ref: 22 + │ │ │ │ + │ ╰──────────────────── ref: 18 + │ │ │ + │ ╰──────── ref: 14 + │ │ + │ ╰── ref: 11 + 32 │ s.iface_struct.z = 3; + │ ┬ ──────┬───── ┬ + │ ╰───────────────── ref: 22 + │ │ │ + │ ╰───────── ref: 18 + │ │ + │ ╰── ref: 15 + 33 │ s.w = 4; + │ ┬ ┬ + │ ╰──── ref: 22 + │ │ + │ ╰── ref: 20 + 34 │ s.direction = MyLib.Direction.North; + │ ┬ ────┬──── ──┬── ────┬──── ──┬── + │ ╰──────────────────────────────────── ref: 22 + │ │ │ │ │ + │ ╰────────────────────────────── ref: 19 + │ │ │ │ + │ ╰──────────────────── ref: 3 + │ │ │ + │ ╰──────────── ref: 4 + │ │ + │ ╰──── ref: 5 + │ + 36 │ MyLib.LibStruct memory ls; + │ ──┬── ────┬──── ─┬ + │ ╰──────────────────────── ref: 3 + │ │ │ + │ ╰──────────────── ref: 9 + │ │ + │ ╰── def: 23 + 37 │ ls.base.x = s.iface_struct.lib_struct.base.x; + │ ─┬ ──┬─ ┬ ┬ ──────┬───── ─────┬──── ──┬─ ┬ + │ ╰──────────────────────────────────────────── ref: 23 + │ │ │ │ │ │ │ │ + │ ╰──────────────────────────────────────── ref: 10 + │ │ │ │ │ │ │ + │ ╰───────────────────────────────────── ref: 2 + │ │ │ │ │ │ + │ ╰───────────────────────────────── ref: 22 + │ │ │ │ │ + │ ╰───────────────────────── ref: 18 + │ │ │ │ + │ ╰───────────── ref: 14 + │ │ │ + │ ╰───── ref: 10 + │ │ + │ ╰── ref: 2 +────╯ diff --git a/crates/solidity/testing/snapshots/bindings_output/structs/nested/input.sol b/crates/solidity/testing/snapshots/bindings_output/structs/nested/input.sol new file mode 100644 index 0000000000..3c8ad6de51 --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/structs/nested/input.sol @@ -0,0 +1,40 @@ +struct Base { + int x; +} + +library MyLib { + enum Direction { North, South, West, East } + + struct LibStruct { + Base base; + int y; + } +} + +interface OneInterface { + struct IfaceStruct { + MyLib.LibStruct lib_struct; + int z; + } +} + +contract Sample { + struct SampleStruct { + OneInterface.IfaceStruct iface_struct; + MyLib.Direction direction; + int w; + } + + function hello() { + SampleStruct memory s; + s.iface_struct.lib_struct.base.x = 1; + s.iface_struct.lib_struct.y = 2; + s.iface_struct.z = 3; + s.w = 4; + s.direction = MyLib.Direction.North; + + MyLib.LibStruct memory ls; + ls.base.x = s.iface_struct.lib_struct.base.x; + } +} +