solidity/test/libsolidity/ASTJSON/user_defined_operator.json
2023-02-22 00:40:03 +01:00

664 lines
18 KiB
JSON

{
"absolutePath": "a",
"exportedSymbols":
{
"C":
[
49
],
"I8":
[
2
],
"sub":
[
20
],
"unsub":
[
30
]
},
"id": 50,
"nodeType": "SourceUnit",
"nodes":
[
{
"canonicalName": "I8",
"id": 2,
"name": "I8",
"nameLocation": "5:2:1",
"nodeType": "UserDefinedValueTypeDefinition",
"src": "0:16:1",
"underlyingType":
{
"id": 1,
"name": "int8",
"nodeType": "ElementaryTypeName",
"src": "11:4:1",
"typeDescriptions":
{
"typeIdentifier": "t_int8",
"typeString": "int8"
}
}
},
{
"functionList":
[
{
"definition":
{
"id": 3,
"name": "sub",
"nameLocations":
[
"24:3:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 20,
"src": "24:3:1"
},
"operator": "-"
},
{
"definition":
{
"id": 4,
"name": "unsub",
"nameLocations":
[
"34:5:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30,
"src": "34:5:1"
},
"operator": "-"
}
],
"global": true,
"id": 7,
"nodeType": "UsingForDirective",
"src": "17:43:1",
"typeName":
{
"id": 6,
"nodeType": "UserDefinedTypeName",
"pathNode":
{
"id": 5,
"name": "I8",
"nameLocations":
[
"50:2:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2,
"src": "50:2:1"
},
"referencedDeclaration": 2,
"src": "50:2:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
}
},
{
"body":
{
"id": 19,
"nodeType": "Block",
"src": "100:2:1",
"statements": []
},
"id": 20,
"implemented": true,
"kind": "freeFunction",
"modifiers": [],
"name": "sub",
"nameLocation": "70:3:1",
"nodeType": "FunctionDefinition",
"parameters":
{
"id": 14,
"nodeType": "ParameterList",
"parameters":
[
{
"constant": false,
"id": 10,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 20,
"src": "74:2:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
},
"typeName":
{
"id": 9,
"nodeType": "UserDefinedTypeName",
"pathNode":
{
"id": 8,
"name": "I8",
"nameLocations":
[
"74:2:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2,
"src": "74:2:1"
},
"referencedDeclaration": 2,
"src": "74:2:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 13,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 20,
"src": "78:2:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
},
"typeName":
{
"id": 12,
"nodeType": "UserDefinedTypeName",
"pathNode":
{
"id": 11,
"name": "I8",
"nameLocations":
[
"78:2:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2,
"src": "78:2:1"
},
"referencedDeclaration": 2,
"src": "78:2:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"visibility": "internal"
}
],
"src": "73:8:1"
},
"returnParameters":
{
"id": 18,
"nodeType": "ParameterList",
"parameters":
[
{
"constant": false,
"id": 17,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 20,
"src": "96:2:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
},
"typeName":
{
"id": 16,
"nodeType": "UserDefinedTypeName",
"pathNode":
{
"id": 15,
"name": "I8",
"nameLocations":
[
"96:2:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2,
"src": "96:2:1"
},
"referencedDeclaration": 2,
"src": "96:2:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"visibility": "internal"
}
],
"src": "95:4:1"
},
"scope": 50,
"src": "61:41:1",
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"body":
{
"id": 29,
"nodeType": "Block",
"src": "140:2:1",
"statements": []
},
"id": 30,
"implemented": true,
"kind": "freeFunction",
"modifiers": [],
"name": "unsub",
"nameLocation": "112:5:1",
"nodeType": "FunctionDefinition",
"parameters":
{
"id": 24,
"nodeType": "ParameterList",
"parameters":
[
{
"constant": false,
"id": 23,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "118:2:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
},
"typeName":
{
"id": 22,
"nodeType": "UserDefinedTypeName",
"pathNode":
{
"id": 21,
"name": "I8",
"nameLocations":
[
"118:2:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2,
"src": "118:2:1"
},
"referencedDeclaration": 2,
"src": "118:2:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"visibility": "internal"
}
],
"src": "117:4:1"
},
"returnParameters":
{
"id": 28,
"nodeType": "ParameterList",
"parameters":
[
{
"constant": false,
"id": 27,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "136:2:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
},
"typeName":
{
"id": 26,
"nodeType": "UserDefinedTypeName",
"pathNode":
{
"id": 25,
"name": "I8",
"nameLocations":
[
"136:2:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2,
"src": "136:2:1"
},
"referencedDeclaration": 2,
"src": "136:2:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"visibility": "internal"
}
],
"src": "135:4:1"
},
"scope": 50,
"src": "103:39:1",
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "C",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 49,
"linearizedBaseContracts":
[
49
],
"name": "C",
"nameLocation": "152:1:1",
"nodeType": "ContractDefinition",
"nodes":
[
{
"body":
{
"id": 47,
"nodeType": "Block",
"src": "208:30:1",
"statements":
[
{
"expression":
{
"commonType":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
},
"function": 20,
"id": 45,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression":
{
"function": 30,
"id": 43,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "225:2:1",
"subExpression":
{
"id": 42,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 33,
"src": "226:1:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression":
{
"id": 44,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "230:1:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"src": "225:6:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"functionReturnParameters": 41,
"id": 46,
"nodeType": "Return",
"src": "218:13:1"
}
]
},
"functionSelector": "ac9fe858",
"id": 48,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "f",
"nameLocation": "169:1:1",
"nodeType": "FunctionDefinition",
"parameters":
{
"id": 37,
"nodeType": "ParameterList",
"parameters":
[
{
"constant": false,
"id": 33,
"mutability": "mutable",
"name": "a",
"nameLocation": "174:1:1",
"nodeType": "VariableDeclaration",
"scope": 48,
"src": "171:4:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
},
"typeName":
{
"id": 32,
"nodeType": "UserDefinedTypeName",
"pathNode":
{
"id": 31,
"name": "I8",
"nameLocations":
[
"171:2:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2,
"src": "171:2:1"
},
"referencedDeclaration": 2,
"src": "171:2:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 36,
"mutability": "mutable",
"name": "b",
"nameLocation": "180:1:1",
"nodeType": "VariableDeclaration",
"scope": 48,
"src": "177:4:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
},
"typeName":
{
"id": 35,
"nodeType": "UserDefinedTypeName",
"pathNode":
{
"id": 34,
"name": "I8",
"nameLocations":
[
"177:2:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2,
"src": "177:2:1"
},
"referencedDeclaration": 2,
"src": "177:2:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"visibility": "internal"
}
],
"src": "170:12:1"
},
"returnParameters":
{
"id": 41,
"nodeType": "ParameterList",
"parameters":
[
{
"constant": false,
"id": 40,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 48,
"src": "204:2:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
},
"typeName":
{
"id": 39,
"nodeType": "UserDefinedTypeName",
"pathNode":
{
"id": 38,
"name": "I8",
"nameLocations":
[
"204:2:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2,
"src": "204:2:1"
},
"referencedDeclaration": 2,
"src": "204:2:1",
"typeDescriptions":
{
"typeIdentifier": "t_userDefinedValueType$_I8_$2",
"typeString": "I8"
}
},
"visibility": "internal"
}
],
"src": "203:4:1"
},
"scope": 49,
"src": "160:78:1",
"stateMutability": "pure",
"virtual": false,
"visibility": "public"
}
],
"scope": 50,
"src": "143:97:1",
"usedErrors": []
}
],
"src": "0:241:1"
}