strict digraph "tests/contract_testcases/solana/keep_on_resolving.sol" {
	S [label="name:S\ntests/contract_testcases/solana/keep_on_resolving.sol:3:8-9\nfield name:f1 ty:unresolved"]
	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_5 [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"]
	f [label="function f\ntests/contract_testcases/solana/keep_on_resolving.sol:7:1-30\nsignature f((unresolved))\nvisibility internal\nmutability nonpayable"]
	parameters [label="parameters\nstruct S s"]
	returns [label="returns\nint256 "]
	return [label="return\ntests/contract_testcases/solana/keep_on_resolving.sol:8:2-13"]
	load [label="load unresolved\ntests/contract_testcases/solana/keep_on_resolving.sol:8:2-13"]
	structmember [label="struct member #0 unresolved\ntests/contract_testcases/solana/keep_on_resolving.sol:8:11-13"]
	variable [label="variable: s\nstruct S\ntests/contract_testcases/solana/keep_on_resolving.sol:8:9-10"]
	g [label="function g\ntests/contract_testcases/solana/keep_on_resolving.sol:11:1-17\nsignature g((unresolved))\nvisibility internal\nmutability nonpayable"]
	parameters_16 [label="parameters\nstruct S s"]
	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_20 [label="parameters\nint128 v"]
	returns_21 [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_23 [label="parameters\nusertype c.Value v"]
	returns_24 [label="returns\nuint128 "]
	return_25 [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_28 [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="type 'in' not found\nlevel Error\ntests/contract_testcases/solana/keep_on_resolving.sol:4:2-4"]
	diagnostic_32 [label="expected 'struct S', found integer\nlevel Error\ntests/contract_testcases/solana/keep_on_resolving.sol:15:6-7"]
	diagnostic_33 [label="found contract 'c'\nlevel Debug\ntests/contract_testcases/solana/type_decl_broken.sol:3:1-19:2"]
	diagnostic_34 [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_36 [label="'int256[2]' is not an elementary value type\nlevel Error\ntests/contract_testcases/solana/type_decl_broken.sol:5:14-20"]
	diagnostic_37 [label="foo is already defined as a struct\nlevel Error\ntests/contract_testcases/solana/type_decl_broken.sol:6:7-10"]
	note_38 [label="location of previous definition\ntests/contract_testcases/solana/type_decl_broken.sol:4:9-12"]
	diagnostic_39 [label="GlobalFoo is already defined as an user type\nlevel Warning\ntests/contract_testcases/solana/type_decl_broken.sol:7:9-18"]
	note_40 [label="location of previous definition\ntests/contract_testcases/solana/type_decl_broken.sol:1:6-15"]
	diagnostic_41 [label="Value is already defined as an user type\nlevel Error\ntests/contract_testcases/solana/type_decl_broken.sol:10:9-14"]
	note_42 [label="location of previous definition\ntests/contract_testcases/solana/type_decl_broken.sol:9:7-12"]
	diagnostic_43 [label="implicit conversion would change sign from int136 to uint128\nlevel Error\ntests/contract_testcases/solana/type_decl_broken.sol:13:21-26"]
	structs -> S
	structs -> foo
	structs -> GlobalFoo
	types -> GlobalFoo_5
	types -> Value
	free_functions -> f [label="function"]
	f -> parameters [label="parameters"]
	f -> returns [label="returns"]
	f -> return [label="body"]
	return -> load [label="expr"]
	load -> structmember [label="expr"]
	structmember -> variable [label="var"]
	free_functions -> g [label="function"]
	g -> parameters_16 [label="parameters"]
	contracts -> contract
	contract -> inc_and_wrap [label="function"]
	inc_and_wrap -> parameters_20 [label="parameters"]
	inc_and_wrap -> returns_21 [label="returns"]
	contract -> dec_and_unwrap [label="function"]
	dec_and_unwrap -> parameters_23 [label="parameters"]
	dec_and_unwrap -> returns_24 [label="returns"]
	dec_and_unwrap -> return_25 [label="body"]
	return_25 -> subtract [label="expr"]
	subtract -> builtins [label="left"]
	builtins -> variable_28 [label="arg #0"]
	subtract -> number_literal [label="right"]
	diagnostics -> diagnostic [label="Error"]
	diagnostics -> diagnostic_32 [label="Error"]
	diagnostics -> diagnostic_33 [label="Debug"]
	diagnostics -> diagnostic_34 [label="Error"]
	diagnostic_34 -> note [label="note"]
	diagnostics -> diagnostic_36 [label="Error"]
	diagnostics -> diagnostic_37 [label="Error"]
	diagnostic_37 -> note_38 [label="note"]
	diagnostics -> diagnostic_39 [label="Warning"]
	diagnostic_39 -> note_40 [label="note"]
	diagnostics -> diagnostic_41 [label="Error"]
	diagnostic_41 -> note_42 [label="note"]
	diagnostics -> diagnostic_43 [label="Error"]
}
