strict digraph "tests/contract_testcases/substrate/contracts/contract_public_functions_01.sol" {
	contract [label="contract a\ntests/contract_testcases/substrate/contracts/contract_public_functions_01.sol:1:1-3:2"]
	foo [label="function foo\ncontract: a\ntests/contract_testcases/substrate/contracts/contract_public_functions_01.sol:2:5-32\nsignature foo()\nvisibility private\nmutability pure"]
	contract_3 [label="contract b\ntests/contract_testcases/substrate/contracts/contract_public_functions_01.sol:5:1-7:2"]
	foo_4 [label="function foo\ncontract: b\ntests/contract_testcases/substrate/contracts/contract_public_functions_01.sol:6:5-32\nsignature foo()\nvisibility private\nmutability pure"]
	diagnostic [label="found abstract contract 'a'\nlevel Debug\ntests/contract_testcases/substrate/contracts/contract_public_functions_01.sol:1:1-3:2"]
	diagnostic_7 [label="found contract 'b'\nlevel Debug\ntests/contract_testcases/substrate/contracts/contract_public_functions_01.sol:5:1-7:2"]
	diagnostic_8 [label="contracts without public storage or functions are not allowed on Substrate. Consider declaring this contract abstract: 'abstract contract b'\nlevel Error\ntests/contract_testcases/substrate/contracts/contract_public_functions_01.sol:5:1-7:2"]
	contracts -> contract
	contract -> foo [label="function"]
	contracts -> contract_3
	contract_3 -> foo_4 [label="function"]
	diagnostics -> diagnostic [label="Debug"]
	diagnostics -> diagnostic_7 [label="Debug"]
	diagnostics -> diagnostic_8 [label="Error"]
}
