strict digraph "tests/contract_testcases/substrate/expressions/test_cast_errors_04.sol" {
	X [label="name: X\ncontract: foo2\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:14:13-33\nvalue: Y1\nvalue: Y2\nvalue: Y3"]
	contract [label="contract foo\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:1:1-11:10"]
	var [label="variable bar\nvisibility internal\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:2:13-21"]
	set_bar [label="function set_bar\ncontract: foo\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:4:13-46\nsignature set_bar(uint32)\nvisibility public\nmutability nonpayable"]
	parameters [label="parameters\nuint32 b"]
	expr [label="expression\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:17-24"]
	assign [label="assign\nuint256 storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:17-20"]
	storage_var [label="storage variable\nfoo.bar\nuint256 storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:17-20"]
	zero_ext [label="zero extend uint256\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:23-24"]
	variable [label="variable: b\nuint32\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:23-24"]
	get_bar [label="function get_bar\ncontract: foo\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:8:13-55\nsignature get_bar()\nvisibility public\nmutability nonpayable"]
	returns [label="returns\nuint32 "]
	return [label="return\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:9:17-35"]
	trunc [label="truncate uint32\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:9:24-35"]
	storage_load [label="storage load uint256\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:9:24-35"]
	storage_var_17 [label="storage variable\nfoo.bar\nuint256 storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:9:31-34"]
	contract_18 [label="contract foo2\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:13:9-28:10"]
	var_19 [label="variable y\nvisibility internal\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:15:13-16"]
	set_x [label="function set_x\ncontract: foo2\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:17:13-44\nsignature set_x(uint32)\nvisibility public\nmutability nonpayable"]
	parameters_21 [label="parameters\nuint32 b"]
	expr_22 [label="expression\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:17-25"]
	assign_23 [label="assign\nenum foo2.X storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:17-18"]
	storage_var_24 [label="storage variable\nfoo2.y\nenum foo2.X storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:17-18"]
	trunc_25 [label="truncate enum foo2.X\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:21-25"]
	variable_26 [label="variable: b\nuint32\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:23-24"]
	get_x [label="function get_x\ncontract: foo2\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:21:13-53\nsignature get_x()\nvisibility public\nmutability nonpayable"]
	returns_28 [label="returns\nuint32 "]
	return_29 [label="return\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:22:17-33"]
	zero_ext_30 [label="zero extend uint32\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:22:24-33"]
	storage_load_31 [label="storage load enum foo2.X\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:22:24-33"]
	storage_var_32 [label="storage variable\nfoo2.y\nenum foo2.X storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:22:31-32"]
	set_enum_x [label="function set_enum_x\ncontract: foo2\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:25:13-44\nsignature set_enum_x(uint8)\nvisibility public\nmutability nonpayable"]
	parameters_34 [label="parameters\nenum foo2.X b"]
	expr_35 [label="expression\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:26:17-33"]
	call_internal_function [label="call internal function\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:26:17-33"]
	internal_function [label="function(uint32) internal returns (void)\nfoo2.set_x\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:26:17-33"]
	zero_ext_38 [label="zero extend uint32\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:26:23-32"]
	variable_39 [label="variable: b\nenum foo2.X\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:26:30-31"]
	diagnostic [label="found contract 'foo'\nlevel Debug\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:1:1-11:10"]
	diagnostic_42 [label="function can be declared 'view'\nlevel Warning\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:8:13-55"]
	diagnostic_43 [label="found contract 'foo2'\nlevel Debug\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:13:9-28:10"]
	diagnostic_44 [label="function can be declared 'view'\nlevel Warning\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:21:13-53"]
	enums -> X
	contracts -> contract
	contract -> var [label="variable"]
	contract -> set_bar [label="function"]
	set_bar -> parameters [label="parameters"]
	set_bar -> expr [label="body"]
	expr -> assign [label="expr"]
	assign -> storage_var [label="left"]
	assign -> zero_ext [label="right"]
	zero_ext -> variable [label="expr"]
	contract -> get_bar [label="function"]
	get_bar -> returns [label="returns"]
	get_bar -> return [label="body"]
	return -> trunc [label="expr"]
	trunc -> storage_load [label="expr"]
	storage_load -> storage_var_17 [label="expr"]
	contracts -> contract_18
	contract_18 -> var_19 [label="variable"]
	contract_18 -> set_x [label="function"]
	set_x -> parameters_21 [label="parameters"]
	set_x -> expr_22 [label="body"]
	expr_22 -> assign_23 [label="expr"]
	assign_23 -> storage_var_24 [label="left"]
	assign_23 -> trunc_25 [label="right"]
	trunc_25 -> variable_26 [label="expr"]
	contract_18 -> get_x [label="function"]
	get_x -> returns_28 [label="returns"]
	get_x -> return_29 [label="body"]
	return_29 -> zero_ext_30 [label="expr"]
	zero_ext_30 -> storage_load_31 [label="expr"]
	storage_load_31 -> storage_var_32 [label="expr"]
	contract_18 -> set_enum_x [label="function"]
	set_enum_x -> parameters_34 [label="parameters"]
	set_enum_x -> expr_35 [label="body"]
	expr_35 -> call_internal_function [label="expr"]
	call_internal_function -> internal_function [label="function"]
	call_internal_function -> zero_ext_38 [label="arg #0"]
	zero_ext_38 -> variable_39 [label="expr"]
	diagnostics -> diagnostic [label="Debug"]
	diagnostics -> diagnostic_42 [label="Warning"]
	diagnostics -> diagnostic_43 [label="Debug"]
	diagnostics -> diagnostic_44 [label="Warning"]
}
