This makes declare class extends behave the same way as in flow The ast-token after the extends keyword, might be either Identifier or QualifiedTypeIdentifier To do that this commits splits the parseGenericType into two functions, one for parsing genericType and on for qualifiedTypeIdentifier
185 lines
4.2 KiB
JSON
185 lines
4.2 KiB
JSON
{
|
|
"type": "File",
|
|
"start": 0,
|
|
"end": 33,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 0
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 33
|
|
}
|
|
},
|
|
"program": {
|
|
"type": "Program",
|
|
"start": 0,
|
|
"end": 33,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 0
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 33
|
|
}
|
|
},
|
|
"sourceType": "module",
|
|
"body": [
|
|
{
|
|
"type": "DeclareClass",
|
|
"start": 0,
|
|
"end": 33,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 0
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 33
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "Identifier",
|
|
"start": 14,
|
|
"end": 15,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 14
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 15
|
|
},
|
|
"identifierName": "A"
|
|
},
|
|
"name": "A"
|
|
},
|
|
"typeParameters": null,
|
|
"extends": [
|
|
{
|
|
"type": "InterfaceExtends",
|
|
"start": 24,
|
|
"end": 29,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 24
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 29
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "QualifiedTypeIdentifier",
|
|
"start": 24,
|
|
"end": 29,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 24
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 29
|
|
}
|
|
},
|
|
"qualification": {
|
|
"type": "QualifiedTypeIdentifier",
|
|
"start": 24,
|
|
"end": 27,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 24
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 27
|
|
}
|
|
},
|
|
"qualification": {
|
|
"type": "Identifier",
|
|
"start": 24,
|
|
"end": 25,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 24
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 25
|
|
},
|
|
"identifierName": "C"
|
|
},
|
|
"name": "C"
|
|
},
|
|
"id": {
|
|
"type": "Identifier",
|
|
"start": 26,
|
|
"end": 27,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 26
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 27
|
|
},
|
|
"identifierName": "B"
|
|
},
|
|
"name": "B"
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "Identifier",
|
|
"start": 28,
|
|
"end": 29,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 28
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 29
|
|
},
|
|
"identifierName": "D"
|
|
},
|
|
"name": "D"
|
|
}
|
|
},
|
|
"typeParameters": null
|
|
}
|
|
],
|
|
"mixins": [],
|
|
"body": {
|
|
"type": "ObjectTypeAnnotation",
|
|
"start": 30,
|
|
"end": 33,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 30
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 33
|
|
}
|
|
},
|
|
"callProperties": [],
|
|
"properties": [],
|
|
"indexers": []
|
|
}
|
|
}
|
|
],
|
|
"directives": []
|
|
}
|
|
} |