strict digraph "tests/contract_testcases/solana/type_decl_broken.sol" {
	foo [label="name:foo\ncontract: c\ntests/contract_testcases/solana/type_decl_broken.sol:4:9-12\nfield name:f1 ty:int256"]
	GlobalFoo [label="name:GlobalFoo\ncontract: c\ntests/contract_testcases/solana/type_decl_broken.sol:7:9-18\nfield name:f1 ty:int256"]
	GlobalFoo_4 [label="name:GlobalFoo ty:address payable\ntests/contract_testcases/solana/type_decl_broken.sol:1:1-34"]
	Value [label="name:Value ty:uint128\ncontract: c\ntests/contract_testcases/solana/type_decl_broken.sol:9:2-23"]
	contract [label="contract c\ntests/contract_testcases/solana/type_decl_broken.sol:3:1-19:2"]
	inc_and_wrap [label="function inc_and_wrap\ncontract: c\ntests/contract_testcases/solana/type_decl_broken.sol:12:2-56\nsignature inc_and_wrap(int128)\nvisibility public\nmutability nonpayable"]
	parameters [label="parameters\nint128 v"]
	returns [label="returns\nusertype c.Value "]
	dec_and_unwrap [label="function dec_and_unwrap\ncontract: c\ntests/contract_testcases/solana/type_decl_broken.sol:16:2-59\nsignature dec_and_unwrap(uint128)\nvisibility public\nmutability nonpayable"]
	parameters_12 [label="parameters\nusertype c.Value v"]
	returns_13 [label="returns\nuint128 "]
	return [label="return\ntests/contract_testcases/solana/type_decl_broken.sol:17:3-29"]
	subtract [label="subtract\nuint128\ntests/contract_testcases/solana/type_decl_broken.sol:17:10-29"]
	builtins [label="builtin UserTypeUnwrap\ntests/contract_testcases/solana/type_decl_broken.sol:17:10-25"]
	variable [label="variable: v\nusertype c.Value\ntests/contract_testcases/solana/type_decl_broken.sol:17:23-24"]
	number_literal [label="uint128 literal: 1\ntests/contract_testcases/solana/type_decl_broken.sol:17:28-29"]
	diagnostic [label="found contract 'c'\nlevel Debug\ntests/contract_testcases/solana/type_decl_broken.sol:3:1-19:2"]
	diagnostic_21 [label="foo is already defined as a struct\nlevel Error\ntests/contract_testcases/solana/type_decl_broken.sol:5:7-10"]
	note [label="location of previous definition\ntests/contract_testcases/solana/type_decl_broken.sol:4:9-12"]
	diagnostic_23 [label="'int256[2]' is not an elementary value type\nlevel Error\ntests/contract_testcases/solana/type_decl_broken.sol:5:14-20"]
	diagnostic_24 [label="foo is already defined as a struct\nlevel Error\ntests/contract_testcases/solana/type_decl_broken.sol:6:7-10"]
	note_25 [label="location of previous definition\ntests/contract_testcases/solana/type_decl_broken.sol:4:9-12"]
	diagnostic_26 [label="GlobalFoo is already defined as an user type\nlevel Warning\ntests/contract_testcases/solana/type_decl_broken.sol:7:9-18"]
	note_27 [label="location of previous definition\ntests/contract_testcases/solana/type_decl_broken.sol:1:6-15"]
	diagnostic_28 [label="Value is already defined as an user type\nlevel Error\ntests/contract_testcases/solana/type_decl_broken.sol:10:9-14"]
	note_29 [label="location of previous definition\ntests/contract_testcases/solana/type_decl_broken.sol:9:7-12"]
	diagnostic_30 [label="implicit conversion would change sign from int136 to uint128\nlevel Error\ntests/contract_testcases/solana/type_decl_broken.sol:13:21-26"]
	structs -> foo
	structs -> GlobalFoo
	types -> GlobalFoo_4
	types -> Value
	contracts -> contract
	contract -> inc_and_wrap [label="function"]
	inc_and_wrap -> parameters [label="parameters"]
	inc_and_wrap -> returns [label="returns"]
	contract -> dec_and_unwrap [label="function"]
	dec_and_unwrap -> parameters_12 [label="parameters"]
	dec_and_unwrap -> returns_13 [label="returns"]
	dec_and_unwrap -> return [label="body"]
	return -> subtract [label="expr"]
	subtract -> builtins [label="left"]
	builtins -> variable [label="arg #0"]
	subtract -> number_literal [label="right"]
	diagnostics -> diagnostic [label="Debug"]
	diagnostics -> diagnostic_21 [label="Error"]
	diagnostic_21 -> note [label="note"]
	diagnostics -> diagnostic_23 [label="Error"]
	diagnostics -> diagnostic_24 [label="Error"]
	diagnostic_24 -> note_25 [label="note"]
	diagnostics -> diagnostic_26 [label="Warning"]
	diagnostic_26 -> note_27 [label="note"]
	diagnostics -> diagnostic_28 [label="Error"]
	diagnostic_28 -> note_29 [label="note"]
	diagnostics -> diagnostic_30 [label="Error"]
}
