strict digraph "tests/contract_testcases/solana/shift_struct_member.sol" {
	uq144x112 [label="name:uq144x112\ncontract: FixedPoint\ntests/contract_testcases/solana/shift_struct_member.sol:4:12-21\nfield name:_x ty:uint256"]
	uq112x112 [label="name:uq112x112\ncontract: FixedPoint\ntests/contract_testcases/solana/shift_struct_member.sol:8:12-21\nfield name:_x ty:uint224"]
	contract [label="contract FixedPoint\ntests/contract_testcases/solana/shift_struct_member.sol:2:1-21:2"]
	decode [label="function decode\ncontract: FixedPoint\ntests/contract_testcases/solana/shift_struct_member.sol:13:5-75\nsignature decode((uint224))\nvisibility internal\nmutability pure"]
	parameters [label="parameters\nstruct FixedPoint.uq112x112 self"]
	returns [label="returns\nuint112 "]
	return [label="return\ntests/contract_testcases/solana/shift_struct_member.sol:14:9-39"]
	trunc [label="truncate uint112\ntests/contract_testcases/solana/shift_struct_member.sol:14:16-39"]
	load [label="load uint224\ntests/contract_testcases/solana/shift_struct_member.sol:14:16-39"]
	shift_right [label="shift right\nuint224\ntests/contract_testcases/solana/shift_struct_member.sol:14:24-38"]
	structmember [label="struct member #0 uint224\ntests/contract_testcases/solana/shift_struct_member.sol:14:29-31"]
	variable [label="variable: self\nstruct FixedPoint.uq112x112\ntests/contract_testcases/solana/shift_struct_member.sol:14:24-28"]
	zero_ext [label="zero extend uint224\ntests/contract_testcases/solana/shift_struct_member.sol:14:24-38"]
	number_literal [label="uint8 literal: 112\ntests/contract_testcases/solana/shift_struct_member.sol:14:35-38"]
	decode144 [label="function decode144\ncontract: FixedPoint\ntests/contract_testcases/solana/shift_struct_member.sol:18:5-78\nsignature decode144((uint256))\nvisibility internal\nmutability pure"]
	parameters_17 [label="parameters\nstruct FixedPoint.uq144x112 self"]
	returns_18 [label="returns\nuint144 "]
	return_19 [label="return\ntests/contract_testcases/solana/shift_struct_member.sol:19:9-39"]
	trunc_20 [label="truncate uint144\ntests/contract_testcases/solana/shift_struct_member.sol:19:16-39"]
	load_21 [label="load uint256\ntests/contract_testcases/solana/shift_struct_member.sol:19:16-39"]
	shift_right_22 [label="shift right\nuint256\ntests/contract_testcases/solana/shift_struct_member.sol:19:24-38"]
	structmember_23 [label="struct member #0 uint256\ntests/contract_testcases/solana/shift_struct_member.sol:19:29-31"]
	variable_24 [label="variable: self\nstruct FixedPoint.uq144x112\ntests/contract_testcases/solana/shift_struct_member.sol:19:24-28"]
	zero_ext_25 [label="zero extend uint256\ntests/contract_testcases/solana/shift_struct_member.sol:19:24-38"]
	number_literal_26 [label="uint8 literal: 112\ntests/contract_testcases/solana/shift_struct_member.sol:19:35-38"]
	diagnostic [label="found library 'FixedPoint'\nlevel Debug\ntests/contract_testcases/solana/shift_struct_member.sol:2:1-21:2"]
	structs -> uq144x112
	structs -> uq112x112
	contracts -> contract
	contract -> decode [label="function"]
	decode -> parameters [label="parameters"]
	decode -> returns [label="returns"]
	decode -> return [label="body"]
	return -> trunc [label="expr"]
	trunc -> load [label="expr"]
	load -> shift_right [label="expr"]
	shift_right -> structmember [label="left"]
	structmember -> variable [label="var"]
	shift_right -> zero_ext [label="right"]
	zero_ext -> number_literal [label="expr"]
	contract -> decode144 [label="function"]
	decode144 -> parameters_17 [label="parameters"]
	decode144 -> returns_18 [label="returns"]
	decode144 -> return_19 [label="body"]
	return_19 -> trunc_20 [label="expr"]
	trunc_20 -> load_21 [label="expr"]
	load_21 -> shift_right_22 [label="expr"]
	shift_right_22 -> structmember_23 [label="left"]
	structmember_23 -> variable_24 [label="var"]
	shift_right_22 -> zero_ext_25 [label="right"]
	zero_ext_25 -> number_literal_26 [label="expr"]
	diagnostics -> diagnostic [label="Debug"]
}
