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

Function isStartOfType

test/fixtures/snapshot/typescript.js:34017–34067  ·  view source on GitHub ↗
(inStartOfParameter)

Source from the content-addressed store, hash-verified

34015 }
34016 }
34017 function isStartOfType(inStartOfParameter) {
34018 switch (token()) {
34019 case 130 /* SyntaxKind.AnyKeyword */:
34020 case 155 /* SyntaxKind.UnknownKeyword */:
34021 case 150 /* SyntaxKind.StringKeyword */:
34022 case 147 /* SyntaxKind.NumberKeyword */:
34023 case 158 /* SyntaxKind.BigIntKeyword */:
34024 case 133 /* SyntaxKind.BooleanKeyword */:
34025 case 145 /* SyntaxKind.ReadonlyKeyword */:
34026 case 151 /* SyntaxKind.SymbolKeyword */:
34027 case 154 /* SyntaxKind.UniqueKeyword */:
34028 case 114 /* SyntaxKind.VoidKeyword */:
34029 case 153 /* SyntaxKind.UndefinedKeyword */:
34030 case 104 /* SyntaxKind.NullKeyword */:
34031 case 108 /* SyntaxKind.ThisKeyword */:
34032 case 112 /* SyntaxKind.TypeOfKeyword */:
34033 case 143 /* SyntaxKind.NeverKeyword */:
34034 case 18 /* SyntaxKind.OpenBraceToken */:
34035 case 22 /* SyntaxKind.OpenBracketToken */:
34036 case 29 /* SyntaxKind.LessThanToken */:
34037 case 51 /* SyntaxKind.BarToken */:
34038 case 50 /* SyntaxKind.AmpersandToken */:
34039 case 103 /* SyntaxKind.NewKeyword */:
34040 case 10 /* SyntaxKind.StringLiteral */:
34041 case 8 /* SyntaxKind.NumericLiteral */:
34042 case 9 /* SyntaxKind.BigIntLiteral */:
34043 case 110 /* SyntaxKind.TrueKeyword */:
34044 case 95 /* SyntaxKind.FalseKeyword */:
34045 case 148 /* SyntaxKind.ObjectKeyword */:
34046 case 41 /* SyntaxKind.AsteriskToken */:
34047 case 57 /* SyntaxKind.QuestionToken */:
34048 case 53 /* SyntaxKind.ExclamationToken */:
34049 case 25 /* SyntaxKind.DotDotDotToken */:
34050 case 137 /* SyntaxKind.InferKeyword */:
34051 case 100 /* SyntaxKind.ImportKeyword */:
34052 case 128 /* SyntaxKind.AssertsKeyword */:
34053 case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */:
34054 case 15 /* SyntaxKind.TemplateHead */:
34055 return true;
34056 case 98 /* SyntaxKind.FunctionKeyword */:
34057 return !inStartOfParameter;
34058 case 40 /* SyntaxKind.MinusToken */:
34059 return !inStartOfParameter && lookAhead(nextTokenIsNumericOrBigIntLiteral);
34060 case 20 /* SyntaxKind.OpenParenToken */:
34061 // Only consider '(' the start of a type if followed by ')', '...', an identifier, a modifier,
34062 // or something that starts a type. We don't want to consider things like '(1)' a type.
34063 return !inStartOfParameter && lookAhead(isStartOfParenthesizedOrFunctionType);
34064 default:
34065 return isIdentifier();
34066 }
34067 }
34068 function isStartOfParenthesizedOrFunctionType() {
34069 nextToken();
34070 return token() === 21 /* SyntaxKind.CloseParenToken */ || isStartOfParameter(/*isJSDocParameter*/ false) || isStartOfType();

Callers 6

isListElementFunction · 0.85
nextTokenIsStartOfTypeFunction · 0.85
parseTypeParameterFunction · 0.85
isStartOfParameterFunction · 0.85
parsePostfixTypeOrHigherFunction · 0.85

Calls 3

lookAheadFunction · 0.85
tokenFunction · 0.70
isIdentifierFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…