@@ -4727,23 +4727,6 @@ namespace ts {
47274727 return links.resolvedType;
47284728 }
47294729
4730- function getTypeFromJSDocFunctionType(node: JSDocFunctionType): Type {
4731- Debug.assert(!!node.symbol);
4732- const links = getNodeLinks(node);
4733- if (!links.resolvedType) {
4734- links.resolvedType = createObjectType(TypeFlags.Anonymous, node.symbol);
4735- }
4736- return links.resolvedType;
4737- }
4738-
4739- function getTypeFromJSDocRecordType(node: JSDocRecordType): Type {
4740- const links = getNodeLinks(node);
4741- if (!links.resolvedType) {
4742- links.resolvedType = createObjectType(TypeFlags.Anonymous, node.symbol);
4743- }
4744- return links.resolvedType;
4745- }
4746-
47474730 function getTypeFromJSDocVariadicType(node: JSDocVariadicType): Type {
47484731 const links = getNodeLinks(node);
47494732 if (!links.resolvedType) {
@@ -4753,27 +4736,6 @@ namespace ts {
47534736 return links.resolvedType;
47544737 }
47554738
4756- function getTypeFromJSDocTypeReference(node: JSDocTypeReference): Type {
4757- return getTypeFromTypeReference(node);
4758- }
4759-
4760- function getTypeFromJSDocArrayType(node: JSDocArrayType): Type {
4761- const links = getNodeLinks(node);
4762- if (!links.resolvedType) {
4763- links.resolvedType = createArrayType(getTypeFromTypeNode(node.elementType));
4764- }
4765- return links.resolvedType;
4766- }
4767-
4768- function getTypeFromJSDocUnionType(node: JSDocUnionType): Type {
4769- const links = getNodeLinks(node);
4770- if (!links.resolvedType) {
4771- const types = map(node.types, getTypeFromTypeNode);
4772- links.resolvedType = getUnionType(types, /*noSubtypeReduction*/ true);
4773- }
4774- return links.resolvedType;
4775- }
4776-
47774739 function getTypeFromJSDocTupleType(node: JSDocTupleType): Type {
47784740 const links = getNodeLinks(node);
47794741 if (!links.resolvedType) {
@@ -4826,6 +4788,8 @@ namespace ts {
48264788 function getTypeFromTypeNode(node: TypeNode): Type {
48274789 switch (node.kind) {
48284790 case SyntaxKind.AnyKeyword:
4791+ case SyntaxKind.JSDocAllType:
4792+ case SyntaxKind.JSDocUnknownType:
48294793 return anyType;
48304794 case SyntaxKind.StringKeyword:
48314795 return stringType;
@@ -4842,6 +4806,7 @@ namespace ts {
48424806 case SyntaxKind.StringLiteralType:
48434807 return getTypeFromStringLiteralTypeNode(<StringLiteralTypeNode>node);
48444808 case SyntaxKind.TypeReference:
4809+ case SyntaxKind.JSDocTypeReference:
48454810 return getTypeFromTypeReference(<TypeReferenceNode>node);
48464811 case SyntaxKind.TypePredicate:
48474812 return getTypeFromPredicateTypeNode(<TypePredicateNode>node);
@@ -4850,53 +4815,38 @@ namespace ts {
48504815 case SyntaxKind.TypeQuery:
48514816 return getTypeFromTypeQueryNode(<TypeQueryNode>node);
48524817 case SyntaxKind.ArrayType:
4818+ case SyntaxKind.JSDocArrayType:
48534819 return getTypeFromArrayTypeNode(<ArrayTypeNode>node);
48544820 case SyntaxKind.TupleType:
48554821 return getTypeFromTupleTypeNode(<TupleTypeNode>node);
48564822 case SyntaxKind.UnionType:
4823+ case SyntaxKind.JSDocUnionType:
48574824 return getTypeFromUnionTypeNode(<UnionTypeNode>node);
48584825 case SyntaxKind.IntersectionType:
48594826 return getTypeFromIntersectionTypeNode(<IntersectionTypeNode>node);
48604827 case SyntaxKind.ParenthesizedType:
4861- return getTypeFromTypeNode((<ParenthesizedTypeNode>node).type);
4828+ case SyntaxKind.JSDocNullableType:
4829+ case SyntaxKind.JSDocNonNullableType:
4830+ case SyntaxKind.JSDocConstructorType:
4831+ case SyntaxKind.JSDocThisType:
4832+ case SyntaxKind.JSDocOptionalType:
4833+ return getTypeFromTypeNode((<ParenthesizedTypeNode | JSDocTypeReferencingNode>node).type);
48624834 case SyntaxKind.FunctionType:
48634835 case SyntaxKind.ConstructorType:
48644836 case SyntaxKind.TypeLiteral:
4837+ case SyntaxKind.JSDocFunctionType:
4838+ case SyntaxKind.JSDocRecordType:
48654839 return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);
48664840 // This function assumes that an identifier or qualified name is a type expression
48674841 // Callers should first ensure this by calling isTypeNode
48684842 case SyntaxKind.Identifier:
48694843 case SyntaxKind.QualifiedName:
48704844 const symbol = getSymbolAtLocation(node);
48714845 return symbol && getDeclaredTypeOfSymbol(symbol);
4872- case SyntaxKind.JSDocAllType:
4873- return anyType;
4874- case SyntaxKind.JSDocUnknownType:
4875- return unknownType;
4876- case SyntaxKind.JSDocArrayType:
4877- return getTypeFromJSDocArrayType(<JSDocArrayType>node);
48784846 case SyntaxKind.JSDocTupleType:
48794847 return getTypeFromJSDocTupleType(<JSDocTupleType>node);
4880- case SyntaxKind.JSDocUnionType:
4881- return getTypeFromJSDocUnionType(<JSDocUnionType>node);
4882- case SyntaxKind.JSDocNullableType:
4883- return getTypeFromTypeNode((<JSDocNullableType>node).type);
4884- case SyntaxKind.JSDocNonNullableType:
4885- return getTypeFromTypeNode((<JSDocNonNullableType>node).type);
4886- case SyntaxKind.JSDocTypeReference:
4887- return getTypeFromJSDocTypeReference(<JSDocTypeReference>node);
4888- case SyntaxKind.JSDocOptionalType:
4889- return getTypeFromTypeNode((<JSDocOptionalType>node).type);
4890- case SyntaxKind.JSDocFunctionType:
4891- return getTypeFromJSDocFunctionType(<JSDocFunctionType>node);
48924848 case SyntaxKind.JSDocVariadicType:
48934849 return getTypeFromJSDocVariadicType(<JSDocVariadicType>node);
4894- case SyntaxKind.JSDocConstructorType:
4895- return getTypeFromTypeNode((<JSDocConstructorType>node).type);
4896- case SyntaxKind.JSDocRecordType:
4897- return getTypeFromJSDocRecordType(<JSDocRecordType>node);
4898- case SyntaxKind.JSDocThisType:
4899- return getTypeFromTypeNode((<JSDocThisType>node).type);
49004850 default:
49014851 return unknownType;
49024852 }
0 commit comments