{ "absolutePath": "a", "exportedSymbols": { "C": [ 10 ], "D": [ 30 ] }, "id": 31, "nodeType": "SourceUnit", "nodes": [ { "abstract": false, "baseContracts": [], "canonicalName": "C", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 10, "linearizedBaseContracts": [ 10 ], "name": "C", "nameLocation": "9:1:1", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "eventSelector": "ffae15ba29768297c9b951e2e14bc33dc84599d1572acc234266fc70392babc8", "id": 2, "name": "e", "nameLocation": "23:1:1", "nodeType": "EventDefinition", "parameters": { "id": 1, "nodeType": "ParameterList", "parameters": [], "src": "24:2:1" }, "src": "17:10:1" }, { "body": { "id": 8, "nodeType": "Block", "src": "52:25:1", "statements": [ { "eventCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 5, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2, "src": "67:1:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 6, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "67:3:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 7, "nodeType": "EmitStatement", "src": "62:8:1" } ] }, "functionSelector": "26121ff0", "id": 9, "implemented": true, "kind": "function", "modifiers": [], "name": "f", "nameLocation": "41:1:1", "nodeType": "FunctionDefinition", "parameters": { "id": 3, "nodeType": "ParameterList", "parameters": [], "src": "42:2:1" }, "returnParameters": { "id": 4, "nodeType": "ParameterList", "parameters": [], "src": "52:0:1" }, "scope": 10, "src": "32:45:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 31, "src": "0:79:1", "usedErrors": [], "usedEvents": [ 2 ] }, { "abstract": false, "baseContracts": [], "canonicalName": "D", "contractDependencies": [ 10 ], "contractKind": "contract", "fullyImplemented": true, "id": 30, "linearizedBaseContracts": [ 30 ], "name": "D", "nameLocation": "89:1:1", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 13, "mutability": "mutable", "name": "c", "nameLocation": "99:1:1", "nodeType": "VariableDeclaration", "scope": 30, "src": "97:3:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_C_$10", "typeString": "contract C" }, "typeName": { "id": 12, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 11, "name": "C", "nameLocations": [ "97:1:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 10, "src": "97:1:1" }, "referencedDeclaration": 10, "src": "97:1:1", "typeDescriptions": { "typeIdentifier": "t_contract$_C_$10", "typeString": "contract C" } }, "visibility": "internal" }, { "body": { "id": 28, "nodeType": "Block", "src": "120:43:1", "statements": [ { "expression": { "id": 21, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 16, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13, "src": "130:1:1", "typeDescriptions": { "typeIdentifier": "t_contract$_C_$10", "typeString": "contract C" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [], "expression": { "argumentTypes": [], "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "134:5:1", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_C_$10_$", "typeString": "function () returns (contract C)" }, "typeName": { "id": 18, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 17, "name": "C", "nameLocations": [ "138:1:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 10, "src": "138:1:1" }, "referencedDeclaration": 10, "src": "138:1:1", "typeDescriptions": { "typeIdentifier": "t_contract$_C_$10", "typeString": "contract C" } } }, "id": 20, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "134:7:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_C_$10", "typeString": "contract C" } }, "src": "130:11:1", "typeDescriptions": { "typeIdentifier": "t_contract$_C_$10", "typeString": "contract C" } }, "id": 22, "nodeType": "ExpressionStatement", "src": "130:11:1" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 23, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13, "src": "151:1:1", "typeDescriptions": { "typeIdentifier": "t_contract$_C_$10", "typeString": "contract C" } }, "id": 25, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "153:1:1", "memberName": "f", "nodeType": "MemberAccess", "referencedDeclaration": 9, "src": "151:3:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, "id": 26, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "151:5:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 27, "nodeType": "ExpressionStatement", "src": "151:5:1" } ] }, "id": 29, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 14, "nodeType": "ParameterList", "parameters": [], "src": "117:2:1" }, "returnParameters": { "id": 15, "nodeType": "ParameterList", "parameters": [], "src": "120:0:1" }, "scope": 30, "src": "106:57:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 31, "src": "80:85:1", "usedErrors": [], "usedEvents": [] } ], "src": "0:166:1" }