strict digraph "tests/contract_testcases/solana/destructure_assign_struct_member_2.sol" {
	Struct1 [label="name:Struct1\ncontract: Contract\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:11:12-19\nfield name:a ty:uint256\nfield name:b ty:uint256"]
	contract [label="contract IUniswapV2Pair\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:4:1-6:2"]
	getReserves [label="function getReserves\ncontract: IUniswapV2Pair\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:5:5-113\nsignature getReserves()\nvisibility external\nmutability view\nvirtual"]
	returns [label="returns\nuint112 reserve0\nuint112 reserve1\nuint32 blockTimestampLast"]
	contract_6 [label="contract Contract\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:9:1-25:2"]
	test [label="function test\ncontract: Contract\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:16:5-56\nsignature test(bytes32[])\nvisibility public\nmutability view"]
	parameters [label="parameters\naddress[] _tokens"]
	var_decl [label="variable decl uint256 size\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:17:2-15"]
	number_literal [label="uint256 literal: 3\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:17:14-15"]
	var_decl_11 [label="variable decl struct Contract.Struct1[] struct_1\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:20:9-56"]
	alloc_array [label="alloc array struct Contract.Struct1[]\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:20:37-56"]
	trunc [label="checking truncate uint32\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:20:51-55"]
	variable [label="variable: size\nuint256\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:20:51-55"]
	destructure [label="destructure\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:9-83"]
	structmember [label="struct member #0 uint256\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:22-23"]
	subscript [label="subscript struct Contract.Struct1[]\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:10-21"]
	variable_18 [label="variable: struct_1\nstruct Contract.Struct1[]\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:10-18"]
	number_literal_19 [label="uint32 literal: 0\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:19-20"]
	structmember_20 [label="struct member #1 uint256\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:37-38"]
	subscript_21 [label="subscript struct Contract.Struct1[]\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:25-36"]
	variable_22 [label="variable: struct_1\nstruct Contract.Struct1[]\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:25-33"]
	number_literal_23 [label="uint32 literal: 0\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:34-35"]
	none [label="none"]
	call_external_function [label="call external function\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:43-83"]
	external_function [label="function() external view returns (uint112,uint112,uint32)\nIUniswapV2Pair.getReserves\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:43-83"]
	cast [label="cast contract IUniswapV2Pair\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:43-69"]
	load [label="load address\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:43-69"]
	subscript_29 [label="subscript address[]\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:58-68"]
	variable_30 [label="variable: _tokens\naddress[]\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:58-65"]
	number_literal_31 [label="uint32 literal: 0\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:22:66-67"]
	diagnostic [label="pragma 'solidity' is ignored\nlevel Debug\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:2:1-23"]
	diagnostic_34 [label="found interface 'IUniswapV2Pair'\nlevel Debug\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:4:1-6:2"]
	diagnostic_35 [label="found contract 'Contract'\nlevel Debug\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:9:1-25:2"]
	diagnostic_36 [label="local variable 'struct_1' has been assigned, but never read\nlevel Warning\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:20:26-34"]
	diagnostic_37 [label="conversion truncates uint256 to uint32, as memory size is type uint32 on target solana\nlevel Warning\ntests/contract_testcases/solana/destructure_assign_struct_member_2.sol:20:37-56"]
	structs -> Struct1
	contracts -> contract
	contract -> getReserves [label="function"]
	getReserves -> returns [label="returns"]
	contracts -> contract_6
	contract_6 -> test [label="function"]
	test -> parameters [label="parameters"]
	test -> var_decl [label="body"]
	var_decl -> number_literal [label="init"]
	var_decl -> var_decl_11 [label="next"]
	var_decl_11 -> alloc_array [label="init"]
	alloc_array -> trunc [label="length"]
	trunc -> variable [label="expr"]
	var_decl_11 -> destructure [label="next"]
	destructure -> structmember [label="arg #0"]
	structmember -> subscript [label="var"]
	subscript -> variable_18 [label="array"]
	subscript -> number_literal_19 [label="index"]
	destructure -> structmember_20 [label="arg #1"]
	structmember_20 -> subscript_21 [label="var"]
	subscript_21 -> variable_22 [label="array"]
	subscript_21 -> number_literal_23 [label="index"]
	destructure -> none [label="arg #2"]
	destructure -> call_external_function [label="expr"]
	call_external_function -> external_function [label="function"]
	external_function -> cast [label="address"]
	cast -> load [label="expr"]
	load -> subscript_29 [label="expr"]
	subscript_29 -> variable_30 [label="array"]
	subscript_29 -> number_literal_31 [label="index"]
	diagnostics -> diagnostic [label="Debug"]
	diagnostics -> diagnostic_34 [label="Debug"]
	diagnostics -> diagnostic_35 [label="Debug"]
	diagnostics -> diagnostic_36 [label="Warning"]
	diagnostics -> diagnostic_37 [label="Warning"]
}
