MCPcopy Index your code
hub / github.com/nodejs/node / parseNonArrayType

Function parseNonArrayType

test/fixtures/snapshot/typescript.js:33948–34016  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

33946 return token() === 8 /* SyntaxKind.NumericLiteral */ || token() === 9 /* SyntaxKind.BigIntLiteral */;
33947 }
33948 function parseNonArrayType() {
33949 switch (token()) {
33950 case 130 /* SyntaxKind.AnyKeyword */:
33951 case 155 /* SyntaxKind.UnknownKeyword */:
33952 case 150 /* SyntaxKind.StringKeyword */:
33953 case 147 /* SyntaxKind.NumberKeyword */:
33954 case 158 /* SyntaxKind.BigIntKeyword */:
33955 case 151 /* SyntaxKind.SymbolKeyword */:
33956 case 133 /* SyntaxKind.BooleanKeyword */:
33957 case 153 /* SyntaxKind.UndefinedKeyword */:
33958 case 143 /* SyntaxKind.NeverKeyword */:
33959 case 148 /* SyntaxKind.ObjectKeyword */:
33960 // If these are followed by a dot, then parse these out as a dotted type reference instead.
33961 return tryParse(parseKeywordAndNoDot) || parseTypeReference();
33962 case 66 /* SyntaxKind.AsteriskEqualsToken */:
33963 // If there is '*=', treat it as * followed by postfix =
33964 scanner.reScanAsteriskEqualsToken();
33965 // falls through
33966 case 41 /* SyntaxKind.AsteriskToken */:
33967 return parseJSDocAllType();
33968 case 60 /* SyntaxKind.QuestionQuestionToken */:
33969 // If there is '??', treat it as prefix-'?' in JSDoc type.
33970 scanner.reScanQuestionToken();
33971 // falls through
33972 case 57 /* SyntaxKind.QuestionToken */:
33973 return parseJSDocUnknownOrNullableType();
33974 case 98 /* SyntaxKind.FunctionKeyword */:
33975 return parseJSDocFunctionType();
33976 case 53 /* SyntaxKind.ExclamationToken */:
33977 return parseJSDocNonNullableType();
33978 case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */:
33979 case 10 /* SyntaxKind.StringLiteral */:
33980 case 8 /* SyntaxKind.NumericLiteral */:
33981 case 9 /* SyntaxKind.BigIntLiteral */:
33982 case 110 /* SyntaxKind.TrueKeyword */:
33983 case 95 /* SyntaxKind.FalseKeyword */:
33984 case 104 /* SyntaxKind.NullKeyword */:
33985 return parseLiteralTypeNode();
33986 case 40 /* SyntaxKind.MinusToken */:
33987 return lookAhead(nextTokenIsNumericOrBigIntLiteral) ? parseLiteralTypeNode(/*negative*/ true) : parseTypeReference();
33988 case 114 /* SyntaxKind.VoidKeyword */:
33989 return parseTokenNode();
33990 case 108 /* SyntaxKind.ThisKeyword */: {
33991 var thisKeyword = parseThisTypeNode();
33992 if (token() === 139 /* SyntaxKind.IsKeyword */ && !scanner.hasPrecedingLineBreak()) {
33993 return parseThisTypePredicate(thisKeyword);
33994 }
33995 else {
33996 return thisKeyword;
33997 }
33998 }
33999 case 112 /* SyntaxKind.TypeOfKeyword */:
34000 return lookAhead(isStartOfTypeOfImportType) ? parseImportType() : parseTypeQuery();
34001 case 18 /* SyntaxKind.OpenBraceToken */:
34002 return lookAhead(isStartOfMappedType) ? parseMappedType() : parseTypeLiteral();
34003 case 22 /* SyntaxKind.OpenBracketToken */:
34004 return parseTupleType();
34005 case 20 /* SyntaxKind.OpenParenToken */:

Callers 2

parsePostfixTypeOrHigherFunction · 0.85

Calls 15

tryParseFunction · 0.85
parseTypeReferenceFunction · 0.85
parseJSDocAllTypeFunction · 0.85
parseJSDocFunctionTypeFunction · 0.85
parseLiteralTypeNodeFunction · 0.85
lookAheadFunction · 0.85
parseTokenNodeFunction · 0.85
parseThisTypeNodeFunction · 0.85
parseThisTypePredicateFunction · 0.85
parseImportTypeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…