strict digraph "tests/contract_testcases/solana/immutable_function_type.sol" {
	contract [label="contract c\ntests/contract_testcases/solana/immutable_function_type.sol:1:1-4:2"]
	var [label="variable f\nvisibility private\nimmutable\ntests/contract_testcases/solana/immutable_function_type.sol:2:5-63"]
	cast [label="cast function() internal returns (uint256)\ntests/contract_testcases/solana/immutable_function_type.sol:2:62-63"]
	internal_function [label="function() internal pure returns (uint256)\nc.g\ntests/contract_testcases/solana/immutable_function_type.sol:2:62-63"]
	g [label="function g\ncontract: c\ntests/contract_testcases/solana/immutable_function_type.sol:3:5-46\nsignature g()\nvisibility internal\nmutability pure"]
	returns [label="returns\nuint256 "]
	return [label="return\ntests/contract_testcases/solana/immutable_function_type.sol:3:49-57"]
	number_literal [label="uint256 literal: 2\ntests/contract_testcases/solana/immutable_function_type.sol:3:56-57"]
	contract_9 [label="contract d\ntests/contract_testcases/solana/immutable_function_type.sol:6:1-9:2"]
	var_10 [label="variable f\nvisibility private\nimmutable\ntests/contract_testcases/solana/immutable_function_type.sol:7:5-63"]
	cast_11 [label="cast function() internal returns (uint256)\ntests/contract_testcases/solana/immutable_function_type.sol:7:62-63"]
	internal_function_12 [label="function() internal pure returns (uint256)\nd.g\ntests/contract_testcases/solana/immutable_function_type.sol:7:62-63"]
	g_13 [label="function g\ncontract: d\ntests/contract_testcases/solana/immutable_function_type.sol:8:5-46\nsignature g()\nvisibility internal\nmutability pure"]
	returns_14 [label="returns\nuint256 "]
	return_15 [label="return\ntests/contract_testcases/solana/immutable_function_type.sol:8:49-57"]
	number_literal_16 [label="uint256 literal: 2\ntests/contract_testcases/solana/immutable_function_type.sol:8:56-57"]
	contract_17 [label="contract e\ntests/contract_testcases/solana/immutable_function_type.sol:11:1-14:2"]
	var_18 [label="variable f\nvisibility private\nimmutable\ntests/contract_testcases/solana/immutable_function_type.sol:12:5-73"]
	cast_19 [label="cast function() internal returns (uint256)\ntests/contract_testcases/solana/immutable_function_type.sol:12:72-73"]
	internal_function_20 [label="function() internal pure returns (uint256)\ne.g\ntests/contract_testcases/solana/immutable_function_type.sol:12:72-73"]
	g_21 [label="function g\ncontract: e\ntests/contract_testcases/solana/immutable_function_type.sol:13:5-46\nsignature g()\nvisibility internal\nmutability pure"]
	returns_22 [label="returns\nuint256 "]
	return_23 [label="return\ntests/contract_testcases/solana/immutable_function_type.sol:13:49-57"]
	number_literal_24 [label="uint256 literal: 2\ntests/contract_testcases/solana/immutable_function_type.sol:13:56-57"]
	contract_25 [label="contract b\ntests/contract_testcases/solana/immutable_function_type.sol:15:1-18:2"]
	var_26 [label="variable f\nvisibility private\ntests/contract_testcases/solana/immutable_function_type.sol:16:5-63"]
	cast_27 [label="cast function() internal returns (uint256)\ntests/contract_testcases/solana/immutable_function_type.sol:16:62-63"]
	internal_function_28 [label="function() internal pure returns (uint256)\nb.g\ntests/contract_testcases/solana/immutable_function_type.sol:16:62-63"]
	g_29 [label="function g\ncontract: b\ntests/contract_testcases/solana/immutable_function_type.sol:17:5-46\nsignature g()\nvisibility internal\nmutability pure"]
	returns_30 [label="returns\nuint256 "]
	return_31 [label="return\ntests/contract_testcases/solana/immutable_function_type.sol:17:49-57"]
	number_literal_32 [label="uint256 literal: 2\ntests/contract_testcases/solana/immutable_function_type.sol:17:56-57"]
	contract_33 [label="contract a\ntests/contract_testcases/solana/immutable_function_type.sol:20:1-27:2"]
	x [label="function x\ncontract: a\ntests/contract_testcases/solana/immutable_function_type.sol:21:5-24\nsignature x()\nvisibility public\nmutability nonpayable"]
	y [label="function y\ncontract: a\ntests/contract_testcases/solana/immutable_function_type.sol:24:5-24\nsignature y()\nvisibility public\nmutability nonpayable"]
	diagnostic [label="found contract 'c'\nlevel Debug\ntests/contract_testcases/solana/immutable_function_type.sol:1:1-4:2"]
	diagnostic_38 [label="found contract 'd'\nlevel Debug\ntests/contract_testcases/solana/immutable_function_type.sol:6:1-9:2"]
	diagnostic_39 [label="found contract 'e'\nlevel Debug\ntests/contract_testcases/solana/immutable_function_type.sol:11:1-14:2"]
	diagnostic_40 [label="duplicate 'immutable' attribute\nlevel Error\ntests/contract_testcases/solana/immutable_function_type.sol:12:48-57"]
	note [label="previous 'immutable' attribute\ntests/contract_testcases/solana/immutable_function_type.sol:12:58-67"]
	diagnostic_42 [label="found contract 'b'\nlevel Debug\ntests/contract_testcases/solana/immutable_function_type.sol:15:1-18:2"]
	diagnostic_43 [label="found contract 'a'\nlevel Debug\ntests/contract_testcases/solana/immutable_function_type.sol:20:1-27:2"]
	diagnostic_44 [label="function type cannot have visibility 'private'\nlevel Error\ntests/contract_testcases/solana/immutable_function_type.sol:22:37-44"]
	diagnostic_45 [label="function type cannot be 'immutable'\nlevel Error\ntests/contract_testcases/solana/immutable_function_type.sol:22:45-54"]
	diagnostic_46 [label="function type cannot have visibility 'private'\nlevel Error\ntests/contract_testcases/solana/immutable_function_type.sol:25:22-29"]
	diagnostic_47 [label="function type cannot be 'immutable'\nlevel Error\ntests/contract_testcases/solana/immutable_function_type.sol:25:30-39"]
	contracts -> contract
	contract -> var [label="variable"]
	var -> cast [label="initializer"]
	cast -> internal_function [label="expr"]
	contract -> g [label="function"]
	g -> returns [label="returns"]
	g -> return [label="body"]
	return -> number_literal [label="expr"]
	contracts -> contract_9
	contract_9 -> var_10 [label="variable"]
	var_10 -> cast_11 [label="initializer"]
	cast_11 -> internal_function_12 [label="expr"]
	contract_9 -> g_13 [label="function"]
	g_13 -> returns_14 [label="returns"]
	g_13 -> return_15 [label="body"]
	return_15 -> number_literal_16 [label="expr"]
	contracts -> contract_17
	contract_17 -> var_18 [label="variable"]
	var_18 -> cast_19 [label="initializer"]
	cast_19 -> internal_function_20 [label="expr"]
	contract_17 -> g_21 [label="function"]
	g_21 -> returns_22 [label="returns"]
	g_21 -> return_23 [label="body"]
	return_23 -> number_literal_24 [label="expr"]
	contracts -> contract_25
	contract_25 -> var_26 [label="variable"]
	var_26 -> cast_27 [label="initializer"]
	cast_27 -> internal_function_28 [label="expr"]
	contract_25 -> g_29 [label="function"]
	g_29 -> returns_30 [label="returns"]
	g_29 -> return_31 [label="body"]
	return_31 -> number_literal_32 [label="expr"]
	contracts -> contract_33
	contract_33 -> x [label="function"]
	contract_33 -> y [label="function"]
	diagnostics -> diagnostic [label="Debug"]
	diagnostics -> diagnostic_38 [label="Debug"]
	diagnostics -> diagnostic_39 [label="Debug"]
	diagnostics -> diagnostic_40 [label="Error"]
	diagnostic_40 -> note [label="note"]
	diagnostics -> diagnostic_42 [label="Debug"]
	diagnostics -> diagnostic_43 [label="Debug"]
	diagnostics -> diagnostic_44 [label="Error"]
	diagnostics -> diagnostic_45 [label="Error"]
	diagnostics -> diagnostic_46 [label="Error"]
	diagnostics -> diagnostic_47 [label="Error"]
}
