{ "absolutePath": "a", "exportedSymbols": { "A": [ 5 ], "B": [ 10 ], "C": [ 22 ] }, "id": 23, "nodeType": "SourceUnit", "nodes": [ { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 5, "linearizedBaseContracts": [ 5 ], "name": "A", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 3, "nodeType": "Block", "src": "45:2:1", "statements": [] }, "documentation": null, "id": 4, "implemented": true, "kind": "function", "modifiers": [], "name": "f", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 1, "nodeType": "ParameterList", "parameters": [], "src": "27:2:1" }, "returnParameters": { "id": 2, "nodeType": "ParameterList", "parameters": [], "src": "45:0:1" }, "scope": 5, "src": "17:30:1", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" } ], "scope": 23, "src": "0:49:1" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 10, "linearizedBaseContracts": [ 10 ], "name": "B", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 8, "nodeType": "Block", "src": "95:2:1", "statements": [] }, "documentation": null, "id": 9, "implemented": true, "kind": "function", "modifiers": [], "name": "f", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 6, "nodeType": "ParameterList", "parameters": [], "src": "77:2:1" }, "returnParameters": { "id": 7, "nodeType": "ParameterList", "parameters": [], "src": "95:0:1" }, "scope": 10, "src": "67:30:1", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" } ], "scope": 23, "src": "50:49:1" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 11, "name": "A", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5, "src": "114:1:1", "typeDescriptions": { "typeIdentifier": "t_contract$_A_$5", "typeString": "contract A" } }, "id": 12, "nodeType": "InheritanceSpecifier", "src": "114:1:1" }, { "arguments": null, "baseName": { "contractScope": null, "id": 13, "name": "B", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 10, "src": "117:1:1", "typeDescriptions": { "typeIdentifier": "t_contract$_B_$10", "typeString": "contract B" } }, "id": 14, "nodeType": "InheritanceSpecifier", "src": "117:1:1" } ], "contractDependencies": [ 5, 10 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 22, "linearizedBaseContracts": [ 22, 10, 5 ], "name": "C", "nodeType": "ContractDefinition", "nodes": [ { "baseFunctions": [ 4, 9 ], "body": { "id": 20, "nodeType": "Block", "src": "160:2:1", "statements": [] }, "documentation": null, "id": 21, "implemented": true, "kind": "function", "modifiers": [], "name": "f", "nodeType": "FunctionDefinition", "overrides": { "id": 18, "nodeType": "OverrideSpecifier", "overrides": [ { "contractScope": null, "id": 16, "name": "A", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5, "src": "154:1:1", "typeDescriptions": { "typeIdentifier": "t_contract$_A_$5", "typeString": "contract A" } }, { "contractScope": null, "id": 17, "name": "B", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 10, "src": "157:1:1", "typeDescriptions": { "typeIdentifier": "t_contract$_B_$10", "typeString": "contract B" } } ], "src": "145:14:1" }, "parameters": { "id": 15, "nodeType": "ParameterList", "parameters": [], "src": "135:2:1" }, "returnParameters": { "id": 19, "nodeType": "ParameterList", "parameters": [], "src": "160:0:1" }, "scope": 22, "src": "125:37:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 23, "src": "100:64:1" } ], "src": "0:165:1" }