strict digraph "tests/contract_testcases/substrate/contracts/external_call_03.sol" {
	contract [label="contract c\ntests/contract_testcases/substrate/contracts/external_call_03.sol:2:9-10:10"]
	var [label="variable x\nvisibility internal\ntests/contract_testcases/substrate/contracts/external_call_03.sol:3:13-16"]
	new [label="constructor new\ncontract: c\ntests/contract_testcases/substrate/contracts/external_call_03.sol:4:13-33\nsignature new()\nvisibility public\nmutability nonpayable"]
	test [label="function test\ncontract: c\ntests/contract_testcases/substrate/contracts/external_call_03.sol:7:13-51\nsignature test()\nvisibility public\nmutability nonpayable"]
	returns [label="returns\nint32 "]
	return [label="return\ntests/contract_testcases/substrate/contracts/external_call_03.sol:8:17-42"]
	call_external_function [label="call external function\ntests/contract_testcases/substrate/contracts/external_call_03.sol:8:24-42"]
	external_function [label="function(int32) external returns (int32)\nb.get_x\ntests/contract_testcases/substrate/contracts/external_call_03.sol:8:24-42"]
	storage_load [label="storage load contract b\ntests/contract_testcases/substrate/contracts/external_call_03.sol:8:24-25"]
	storage_var [label="storage variable\nc.x\ncontract b storage\ntests/contract_testcases/substrate/contracts/external_call_03.sol:8:24-25"]
	number_literal [label="int32 literal: 10\ntests/contract_testcases/substrate/contracts/external_call_03.sol:8:37-39"]
	contract_12 [label="contract b\ntests/contract_testcases/substrate/contracts/external_call_03.sol:12:9-20:10"]
	var_13 [label="variable x\nvisibility internal\ntests/contract_testcases/substrate/contracts/external_call_03.sol:13:13-20"]
	new_14 [label="constructor new\ncontract: b\ntests/contract_testcases/substrate/contracts/external_call_03.sol:14:13-40\nsignature new(int32)\nvisibility public\nmutability nonpayable"]
	parameters [label="parameters\nint32 a"]
	expr [label="expression\ntests/contract_testcases/substrate/contracts/external_call_03.sol:15:17-22"]
	assign [label="assign\nint32 storage\ntests/contract_testcases/substrate/contracts/external_call_03.sol:15:17-18"]
	storage_var_18 [label="storage variable\nb.x\nint32 storage\ntests/contract_testcases/substrate/contracts/external_call_03.sol:15:17-18"]
	variable [label="variable: a\nint32\ntests/contract_testcases/substrate/contracts/external_call_03.sol:15:21-22"]
	get_x [label="function get_x\ncontract: b\ntests/contract_testcases/substrate/contracts/external_call_03.sol:17:13-59\nsignature get_x(int32)\nvisibility public\nmutability nonpayable"]
	parameters_21 [label="parameters\nint32 t"]
	returns_22 [label="returns\nint32 "]
	return_23 [label="return\ntests/contract_testcases/substrate/contracts/external_call_03.sol:18:17-29"]
	multiply [label="multiply\nint32\ntests/contract_testcases/substrate/contracts/external_call_03.sol:18:24-29"]
	storage_load_25 [label="storage load int32\ntests/contract_testcases/substrate/contracts/external_call_03.sol:18:24-25"]
	storage_var_26 [label="storage variable\nb.x\nint32 storage\ntests/contract_testcases/substrate/contracts/external_call_03.sol:18:24-25"]
	variable_27 [label="variable: t\nint32\ntests/contract_testcases/substrate/contracts/external_call_03.sol:18:28-29"]
	diagnostic [label="found contract 'c'\nlevel Debug\ntests/contract_testcases/substrate/contracts/external_call_03.sol:2:9-10:10"]
	diagnostic_30 [label="'public': visibility for constructors is ignored\nlevel Warning\ntests/contract_testcases/substrate/contracts/external_call_03.sol:4:27-33"]
	diagnostic_31 [label="duplicate argument name 'a'\nlevel Error\ntests/contract_testcases/substrate/contracts/external_call_03.sol:5:21-42"]
	note [label="location of previous argument\ntests/contract_testcases/substrate/contracts/external_call_03.sol:5:32-33"]
	diagnostic_33 [label="found contract 'b'\nlevel Debug\ntests/contract_testcases/substrate/contracts/external_call_03.sol:12:9-20:10"]
	diagnostic_34 [label="'public': visibility for constructors is ignored\nlevel Warning\ntests/contract_testcases/substrate/contracts/external_call_03.sol:14:34-40"]
	contracts -> contract
	contract -> var [label="variable"]
	contract -> new [label="constructor"]
	contract -> test [label="function"]
	test -> returns [label="returns"]
	test -> return [label="body"]
	return -> call_external_function [label="expr"]
	call_external_function -> external_function [label="function"]
	external_function -> storage_load [label="address"]
	storage_load -> storage_var [label="expr"]
	call_external_function -> number_literal [label="arg #0"]
	contracts -> contract_12
	contract_12 -> var_13 [label="variable"]
	contract_12 -> new_14 [label="constructor"]
	new_14 -> parameters [label="parameters"]
	new_14 -> expr [label="body"]
	expr -> assign [label="expr"]
	assign -> storage_var_18 [label="left"]
	assign -> variable [label="right"]
	contract_12 -> get_x [label="function"]
	get_x -> parameters_21 [label="parameters"]
	get_x -> returns_22 [label="returns"]
	get_x -> return_23 [label="body"]
	return_23 -> multiply [label="expr"]
	multiply -> storage_load_25 [label="left"]
	storage_load_25 -> storage_var_26 [label="expr"]
	multiply -> variable_27 [label="right"]
	diagnostics -> diagnostic [label="Debug"]
	diagnostics -> diagnostic_30 [label="Warning"]
	diagnostics -> diagnostic_31 [label="Error"]
	diagnostic_31 -> note [label="note"]
	diagnostics -> diagnostic_33 [label="Debug"]
	diagnostics -> diagnostic_34 [label="Warning"]
}
