Ensure no-overlap between Flow and TS node types (#710)

This commit is contained in:
James Kyle 2017-09-26 05:42:33 +10:00 committed by Henry Zhu
parent a4acf2da6d
commit d9766932db
89 changed files with 412 additions and 363 deletions

View File

@ -256,8 +256,8 @@ export default (superClass: Class<Parser>): Class<Parser> =>
return this.finishNode(node, "TSTypeQuery"); return this.finishNode(node, "TSTypeQuery");
} }
tsParseTypeParameter(): N.TypeParameter { tsParseTypeParameter(): N.TsTypeParameter {
const node: N.TypeParameter = this.startNode(); const node: N.TsTypeParameter = this.startNode();
node.name = this.parseIdentifierName(node.start); node.name = this.parseIdentifierName(node.start);
if (this.eat(tt._extends)) { if (this.eat(tt._extends)) {
node.constraint = this.tsParseType(); node.constraint = this.tsParseType();
@ -267,17 +267,17 @@ export default (superClass: Class<Parser>): Class<Parser> =>
node.default = this.tsParseType(); node.default = this.tsParseType();
} }
return this.finishNode(node, "TypeParameter"); return this.finishNode(node, "TSTypeParameter");
} }
tsTryParseTypeParameters(): ?N.TypeParameterDeclaration { tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {
if (this.isRelational("<")) { if (this.isRelational("<")) {
return this.tsParseTypeParameters(); return this.tsParseTypeParameters();
} }
} }
tsParseTypeParameters() { tsParseTypeParameters() {
const node: N.TypeParameterDeclaration = this.startNode(); const node: N.TsTypeParameterDeclaration = this.startNode();
if (this.isRelational("<") || this.match(tt.jsxTagStart)) { if (this.isRelational("<") || this.match(tt.jsxTagStart)) {
this.next(); this.next();
@ -291,7 +291,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
/* bracket */ false, /* bracket */ false,
/* skipFirstToken */ true, /* skipFirstToken */ true,
); );
return this.finishNode(node, "TypeParameterDeclaration"); return this.finishNode(node, "TSTypeParameterDeclaration");
} }
// Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`, // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,
@ -460,12 +460,12 @@ export default (superClass: Class<Parser>): Class<Parser> =>
return this.match(tt._in); return this.match(tt._in);
} }
tsParseMappedTypeParameter(): N.TypeParameter { tsParseMappedTypeParameter(): N.TsTypeParameter {
const node: N.TypeParameter = this.startNode(); const node: N.TsTypeParameter = this.startNode();
node.name = this.parseIdentifierName(node.start); node.name = this.parseIdentifierName(node.start);
this.expect(tt._in); this.expect(tt._in);
node.constraint = this.tsParseType(); node.constraint = this.tsParseType();
return this.finishNode(node, "TypeParameter"); return this.finishNode(node, "TSTypeParameter");
} }
tsParseMappedType(): N.TsMappedType { tsParseMappedType(): N.TsMappedType {
@ -719,8 +719,8 @@ export default (superClass: Class<Parser>): Class<Parser> =>
tsParseTypeOrTypePredicateAnnotation( tsParseTypeOrTypePredicateAnnotation(
returnToken: TokenType, returnToken: TokenType,
): N.TypeAnnotation { ): N.TsTypeAnnotation {
const t: N.TypeAnnotation = this.startNode(); const t: N.TsTypeAnnotation = this.startNode();
this.expect(returnToken); this.expect(returnToken);
const typePredicateVariable = const typePredicateVariable =
@ -739,16 +739,16 @@ export default (superClass: Class<Parser>): Class<Parser> =>
node.parameterName = typePredicateVariable; node.parameterName = typePredicateVariable;
node.typeAnnotation = type; node.typeAnnotation = type;
t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); t.typeAnnotation = this.finishNode(node, "TSTypePredicate");
return this.finishNode(t, "TypeAnnotation"); return this.finishNode(t, "TSTypeAnnotation");
} }
tsTryParseTypeOrTypePredicateAnnotation(): ?N.TypeAnnotation { tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {
return this.match(tt.colon) return this.match(tt.colon)
? this.tsParseTypeOrTypePredicateAnnotation(tt.colon) ? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)
: undefined; : undefined;
} }
tsTryParseTypeAnnotation(): ?N.TypeAnnotation { tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {
return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined; return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;
} }
@ -766,11 +766,11 @@ export default (superClass: Class<Parser>): Class<Parser> =>
tsParseTypeAnnotation( tsParseTypeAnnotation(
eatColon = true, eatColon = true,
t: N.TypeAnnotation = this.startNode(), t: N.TsTypeAnnotation = this.startNode(),
): N.TypeAnnotation { ): N.TsTypeAnnotation {
if (eatColon) this.expect(tt.colon); if (eatColon) this.expect(tt.colon);
t.typeAnnotation = this.tsParseType(); t.typeAnnotation = this.tsParseType();
return this.finishNode(t, "TypeAnnotation"); return this.finishNode(t, "TSTypeAnnotation");
} }
tsParseType(): N.TsType { tsParseType(): N.TsType {
@ -799,9 +799,9 @@ export default (superClass: Class<Parser>): Class<Parser> =>
return this.finishNode(node, "TSTypeAssertion"); return this.finishNode(node, "TSTypeAssertion");
} }
tsTryParseTypeArgumentsInExpression(): ?N.TypeParameterInstantiation { tsTryParseTypeArgumentsInExpression(): ?N.TsTypeParameterInstantiation {
return this.tsTryParseAndCatch(() => { return this.tsTryParseAndCatch(() => {
const res: N.TypeParameterInstantiation = this.startNode(); const res: N.TsTypeParameterInstantiation = this.startNode();
this.expectRelational("<"); this.expectRelational("<");
const typeArguments = this.tsParseDelimitedList( const typeArguments = this.tsParseDelimitedList(
"TypeParametersOrArguments", "TypeParametersOrArguments",
@ -809,7 +809,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
); );
this.expectRelational(">"); this.expectRelational(">");
res.params = typeArguments; res.params = typeArguments;
this.finishNode(res, "TypeParameterInstantiation"); this.finishNode(res, "TSTypeParameterInstantiation");
this.expect(tt.parenL); this.expect(tt.parenL);
return res; return res;
}); });
@ -1180,7 +1180,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
return this.finishNode(res, "ArrowFunctionExpression"); return this.finishNode(res, "ArrowFunctionExpression");
} }
tsParseTypeArguments(): N.TypeParameterInstantiation { tsParseTypeArguments(): N.TsTypeParameterInstantiation {
const node = this.startNode(); const node = this.startNode();
this.expectRelational("<"); this.expectRelational("<");
node.params = this.tsParseDelimitedList( node.params = this.tsParseDelimitedList(
@ -1188,7 +1188,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
this.tsParseType.bind(this), this.tsParseType.bind(this),
); );
this.expectRelational(">"); this.expectRelational(">");
return this.finishNode(node, "TypeParameterInstantiation"); return this.finishNode(node, "TSTypeParameterInstantiation");
} }
// ====================================================== // ======================================================
@ -1587,14 +1587,14 @@ export default (superClass: Class<Parser>): Class<Parser> =>
} }
if (this.match(tt.colon)) { if (this.match(tt.colon)) {
const typeCastNode: N.TypeCastExpression = this.startNodeAt( const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(
startPos, startPos,
startLoc, startLoc,
); );
typeCastNode.expression = node; typeCastNode.expression = node;
typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();
return this.finishNode(typeCastNode, "TypeCastExpression"); return this.finishNode(typeCastNode, "TSTypeCastExpression");
} }
return node; return node;
@ -1751,7 +1751,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
// Either way, we're looking at a '<': tt.jsxTagStart or relational. // Either way, we're looking at a '<': tt.jsxTagStart or relational.
let arrowExpression; let arrowExpression;
let typeParameters: N.TypeParameterDeclaration; let typeParameters: N.TsTypeParameterDeclaration;
const state = this.state.clone(); const state = this.state.clone();
try { try {
// This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`. // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.
@ -1849,7 +1849,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
contextDescription: string, contextDescription: string,
): N.Node { ): N.Node {
switch (node.type) { switch (node.type) {
case "TypeCastExpression": case "TSTypeCastExpression":
return super.toAssignable( return super.toAssignable(
this.typeCastToParameter(node), this.typeCastToParameter(node),
isBinding, isBinding,
@ -1869,7 +1869,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
contextDescription: string, contextDescription: string,
): void { ): void {
switch (expr.type) { switch (expr.type) {
case "TypeCastExpression": case "TSTypeCastExpression":
// Allow "typecasts" to appear on the left of assignment expressions, // Allow "typecasts" to appear on the left of assignment expressions,
// because it may be in an arrow function. // because it may be in an arrow function.
// e.g. `const f = (foo: number = 0) => foo;` // e.g. `const f = (foo: number = 0) => foo;`
@ -1945,14 +1945,14 @@ export default (superClass: Class<Parser>): Class<Parser> =>
): $ReadOnlyArray<N.Pattern> { ): $ReadOnlyArray<N.Pattern> {
for (let i = 0; i < exprList.length; i++) { for (let i = 0; i < exprList.length; i++) {
const expr = exprList[i]; const expr = exprList[i];
if (expr && expr.type === "TypeCastExpression") { if (expr && expr.type === "TSTypeCastExpression") {
exprList[i] = this.typeCastToParameter(expr); exprList[i] = this.typeCastToParameter(expr);
} }
} }
return super.toAssignableList(exprList, isBinding, contextDescription); return super.toAssignableList(exprList, isBinding, contextDescription);
} }
typeCastToParameter(node: N.TypeCastExpression): N.Node { typeCastToParameter(node: N.TsTypeCastExpression): N.Node {
node.expression.typeAnnotation = node.typeAnnotation; node.expression.typeAnnotation = node.typeAnnotation;
return this.finishNodeAt( return this.finishNodeAt(
@ -1968,7 +1968,11 @@ export default (superClass: Class<Parser>): Class<Parser> =>
): $ReadOnlyArray<?N.Expression> { ): $ReadOnlyArray<?N.Expression> {
for (let i = 0; i < exprList.length; i++) { for (let i = 0; i < exprList.length; i++) {
const expr = exprList[i]; const expr = exprList[i];
if (expr && expr._exprListItem && expr.type === "TypeCastExpression") { if (
expr &&
expr._exprListItem &&
expr.type === "TsTypeCastExpression"
) {
this.raise(expr.start, "Did not expect a type annotation here."); this.raise(expr.start, "Did not expect a type annotation here.");
} }
} }

View File

@ -157,8 +157,8 @@ export type BodilessFunctionOrMethodBase = HasDecorators & {
// TODO: All not in spec // TODO: All not in spec
expression: boolean, expression: boolean,
typeParameters?: ?TypeParameterDeclaration, typeParameters?: ?TypeParameterDeclarationBase,
returnType?: ?TypeAnnotation, returnType?: ?TypeAnnotationBase,
}; };
export type BodilessFunctionBase = BodilessFunctionOrMethodBase & { export type BodilessFunctionBase = BodilessFunctionOrMethodBase & {
@ -524,7 +524,7 @@ export type ConditionalExpression = NodeBase & {
export type CallOrNewBase = NodeBase & { export type CallOrNewBase = NodeBase & {
callee: Expression | Super | Import, callee: Expression | Super | Import,
arguments: Array<Expression | SpreadElement>, // TODO: $ReadOnlyArray arguments: Array<Expression | SpreadElement>, // TODO: $ReadOnlyArray
typeParameters?: ?TypeParameterInstantiation, // TODO: Not in spec typeParameters?: ?TypeParameterInstantiationBase, // TODO: Not in spec
}; };
export type CallExpression = CallOrNewBase & { export type CallExpression = CallOrNewBase & {
@ -572,7 +572,7 @@ export type Accessibility = "public" | "protected" | "private";
export type PatternBase = HasDecorators & { export type PatternBase = HasDecorators & {
// TODO: All not in spec // TODO: All not in spec
// Flow/TypeScript only: // Flow/TypeScript only:
typeAnnotation?: ?TypeAnnotation, typeAnnotation?: ?TypeAnnotationBase,
}; };
export type AssignmentProperty = ObjectProperty & { export type AssignmentProperty = ObjectProperty & {
@ -611,8 +611,8 @@ export type ClassBase = HasDecorators & {
decorators: $ReadOnlyArray<Decorator>, decorators: $ReadOnlyArray<Decorator>,
// TODO: All not in spec // TODO: All not in spec
typeParameters?: ?TypeParameterDeclaration, typeParameters?: ?TypeParameterDeclarationBase,
superTypeParameters?: ?TypeParameterInstantiation, superTypeParameters?: ?TypeParameterInstantiationBase,
implements?: implements?:
| ?$ReadOnlyArray<TsExpressionWithTypeArguments> | ?$ReadOnlyArray<TsExpressionWithTypeArguments>
| $ReadOnlyArray<FlowClassImplements>, | $ReadOnlyArray<FlowClassImplements>,
@ -677,7 +677,7 @@ export type ClassProperty = ClassMemberBase & {
key: Expression, key: Expression,
value: ?Expression, // TODO: Not in spec that this is nullable. value: ?Expression, // TODO: Not in spec that this is nullable.
typeAnnotation?: ?TypeAnnotation, // TODO: Not in spec typeAnnotation?: ?TypeAnnotationBase, // TODO: Not in spec
variance?: ?FlowVariance, // TODO: Not in spec variance?: ?FlowVariance, // TODO: Not in spec
// TypeScript only: (TODO: Not in spec) // TypeScript only: (TODO: Not in spec)
@ -799,36 +799,81 @@ export type JSXElement = Node;
// Flow/TypeScript common (TODO: Not in spec) // Flow/TypeScript common (TODO: Not in spec)
export type TypeAnnotation = NodeBase & { export type TypeAnnotationBase = NodeBase & {
type: "TypeAnnotation", typeAnnotation: Node,
typeAnnotation: TsType | FlowTypeAnnotation,
}; };
export type TypeParameterDeclaration = NodeBase & { export type TypeAnnotation = NodeBase & {
type: "TypeAnnotation",
typeAnnotation: FlowTypeAnnotation,
};
export type TsTypeAnnotation = NodeBase & {
type: "TSTypeAnnotation",
typeAnnotation: TsType,
};
export type TypeParameterDeclarationBase = NodeBase & {
params: $ReadOnlyArray<TypeParameterBase>,
};
export type TypeParameterDeclaration = TypeParameterDeclarationBase & {
type: "TypeParameterDeclaration", type: "TypeParameterDeclaration",
params: $ReadOnlyArray<TypeParameter>, params: $ReadOnlyArray<TypeParameter>,
}; };
export type TypeParameter = NodeBase & { export type TsTypeParameterDeclaration = TypeParameterDeclarationBase & {
type: "TypeParameter", type: "TsTypeParameterDeclaration",
params: $ReadOnlyArray<TsTypeParameter>,
};
export type TypeParameterBase = NodeBase & {
name: string, name: string,
};
export type TypeParameter = TypeParameterBase & {
type: "TypeParameter",
};
export type TsTypeParameter = TypeParameterBase & {
type: "TSTypeParameter",
constraint?: TsType, constraint?: TsType,
default?: TsType, default?: TsType,
}; };
export type TypeParameterInstantiation = NodeBase & { export type TypeParameterInstantiationBase = NodeBase & {
params: $ReadOnlyArray<Node>,
};
export type TypeParameterInstantiation = TypeParameterInstantiationBase & {
type: "TypeParameterInstantiation", type: "TypeParameterInstantiation",
params: $ReadOnlyArray<TsType> | $ReadOnlyArray<FlowType>, params: $ReadOnlyArray<FlowType>,
};
export type TsTypeParameterInstantiation = TypeParameterInstantiationBase & {
type: "TSTypeParameterInstantiation",
params: $ReadOnlyArray<TsType>,
}; };
// Flow (TODO: Not in spec) // Flow (TODO: Not in spec)
export type TypeCastExpressionBase = NodeBase & {
expression: Expression,
typeAnnotation: TypeAnnotationBase,
};
export type TypeCastExpression = NodeBase & { export type TypeCastExpression = NodeBase & {
type: "TypeCastExpression", type: "TypeCastExpression",
expression: Expression, expression: Expression,
typeAnnotation: TypeAnnotation, typeAnnotation: TypeAnnotation,
}; };
export type TsTypeCastExpression = NodeBase & {
type: "TSTypeCastExpression",
expression: Expression,
typeAnnotation: TsTypeAnnotation,
};
export type FlowType = Node; export type FlowType = Node;
export type FlowPredicate = Node; export type FlowPredicate = Node;
export type FlowDeclare = Node; export type FlowDeclare = Node;
@ -934,11 +979,11 @@ export type TsSignatureDeclaration =
export type TsSignatureDeclarationOrIndexSignatureBase = NodeBase & { export type TsSignatureDeclarationOrIndexSignatureBase = NodeBase & {
// Not using TypeScript's "ParameterDeclaration" here, since it's inconsistent with regular functions. // Not using TypeScript's "ParameterDeclaration" here, since it's inconsistent with regular functions.
parameters: $ReadOnlyArray<Identifier | RestElement>, parameters: $ReadOnlyArray<Identifier | RestElement>,
typeAnnotation: ?TypeAnnotation, typeAnnotation: ?TsTypeAnnotation,
}; };
export type TsSignatureDeclarationBase = TsSignatureDeclarationOrIndexSignatureBase & { export type TsSignatureDeclarationBase = TsSignatureDeclarationOrIndexSignatureBase & {
typeParameters: ?TypeParameterDeclaration, typeParameters: ?TsTypeParameterDeclaration,
}; };
// ================ // ================
@ -971,7 +1016,7 @@ export type TsNamedTypeElementBase = NodeBase & {
export type TsPropertySignature = TsNamedTypeElementBase & { export type TsPropertySignature = TsNamedTypeElementBase & {
type: "TSPropertySignature", type: "TSPropertySignature",
readonly?: true, readonly?: true,
typeAnnotation?: TypeAnnotation, typeAnnotation?: TsTypeAnnotation,
initializer?: Expression, initializer?: Expression,
}; };
@ -1041,19 +1086,19 @@ export type TsFunctionType = TsTypeBase &
export type TsConstructorType = TsTypeBase & export type TsConstructorType = TsTypeBase &
TsSignatureDeclarationBase & { TsSignatureDeclarationBase & {
type: "TSConstructorType", type: "TSConstructorType",
typeAnnotation: TypeAnnotation, typeAnnotation: TsTypeAnnotation,
}; };
export type TsTypeReference = TsTypeBase & { export type TsTypeReference = TsTypeBase & {
type: "TSTypeReference", type: "TSTypeReference",
typeName: TsEntityName, typeName: TsEntityName,
typeParameters?: TypeParameterInstantiation, typeParameters?: TsTypeParameterInstantiation,
}; };
export type TsTypePredicate = TsTypeBase & { export type TsTypePredicate = TsTypeBase & {
type: "TSTypePredicate", type: "TSTypePredicate",
parameterName: Identifier | TsThisType, parameterName: Identifier | TsThisType,
typeAnnotation: TypeAnnotation, typeAnnotation: TsTypeAnnotation,
}; };
// `typeof` operator // `typeof` operator
@ -1111,7 +1156,7 @@ export type TsIndexedAccessType = TsTypeBase & {
export type TsMappedType = TsTypeBase & { export type TsMappedType = TsTypeBase & {
type: "TSMappedType", type: "TSMappedType",
readonly?: true, readonly?: true,
typeParameter: TypeParameter, typeParameter: TsTypeParameter,
optional?: true, optional?: true,
typeAnnotation: ?TsType, typeAnnotation: ?TsType,
}; };
@ -1128,7 +1173,7 @@ export type TsLiteralType = TsTypeBase & {
export type TsInterfaceDeclaration = DeclarationBase & { export type TsInterfaceDeclaration = DeclarationBase & {
type: "TSInterfaceDeclaration", type: "TSInterfaceDeclaration",
id: Identifier, id: Identifier,
typeParameters: ?TypeParameterDeclaration, typeParameters: ?TsTypeParameterDeclaration,
// TS uses "heritageClauses", but want this to resemble ClassBase. // TS uses "heritageClauses", but want this to resemble ClassBase.
extends?: $ReadOnlyArray<TsExpressionWithTypeArguments>, extends?: $ReadOnlyArray<TsExpressionWithTypeArguments>,
body: TSInterfaceBody, body: TSInterfaceBody,
@ -1142,13 +1187,13 @@ export type TSInterfaceBody = NodeBase & {
export type TsExpressionWithTypeArguments = TsTypeBase & { export type TsExpressionWithTypeArguments = TsTypeBase & {
type: "TSExpressionWithTypeArguments", type: "TSExpressionWithTypeArguments",
expression: TsEntityName, expression: TsEntityName,
typeParameters?: TypeParameterInstantiation, typeParameters?: TsTypeParameterInstantiation,
}; };
export type TsTypeAliasDeclaration = DeclarationBase & { export type TsTypeAliasDeclaration = DeclarationBase & {
type: "TSTypeAliasDeclaration", type: "TSTypeAliasDeclaration",
id: Identifier, id: Identifier,
typeParameters: ?TypeParameterDeclaration, typeParameters: ?TsTypeParameterDeclaration,
typeAnnotation: TsType, typeAnnotation: TsType,
}; };

View File

@ -57,7 +57,7 @@
} }
}, },
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 11, "start": 11,
"end": 19, "end": 19,
"loc": { "loc": {
@ -108,7 +108,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 2, "start": 2,
"end": 10, "end": 10,
"loc": { "loc": {
@ -161,4 +161,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -157,7 +157,7 @@
}, },
"arguments": [], "arguments": [],
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 16, "start": 16,
"end": 19, "end": 19,
"loc": { "loc": {
@ -232,4 +232,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -57,7 +57,7 @@
} }
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 6, "start": 6,
"end": 9, "end": 9,
"loc": { "loc": {
@ -72,7 +72,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 7, "start": 7,
"end": 8, "end": 8,
"loc": { "loc": {
@ -107,7 +107,7 @@
}, },
"name": "a", "name": "a",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 11, "start": 11,
"end": 14, "end": 14,
"loc": { "loc": {
@ -156,7 +156,7 @@
} }
], ],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 15, "start": 15,
"end": 18, "end": 18,
"loc": { "loc": {
@ -228,4 +228,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -57,7 +57,7 @@
} }
}, },
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 18, "start": 18,
"end": 23, "end": 23,
"loc": { "loc": {
@ -109,7 +109,7 @@
"name": "x", "name": "x",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 9, "start": 9,
"end": 17, "end": 17,
"loc": { "loc": {
@ -162,4 +162,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -92,7 +92,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 2, "start": 2,
"end": 10, "end": 10,
"loc": { "loc": {
@ -169,4 +169,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -57,7 +57,7 @@
} }
}, },
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 70, "start": 70,
"end": 73, "end": 73,
"loc": { "loc": {
@ -125,7 +125,7 @@
}, },
"name": "a", "name": "a",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 66, "start": 66,
"end": 69, "end": 69,
"loc": { "loc": {
@ -191,7 +191,7 @@
"name": "a" "name": "a"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 61, "start": 61,
"end": 64, "end": 64,
"loc": { "loc": {
@ -206,7 +206,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 62, "start": 62,
"end": 63, "end": 63,
"loc": { "loc": {
@ -266,4 +266,4 @@
} }
} }
] ]
} }

View File

@ -57,7 +57,7 @@
} }
}, },
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 9, "start": 9,
"end": 12, "end": 12,
"loc": { "loc": {
@ -125,7 +125,7 @@
}, },
"name": "a", "name": "a",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 8, "end": 8,
"loc": { "loc": {
@ -191,7 +191,7 @@
"name": "a" "name": "a"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 0, "start": 0,
"end": 3, "end": 3,
"loc": { "loc": {
@ -206,7 +206,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 1, "start": 1,
"end": 2, "end": 2,
"loc": { "loc": {
@ -228,4 +228,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -57,7 +57,7 @@
} }
}, },
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 12, "start": 12,
"end": 17, "end": 17,
"loc": { "loc": {
@ -109,7 +109,7 @@
"name": "x", "name": "x",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 3, "start": 3,
"end": 11, "end": 11,
"loc": { "loc": {
@ -162,4 +162,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -57,7 +57,7 @@
} }
}, },
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 8, "start": 8,
"end": 21, "end": 21,
"loc": { "loc": {
@ -102,7 +102,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 15, "start": 15,
"end": 21, "end": 21,
"loc": { "loc": {
@ -155,7 +155,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 2, "start": 2,
"end": 7, "end": 7,
"loc": { "loc": {
@ -207,4 +207,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -131,7 +131,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 27, "start": 27,
"end": 35, "end": 35,
"loc": { "loc": {
@ -178,7 +178,7 @@
}, },
"name": "y", "name": "y",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 38, "start": 38,
"end": 46, "end": 46,
"loc": { "loc": {
@ -266,7 +266,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 66, "start": 66,
"end": 74, "end": 74,
"loc": { "loc": {
@ -313,7 +313,7 @@
}, },
"name": "y", "name": "y",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 77, "start": 77,
"end": 85, "end": 85,
"loc": { "loc": {
@ -401,7 +401,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 105, "start": 105,
"end": 110, "end": 110,
"loc": { "loc": {
@ -448,7 +448,7 @@
}, },
"name": "y", "name": "y",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 113, "start": 113,
"end": 118, "end": 118,
"loc": { "loc": {
@ -503,4 +503,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -107,7 +107,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 26, "start": 26,
"end": 32, "end": 32,
"loc": { "loc": {
@ -139,7 +139,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 33, "start": 33,
"end": 38, "end": 38,
"loc": { "loc": {
@ -238,7 +238,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 52, "start": 52,
"end": 60, "end": 60,
"loc": { "loc": {
@ -349,7 +349,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 78, "start": 78,
"end": 84, "end": 84,
"loc": { "loc": {
@ -386,4 +386,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -91,7 +91,7 @@
"arguments": [] "arguments": []
}, },
"superTypeParameters": { "superTypeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 18, "start": 18,
"end": 21, "end": 21,
"loc": { "loc": {
@ -204,7 +204,7 @@
} }
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 36, "start": 36,
"end": 39, "end": 39,
"loc": { "loc": {
@ -355,7 +355,7 @@
"arguments": [] "arguments": []
}, },
"superTypeParameters": { "superTypeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 65, "start": 65,
"end": 68, "end": 68,
"loc": { "loc": {
@ -468,7 +468,7 @@
} }
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 83, "start": 83,
"end": 86, "end": 86,
"loc": { "loc": {
@ -543,4 +543,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -91,7 +91,7 @@
"arguments": [] "arguments": []
}, },
"superTypeParameters": { "superTypeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 18, "start": 18,
"end": 21, "end": 21,
"loc": { "loc": {
@ -240,7 +240,7 @@
"arguments": [] "arguments": []
}, },
"superTypeParameters": { "superTypeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 47, "start": 47,
"end": 50, "end": 50,
"loc": { "loc": {
@ -313,4 +313,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -58,7 +58,7 @@
}, },
"id": null, "id": null,
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 6, "start": 6,
"end": 9, "end": 9,
"loc": { "loc": {
@ -73,7 +73,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 7, "start": 7,
"end": 8, "end": 8,
"loc": { "loc": {
@ -159,7 +159,7 @@
"name": "C" "name": "C"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 23, "start": 23,
"end": 26, "end": 26,
"loc": { "loc": {
@ -174,7 +174,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 24, "start": 24,
"end": 25, "end": 25,
"loc": { "loc": {
@ -217,4 +217,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -122,7 +122,7 @@
} }
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 21, "start": 21,
"end": 24, "end": 24,
"loc": { "loc": {
@ -305,7 +305,7 @@
} }
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 53, "start": 53,
"end": 56, "end": 56,
"loc": { "loc": {
@ -380,4 +380,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -93,7 +93,7 @@
"arguments": [] "arguments": []
}, },
"superTypeParameters": { "superTypeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 19, "start": 19,
"end": 22, "end": 22,
"loc": { "loc": {
@ -206,7 +206,7 @@
} }
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 37, "start": 37,
"end": 40, "end": 40,
"loc": { "loc": {
@ -276,4 +276,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -93,7 +93,7 @@
"arguments": [] "arguments": []
}, },
"superTypeParameters": { "superTypeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 19, "start": 19,
"end": 22, "end": 22,
"loc": { "loc": {
@ -161,4 +161,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -60,7 +60,7 @@
"name": "C" "name": "C"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 7, "start": 7,
"end": 41, "end": 41,
"loc": { "loc": {
@ -75,7 +75,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 8, "start": 8,
"end": 40, "end": 40,
"loc": { "loc": {
@ -152,7 +152,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 30, "start": 30,
"end": 38, "end": 38,
"loc": { "loc": {
@ -208,4 +208,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -110,7 +110,7 @@
}, },
"kind": "method", "kind": "method",
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 25, "start": 25,
"end": 28, "end": 28,
"loc": { "loc": {
@ -125,7 +125,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 26, "start": 26,
"end": 27, "end": 27,
"loc": { "loc": {
@ -148,7 +148,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 30, "start": 30,
"end": 36, "end": 36,
"loc": { "loc": {
@ -185,4 +185,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -125,7 +125,7 @@
} }
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 22, "start": 22,
"end": 25, "end": 25,
"loc": { "loc": {
@ -195,4 +195,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -107,7 +107,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 18, "start": 18,
"end": 24, "end": 24,
"loc": { "loc": {
@ -139,7 +139,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 25, "start": 25,
"end": 30, "end": 30,
"loc": { "loc": {
@ -202,7 +202,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 49, "start": 49,
"end": 55, "end": 55,
"loc": { "loc": {
@ -234,7 +234,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 56, "start": 56,
"end": 61, "end": 61,
"loc": { "loc": {
@ -270,4 +270,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -115,7 +115,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 22, "start": 22,
"end": 28, "end": 28,
"loc": { "loc": {
@ -186,7 +186,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 49, "start": 49,
"end": 55, "end": 55,
"loc": { "loc": {
@ -305,7 +305,7 @@
}, },
"kind": "method", "kind": "method",
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 84, "start": 84,
"end": 87, "end": 87,
"loc": { "loc": {
@ -320,7 +320,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 85, "start": 85,
"end": 86, "end": 86,
"loc": { "loc": {
@ -343,7 +343,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 89, "start": 89,
"end": 95, "end": 95,
"loc": { "loc": {
@ -379,4 +379,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -116,7 +116,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 29, "start": 29,
"end": 35, "end": 35,
"loc": { "loc": {
@ -152,4 +152,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -148,7 +148,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 33, "start": 33,
"end": 39, "end": 39,
"loc": { "loc": {
@ -252,7 +252,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 65, "start": 65,
"end": 71, "end": 71,
"loc": { "loc": {
@ -288,4 +288,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -110,7 +110,7 @@
}, },
"kind": "method", "kind": "method",
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 15, "start": 15,
"end": 18, "end": 18,
"loc": { "loc": {
@ -125,7 +125,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 16, "start": 16,
"end": 17, "end": 17,
"loc": { "loc": {
@ -164,7 +164,7 @@
}, },
"name": "a", "name": "a",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 20, "start": 20,
"end": 23, "end": 23,
"loc": { "loc": {
@ -229,7 +229,7 @@
"name": "b", "name": "b",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 27, "start": 27,
"end": 30, "end": 30,
"loc": { "loc": {
@ -308,7 +308,7 @@
"name": "c" "name": "c"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 36, "start": 36,
"end": 41, "end": 41,
"loc": { "loc": {
@ -372,7 +372,7 @@
} }
], ],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 42, "start": 42,
"end": 45, "end": 45,
"loc": { "loc": {
@ -504,7 +504,7 @@
}, },
"kind": "method", "kind": "method",
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 70, "start": 70,
"end": 73, "end": 73,
"loc": { "loc": {
@ -519,7 +519,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 71, "start": 71,
"end": 72, "end": 72,
"loc": { "loc": {
@ -542,7 +542,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 75, "start": 75,
"end": 78, "end": 78,
"loc": { "loc": {
@ -612,4 +612,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -155,7 +155,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 26, "start": 26,
"end": 32, "end": 32,
"loc": { "loc": {
@ -191,4 +191,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -116,7 +116,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 18, "start": 18,
"end": 24, "end": 24,
"loc": { "loc": {
@ -169,4 +169,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -115,7 +115,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 17, "start": 17,
"end": 23, "end": 23,
"loc": { "loc": {
@ -168,4 +168,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -148,7 +148,7 @@
}, },
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 51, "start": 51,
"end": 59, "end": 59,
"loc": { "loc": {
@ -697,4 +697,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -180,7 +180,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 41, "start": 41,
"end": 49, "end": 49,
"loc": { "loc": {
@ -236,4 +236,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -179,7 +179,7 @@
}, },
"name": "pu", "name": "pu",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 64, "start": 64,
"end": 72, "end": 72,
"loc": { "loc": {
@ -277,7 +277,7 @@
"name": "pi", "name": "pi",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 116, "start": 116,
"end": 124, "end": 124,
"loc": { "loc": {
@ -477,7 +477,7 @@
"name": "y", "name": "y",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 239, "start": 239,
"end": 247, "end": 247,
"loc": { "loc": {
@ -572,4 +572,4 @@
} }
} }
] ]
} }

View File

@ -180,7 +180,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 30, "start": 30,
"end": 38, "end": 38,
"loc": { "loc": {
@ -245,7 +245,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 45, "start": 45,
"end": 53, "end": 53,
"loc": { "loc": {
@ -301,4 +301,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -142,7 +142,7 @@
"computed": false "computed": false
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 31, "start": 31,
"end": 39, "end": 39,
"loc": { "loc": {
@ -241,7 +241,7 @@
}, },
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 63, "start": 63,
"end": 71, "end": 71,
"loc": { "loc": {
@ -278,4 +278,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 7, "start": 7,
"end": 15, "end": 15,
"loc": { "loc": {
@ -112,4 +112,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 15, "start": 15,
"end": 23, "end": 23,
"loc": { "loc": {
@ -137,7 +137,7 @@
}, },
"name": "y", "name": "y",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 26, "start": 26,
"end": 34, "end": 34,
"loc": { "loc": {
@ -176,4 +176,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -184,7 +184,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 22, "start": 22,
"end": 48, "end": 48,
"loc": { "loc": {
@ -245,7 +245,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 27, "start": 27,
"end": 35, "end": 35,
"loc": { "loc": {
@ -308,7 +308,7 @@
"name": "y" "name": "y"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 38, "start": 38,
"end": 46, "end": 46,
"loc": { "loc": {
@ -351,4 +351,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -126,7 +126,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 28, "start": 28,
"end": 33, "end": 33,
"loc": { "loc": {
@ -165,4 +165,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -90,7 +90,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 22, "start": 22,
"end": 30, "end": 30,
"loc": { "loc": {
@ -179,7 +179,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 59, "start": 59,
"end": 65, "end": 65,
"loc": { "loc": {
@ -544,4 +544,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -63,7 +63,7 @@
"expression": false, "expression": false,
"async": false, "async": false,
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 10, "start": 10,
"end": 13, "end": 13,
"loc": { "loc": {
@ -78,7 +78,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 11, "start": 11,
"end": 12, "end": 12,
"loc": { "loc": {
@ -114,7 +114,7 @@
"name": "x", "name": "x",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 16, "start": 16,
"end": 19, "end": 19,
"loc": { "loc": {
@ -163,7 +163,7 @@
} }
], ],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 20, "start": 20,
"end": 23, "end": 23,
"loc": { "loc": {
@ -230,4 +230,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -93,7 +93,7 @@
"expression": false, "expression": false,
"async": false, "async": false,
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 18, "start": 18,
"end": 21, "end": 21,
"loc": { "loc": {
@ -108,7 +108,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 19, "start": 19,
"end": 20, "end": 20,
"loc": { "loc": {
@ -144,7 +144,7 @@
"name": "x", "name": "x",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 24, "start": 24,
"end": 27, "end": 27,
"loc": { "loc": {
@ -193,7 +193,7 @@
} }
], ],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 28, "start": 28,
"end": 31, "end": 31,
"loc": { "loc": {
@ -264,4 +264,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -64,7 +64,7 @@
"async": false, "async": false,
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 20, "start": 20,
"end": 26, "end": 26,
"loc": { "loc": {
@ -130,7 +130,7 @@
"expression": false, "expression": false,
"async": false, "async": false,
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 46, "start": 46,
"end": 49, "end": 49,
"loc": { "loc": {
@ -145,7 +145,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 47, "start": 47,
"end": 48, "end": 48,
"loc": { "loc": {
@ -164,7 +164,7 @@
}, },
"params": [], "params": [],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 51, "start": 51,
"end": 54, "end": 54,
"loc": { "loc": {
@ -215,4 +215,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -79,7 +79,7 @@
"name": "x", "name": "x",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 26, "start": 26,
"end": 34, "end": 34,
"loc": { "loc": {
@ -111,7 +111,7 @@
} }
], ],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 35, "start": 35,
"end": 41, "end": 41,
"loc": { "loc": {
@ -145,4 +145,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -96,7 +96,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 19, "start": 19,
"end": 27, "end": 27,
"loc": { "loc": {
@ -128,7 +128,7 @@
} }
], ],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 28, "start": 28,
"end": 36, "end": 36,
"loc": { "loc": {
@ -227,7 +227,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 57, "start": 57,
"end": 65, "end": 65,
"loc": { "loc": {
@ -259,7 +259,7 @@
} }
], ],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 66, "start": 66,
"end": 74, "end": 74,
"loc": { "loc": {
@ -293,4 +293,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -80,7 +80,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 12, "start": 12,
"end": 17, "end": 17,
"loc": { "loc": {
@ -112,7 +112,7 @@
} }
], ],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 18, "start": 18,
"end": 32, "end": 32,
"loc": { "loc": {
@ -157,7 +157,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 25, "start": 25,
"end": 32, "end": 32,
"loc": { "loc": {
@ -256,7 +256,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 47, "start": 47,
"end": 52, "end": 52,
"loc": { "loc": {
@ -288,7 +288,7 @@
} }
], ],
"returnType": { "returnType": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 53, "start": 53,
"end": 67, "end": 67,
"loc": { "loc": {
@ -333,7 +333,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 60, "start": 60,
"end": 67, "end": 67,
"loc": { "loc": {
@ -390,4 +390,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -106,7 +106,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 20, "start": 20,
"end": 28, "end": 28,
"loc": { "loc": {
@ -138,7 +138,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 29, "start": 29,
"end": 35, "end": 35,
"loc": { "loc": {
@ -174,4 +174,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -106,7 +106,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 24, "start": 24,
"end": 32, "end": 32,
"loc": { "loc": {
@ -138,7 +138,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 33, "start": 33,
"end": 39, "end": 39,
"loc": { "loc": {
@ -174,4 +174,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -124,7 +124,7 @@
} }
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 23, "start": 23,
"end": 26, "end": 26,
"loc": { "loc": {
@ -194,4 +194,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -60,7 +60,7 @@
"name": "I" "name": "I"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 11, "start": 11,
"end": 45, "end": 45,
"loc": { "loc": {
@ -75,7 +75,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 12, "start": 12,
"end": 44, "end": 44,
"loc": { "loc": {
@ -152,7 +152,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 34, "start": 34,
"end": 42, "end": 42,
"loc": { "loc": {
@ -207,4 +207,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -106,7 +106,7 @@
}, },
"name": "s", "name": "s",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 22, "start": 22,
"end": 28, "end": 28,
"loc": { "loc": {
@ -138,7 +138,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 29, "start": 29,
"end": 37, "end": 37,
"loc": { "loc": {
@ -174,4 +174,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -141,7 +141,7 @@
}, },
"parameters": [], "parameters": [],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 37, "start": 37,
"end": 43, "end": 43,
"loc": { "loc": {
@ -239,7 +239,7 @@
"optional": true, "optional": true,
"parameters": [], "parameters": [],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 69, "start": 69,
"end": 77, "end": 77,
"loc": { "loc": {
@ -275,4 +275,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -107,7 +107,7 @@
"name": "m" "name": "m"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 19, "start": 19,
"end": 53, "end": 53,
"loc": { "loc": {
@ -122,7 +122,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 20, "start": 20,
"end": 52, "end": 52,
"loc": { "loc": {
@ -199,7 +199,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 42, "start": 42,
"end": 50, "end": 50,
"loc": { "loc": {
@ -236,7 +236,7 @@
}, },
"parameters": [], "parameters": [],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 55, "start": 55,
"end": 58, "end": 58,
"loc": { "loc": {
@ -289,4 +289,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -109,7 +109,7 @@
"optional": true, "optional": true,
"parameters": [], "parameters": [],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 22, "start": 22,
"end": 28, "end": 28,
"loc": { "loc": {
@ -145,4 +145,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -159,7 +159,7 @@
"name": "x", "name": "x",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 31, "start": 31,
"end": 39, "end": 39,
"loc": { "loc": {
@ -221,7 +221,7 @@
"name": "y" "name": "y"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 45, "start": 45,
"end": 55, "end": 55,
"loc": { "loc": {
@ -268,7 +268,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 56, "start": 56,
"end": 62, "end": 62,
"loc": { "loc": {
@ -304,4 +304,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -108,7 +108,7 @@
}, },
"readonly": true, "readonly": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 28, "start": 28,
"end": 36, "end": 36,
"loc": { "loc": {
@ -144,4 +144,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -140,7 +140,7 @@
"name": "y" "name": "y"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 26, "start": 26,
"end": 34, "end": 34,
"loc": { "loc": {
@ -204,7 +204,7 @@
}, },
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 42, "start": 42,
"end": 50, "end": 50,
"loc": { "loc": {
@ -240,4 +240,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -140,7 +140,7 @@
"computed": false "computed": false
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 35, "start": 35,
"end": 43, "end": 43,
"loc": { "loc": {
@ -237,7 +237,7 @@
}, },
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 67, "start": 67,
"end": 75, "end": 75,
"loc": { "loc": {
@ -273,4 +273,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -107,7 +107,7 @@
"name": "public" "name": "public"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 21, "start": 21,
"end": 29, "end": 29,
"loc": { "loc": {
@ -143,4 +143,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -108,7 +108,7 @@
}, },
"parameters": [], "parameters": [],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 25, "start": 25,
"end": 31, "end": 31,
"loc": { "loc": {
@ -144,4 +144,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -107,7 +107,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 19, "start": 19,
"end": 27, "end": 27,
"loc": { "loc": {
@ -170,7 +170,7 @@
"name": "y" "name": "y"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 30, "start": 30,
"end": 38, "end": 38,
"loc": { "loc": {
@ -282,7 +282,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 59, "start": 59,
"end": 67, "end": 67,
"loc": { "loc": {
@ -345,7 +345,7 @@
"name": "y" "name": "y"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 70, "start": 70,
"end": 78, "end": 78,
"loc": { "loc": {
@ -457,7 +457,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 106, "start": 106,
"end": 114, "end": 114,
"loc": { "loc": {
@ -520,7 +520,7 @@
"name": "y" "name": "y"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 120, "start": 120,
"end": 128, "end": 128,
"loc": { "loc": {
@ -556,4 +556,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -120,7 +120,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 33, "start": 33,
"end": 41, "end": 41,
"loc": { "loc": {
@ -162,4 +162,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -166,7 +166,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 55, "start": 55,
"end": 63, "end": 63,
"loc": { "loc": {
@ -211,4 +211,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -170,7 +170,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 47, "start": 47,
"end": 55, "end": 55,
"loc": { "loc": {
@ -215,4 +215,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -78,7 +78,7 @@
"name": "D" "name": "D"
}, },
"superTypeParameters": { "superTypeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 116, "start": 116,
"end": 119, "end": 119,
"loc": { "loc": {
@ -247,4 +247,4 @@
} }
} }
] ]
} }

View File

@ -60,7 +60,7 @@
"name": "T" "name": "T"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 6, "start": 6,
"end": 40, "end": 40,
"loc": { "loc": {
@ -75,7 +75,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 7, "start": 7,
"end": 39, "end": 39,
"loc": { "loc": {
@ -152,7 +152,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 29, "start": 29,
"end": 37, "end": 37,
"loc": { "loc": {
@ -219,7 +219,7 @@
"name": "Array" "name": "Array"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 48, "start": 48,
"end": 51, "end": 51,
"loc": { "loc": {
@ -272,4 +272,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -60,7 +60,7 @@
"name": "T" "name": "T"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 6, "start": 6,
"end": 9, "end": 9,
"loc": { "loc": {
@ -75,7 +75,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 7, "start": 7,
"end": 8, "end": 8,
"loc": { "loc": {
@ -128,4 +128,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -75,7 +75,7 @@
}, },
"arguments": [], "arguments": [],
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 1, "start": 1,
"end": 4, "end": 4,
"loc": { "loc": {
@ -172,7 +172,7 @@
}, },
"arguments": [], "arguments": [],
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 9, "start": 9,
"end": 15, "end": 15,
"loc": { "loc": {
@ -257,4 +257,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
"name": "C" "name": "C"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 5, "start": 5,
"end": 8, "end": 8,
"loc": { "loc": {
@ -171,7 +171,7 @@
"name": "C" "name": "C"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 17, "start": 17,
"end": 23, "end": 23,
"loc": { "loc": {
@ -257,4 +257,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -63,7 +63,7 @@
"expression": false, "expression": false,
"async": false, "async": false,
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 10, "start": 10,
"end": 19, "end": 19,
"loc": { "loc": {
@ -78,7 +78,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 13, "start": 13,
"end": 14, "end": 14,
"loc": { "loc": {
@ -117,4 +117,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "arr", "name": "arr",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 7, "start": 7,
"end": 19, "end": 19,
"loc": { "loc": {
@ -142,4 +142,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "f", "name": "f",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 21, "end": 21,
"loc": { "loc": {
@ -102,7 +102,7 @@
} }
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterDeclaration", "type": "TSTypeParameterDeclaration",
"start": 7, "start": 7,
"end": 10, "end": 10,
"loc": { "loc": {
@ -117,7 +117,7 @@
}, },
"params": [ "params": [
{ {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 8, "start": 8,
"end": 9, "end": 9,
"loc": { "loc": {
@ -152,7 +152,7 @@
}, },
"name": "a", "name": "a",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 12, "start": 12,
"end": 15, "end": 15,
"loc": { "loc": {
@ -201,7 +201,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 17, "start": 17,
"end": 21, "end": 21,
"loc": { "loc": {
@ -258,4 +258,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 24, "end": 24,
"loc": { "loc": {
@ -119,7 +119,7 @@
"name": "Array" "name": "Array"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 12, "start": 12,
"end": 24, "end": 24,
"loc": { "loc": {
@ -149,7 +149,7 @@
}, },
"parameters": [], "parameters": [],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 16, "start": 16,
"end": 23, "end": 23,
"loc": { "loc": {
@ -192,4 +192,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "f", "name": "f",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 29, "end": 29,
"loc": { "loc": {
@ -119,7 +119,7 @@
}, },
"name": "this", "name": "this",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 12, "start": 12,
"end": 20, "end": 20,
"loc": { "loc": {
@ -151,7 +151,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 22, "start": 22,
"end": 29, "end": 29,
"loc": { "loc": {
@ -191,4 +191,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "f", "name": "f",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 54, "end": 54,
"loc": { "loc": {
@ -119,7 +119,7 @@
}, },
"name": "a", "name": "a",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 9, "start": 9,
"end": 17, "end": 17,
"loc": { "loc": {
@ -167,7 +167,7 @@
"name": "b", "name": "b",
"optional": true, "optional": true,
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 21, "start": 21,
"end": 29, "end": 29,
"loc": { "loc": {
@ -229,7 +229,7 @@
"name": "c" "name": "c"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 35, "start": 35,
"end": 45, "end": 45,
"loc": { "loc": {
@ -276,7 +276,7 @@
} }
], ],
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 47, "start": 47,
"end": 54, "end": 54,
"loc": { "loc": {
@ -316,4 +316,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 11, "end": 11,
"loc": { "loc": {
@ -176,4 +176,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "a", "name": "a",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 10, "end": 10,
"loc": { "loc": {
@ -155,7 +155,7 @@
}, },
"name": "b", "name": "b",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 17, "start": 17,
"end": 26, "end": 26,
"loc": { "loc": {
@ -236,7 +236,7 @@
}, },
"name": "ne", "name": "ne",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 34, "start": 34,
"end": 41, "end": 41,
"loc": { "loc": {
@ -317,7 +317,7 @@
}, },
"name": "nul", "name": "nul",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 50, "start": 50,
"end": 56, "end": 56,
"loc": { "loc": {
@ -398,7 +398,7 @@
}, },
"name": "num", "name": "num",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 65, "start": 65,
"end": 73, "end": 73,
"loc": { "loc": {
@ -479,7 +479,7 @@
}, },
"name": "o", "name": "o",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 80, "start": 80,
"end": 88, "end": 88,
"loc": { "loc": {
@ -560,7 +560,7 @@
}, },
"name": "st", "name": "st",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 96, "start": 96,
"end": 104, "end": 104,
"loc": { "loc": {
@ -641,7 +641,7 @@
}, },
"name": "sy", "name": "sy",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 112, "start": 112,
"end": 120, "end": 120,
"loc": { "loc": {
@ -722,7 +722,7 @@
}, },
"name": "u", "name": "u",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 127, "start": 127,
"end": 138, "end": 138,
"loc": { "loc": {
@ -803,7 +803,7 @@
}, },
"name": "v", "name": "v",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 145, "start": 145,
"end": 151, "end": 151,
"loc": { "loc": {
@ -841,4 +841,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 11, "end": 11,
"loc": { "loc": {
@ -171,7 +171,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 18, "start": 18,
"end": 25, "end": 25,
"loc": { "loc": {
@ -225,4 +225,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 9, "end": 9,
"loc": { "loc": {
@ -132,4 +132,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 8, "end": 8,
"loc": { "loc": {
@ -132,4 +132,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 12, "end": 12,
"loc": { "loc": {
@ -132,4 +132,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "map", "name": "map",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 7, "start": 7,
"end": 35, "end": 35,
"loc": { "loc": {
@ -102,7 +102,7 @@
} }
}, },
"typeParameter": { "typeParameter": {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 12, "start": 12,
"end": 23, "end": 23,
"loc": { "loc": {
@ -201,7 +201,7 @@
}, },
"name": "map", "name": "map",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 44, "start": 44,
"end": 82, "end": 82,
"loc": { "loc": {
@ -230,7 +230,7 @@
}, },
"readonly": true, "readonly": true,
"typeParameter": { "typeParameter": {
"type": "TypeParameter", "type": "TSTypeParameter",
"start": 58, "start": 58,
"end": 69, "end": 69,
"loc": { "loc": {
@ -287,4 +287,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 27, "end": 27,
"loc": { "loc": {
@ -119,7 +119,7 @@
"name": "Array" "name": "Array"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 12, "start": 12,
"end": 27, "end": 27,
"loc": { "loc": {
@ -165,7 +165,7 @@
"name": "Array" "name": "Array"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 18, "start": 18,
"end": 26, "end": 26,
"loc": { "loc": {
@ -210,4 +210,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 20, "end": 20,
"loc": { "loc": {
@ -119,7 +119,7 @@
"name": "Array" "name": "Array"
}, },
"typeParameters": { "typeParameters": {
"type": "TypeParameterInstantiation", "type": "TSTypeParameterInstantiation",
"start": 12, "start": 12,
"end": 20, "end": 20,
"loc": { "loc": {
@ -161,4 +161,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 8, "end": 8,
"loc": { "loc": {
@ -129,4 +129,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "obj", "name": "obj",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 7, "start": 7,
"end": 22, "end": 22,
"loc": { "loc": {
@ -135,7 +135,7 @@
"name": "x" "name": "x"
}, },
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 12, "start": 12,
"end": 20, "end": 20,
"loc": { "loc": {
@ -213,4 +213,4 @@
} }
} }
] ]
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 14, "end": 14,
"loc": { "loc": {
@ -145,4 +145,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "x", "name": "x",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 5, "start": 5,
"end": 17, "end": 17,
"loc": { "loc": {
@ -161,4 +161,4 @@
], ],
"directives": [] "directives": []
} }
} }

View File

@ -74,7 +74,7 @@
}, },
"name": "union", "name": "union",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 9, "start": 9,
"end": 36, "end": 36,
"loc": { "loc": {
@ -202,7 +202,7 @@
}, },
"name": "intersection", "name": "intersection",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 54, "start": 54,
"end": 71, "end": 71,
"loc": { "loc": {
@ -315,7 +315,7 @@
}, },
"name": "precedence1", "name": "precedence1",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 88, "start": 88,
"end": 115, "end": 115,
"loc": { "loc": {
@ -460,7 +460,7 @@
}, },
"name": "precedence2", "name": "precedence2",
"typeAnnotation": { "typeAnnotation": {
"type": "TypeAnnotation", "type": "TSTypeAnnotation",
"start": 132, "start": 132,
"end": 159, "end": 159,
"loc": { "loc": {
@ -562,4 +562,4 @@
], ],
"directives": [] "directives": []
} }
} }