793 references to CurrentToken
Microsoft.CodeAnalysis.CSharp (793)
Parser\DirectiveParser.cs (28)
50
SyntaxKind contextualKind = this.
CurrentToken
.ContextualKind;
89
result = (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken) ?
377
switch (this.
CurrentToken
.Kind)
398
if (this.
CurrentToken
.Kind == SyntaxKind.StringLiteralToken &&
399
(line.IsMissing || line.GetTrailingTriviaWidth() > 0 || this.
CurrentToken
.GetLeadingTriviaWidth() > 0)) //require separation between line number and file name
414
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.OpenParenToken);
433
var characterOffset = (
CurrentToken
.Kind == SyntaxKind.NumericLiteralToken) ?
546
SyntaxToken setting = this.
CurrentToken
.Kind switch
554
SyntaxToken target = this.
CurrentToken
.Kind switch
575
if (this.
CurrentToken
.ContextualKind == SyntaxKind.WarningKeyword)
579
if (this.
CurrentToken
.Kind == SyntaxKind.DisableKeyword || this.
CurrentToken
.Kind == SyntaxKind.RestoreKeyword)
584
while (this.
CurrentToken
.Kind != SyntaxKind.EndOfDirectiveToken)
589
if (this.
CurrentToken
.Kind == SyntaxKind.NumericLiteralToken)
601
else if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
622
if (this.
CurrentToken
.Kind != SyntaxKind.CommaToken)
640
else if (this.
CurrentToken
.Kind == SyntaxKind.ChecksumKeyword)
729
if (this.
CurrentToken
.Kind != SyntaxKind.EndOfDirectiveToken &&
730
this.
CurrentToken
.Kind != SyntaxKind.EndOfFileToken)
749
while (this.
CurrentToken
.Kind != SyntaxKind.EndOfDirectiveToken &&
750
this.
CurrentToken
.Kind != SyntaxKind.EndOfFileToken)
757
SyntaxToken endOfDirective = this.
CurrentToken
.Kind == SyntaxKind.EndOfDirectiveToken
778
while (this.
CurrentToken
.Kind == SyntaxKind.BarBarToken)
791
while (this.
CurrentToken
.Kind == SyntaxKind.AmpersandAmpersandToken)
804
while (this.
CurrentToken
.Kind == SyntaxKind.EqualsEqualsToken || this.
CurrentToken
.Kind == SyntaxKind.ExclamationEqualsToken)
816
if (this.
CurrentToken
.Kind == SyntaxKind.ExclamationToken)
827
var k = this.
CurrentToken
.Kind;
Parser\DocumentationCommentParser.cs (90)
81
if (this.
CurrentToken
.Kind != SyntaxKind.EndOfDocumentationCommentToken)
101
bool endTag = this.
CurrentToken
.Kind == SyntaxKind.LessThanSlashToken;
108
while (this.
CurrentToken
.Kind != SyntaxKind.EndOfDocumentationCommentToken)
147
switch (this.
CurrentToken
.Kind)
171
switch (this.
CurrentToken
.Kind)
190
while (this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralToken
191
|| this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralNewLineToken
192
|| this.
CurrentToken
.Kind == SyntaxKind.XmlEntityLiteralToken)
218
if (this.
CurrentToken
.Kind == SyntaxKind.GreaterThanToken)
258
if (this.
CurrentToken
.Kind != SyntaxKind.GreaterThanToken)
261
p => p.
CurrentToken
.Kind != SyntaxKind.GreaterThanToken,
328
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
344
p => p.
CurrentToken
.Kind != SyntaxKind.IdentifierName,
347
p => p.
CurrentToken
.Kind == SyntaxKind.GreaterThanToken
348
|| p.
CurrentToken
.Kind == SyntaxKind.SlashGreaterThanToken
349
|| p.
CurrentToken
.Kind == SyntaxKind.LessThanToken
350
|| p.
CurrentToken
.Kind == SyntaxKind.LessThanSlashToken
351
|| p.
CurrentToken
.Kind == SyntaxKind.EndOfDocumentationCommentToken
352
|| p.
CurrentToken
.Kind == SyntaxKind.EndOfFileToken,
452
switch (this.
CurrentToken
.Kind)
525
SyntaxToken openQuote = EatToken(this.
CurrentToken
.Kind == SyntaxKind.SingleQuoteToken
532
SyntaxToken current = this.
CurrentToken
;
539
current = this.
CurrentToken
;
606
while (this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralToken
607
|| this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralNewLineToken
608
|| this.
CurrentToken
.Kind == SyntaxKind.XmlEntityLiteralToken
609
|| this.
CurrentToken
.Kind == SyntaxKind.LessThanToken)
631
if (IsNonAsciiQuotationMark(this.
CurrentToken
))
636
var quoteKind = this.
CurrentToken
.Kind == SyntaxKind.SingleQuoteToken
650
if (IsNonAsciiQuotationMark(this.
CurrentToken
))
685
if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken)
725
while (this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralToken
726
|| this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralNewLineToken
727
|| this.
CurrentToken
.Kind == SyntaxKind.MinusMinusToken)
752
while (this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralToken
753
|| this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralNewLineToken)
774
while (this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralToken
775
|| this.
CurrentToken
.Kind == SyntaxKind.XmlTextLiteralNewLineToken)
900
else if (type.Kind != SyntaxKind.QualifiedName && this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
940
switch (
CurrentToken
.Kind)
949
case SyntaxKind.IdentifierToken when
CurrentToken
.ContextualKind == SyntaxKind.ExtensionKeyword:
973
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.ThisKeyword);
987
Debug.Assert(
CurrentToken
.ContextualKind == SyntaxKind.ExtensionKeyword);
990
TypeArgumentListSyntax? typeArguments = (
CurrentToken
.Kind == SyntaxKind.LessThanToken) ? ParseTypeArguments(typeArgumentsMustBeIdentifiers: true) : null;
991
CrefParameterListSyntax? parameters = (
CurrentToken
.Kind == SyntaxKind.OpenParenToken) ? ParseCrefParameterList() : null;
993
if (parameters is null ||
CurrentToken
.Kind != SyntaxKind.DotToken)
1018
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.OperatorKeyword);
1024
if (SyntaxFacts.IsAnyOverloadableOperator(
CurrentToken
.Kind))
1035
if (SyntaxFacts.IsUnaryOperatorDeclarationToken(
CurrentToken
.Kind) || SyntaxFacts.IsBinaryExpressionOperatorToken(
CurrentToken
.Kind))
1048
if (operatorToken.Kind == SyntaxKind.GreaterThanToken && LanguageParser.NoTriviaBetween(operatorToken,
CurrentToken
))
1050
if (
CurrentToken
.Kind == SyntaxKind.GreaterThanToken)
1054
if (LanguageParser.NoTriviaBetween(operatorToken2,
CurrentToken
) &&
1055
CurrentToken
.Kind is (SyntaxKind.GreaterThanToken or SyntaxKind.GreaterThanEqualsToken))
1091
else if (
CurrentToken
.Kind == SyntaxKind.EqualsToken)
1101
else if (
CurrentToken
.Kind == SyntaxKind.GreaterThanEqualsToken)
1159
if (LanguageParser.NoTriviaBetween(operatorToken,
CurrentToken
) &&
CurrentToken
.Kind == SyntaxKind.EqualsToken)
1181
(isConversion || SyntaxFacts.IsAnyOverloadableOperator(
CurrentToken
.Kind)))
1190
if (
CurrentToken
.Kind == SyntaxKind.UncheckedKeyword)
1207
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.ExplicitKeyword ||
1208
CurrentToken
.Kind == SyntaxKind.ImplicitKeyword);
1245
if (
CurrentToken
.Kind != openKind)
1255
while (
CurrentToken
.Kind == SyntaxKind.CommaToken || IsPossibleCrefParameter())
1259
if (
CurrentToken
.Kind != closeKind)
1270
Debug.Assert(
CurrentToken
.Kind != SyntaxKind.CommaToken);
1295
SyntaxKind kind = this.
CurrentToken
.Kind;
1317
switch (
CurrentToken
.Kind)
1327
if (
CurrentToken
.Kind == SyntaxKind.ReadOnlyKeyword && refKindOpt is not null)
1354
if (
CurrentToken
.Kind != SyntaxKind.LessThanToken)
1364
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.LessThanToken);
1382
var currentKind =
CurrentToken
.Kind;
1384
SyntaxFacts.IsPredefinedType(
CurrentToken
.Kind))
1444
if (SyntaxFacts.IsPredefinedType(
CurrentToken
.Kind))
1453
else if (
CurrentToken
.Kind == SyntaxKind.IdentifierToken && PeekToken(1).Kind == SyntaxKind.ColonColonToken)
1473
if (checkForMember && (leftName.IsMissing ||
CurrentToken
.Kind != SyntaxKind.DotToken))
1485
while (
CurrentToken
.Kind == SyntaxKind.DotToken)
1494
if (checkForMember && (rightName.IsMissing ||
CurrentToken
.Kind != SyntaxKind.DotToken))
1516
if (
CurrentToken
.Kind == SyntaxKind.QuestionToken)
1521
while (
CurrentToken
.Kind == SyntaxKind.AsteriskToken)
1526
if (
CurrentToken
.Kind == SyntaxKind.OpenBracketToken)
1532
while (
CurrentToken
.Kind == SyntaxKind.OpenBracketToken)
1538
while (this.
CurrentToken
.Kind != SyntaxKind.CloseBracketToken)
1540
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
1590
switch (
CurrentToken
.Kind)
1602
return
CurrentToken
.Text == SyntaxFacts.GetText(SyntaxKind.LessThanToken) ||
1603
IsNonAsciiQuotationMark(
CurrentToken
);
1658
switch (
CurrentToken
.Kind)
1670
return
CurrentToken
.Text == SyntaxFacts.GetText(SyntaxKind.LessThanToken) ||
1671
IsNonAsciiQuotationMark(
CurrentToken
);
Parser\LanguageParser_InterpolatedString.cs (3)
112
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.InterpolatedStringToken);
537
if (this.
CurrentToken
.Kind != SyntaxKind.CommaToken)
550
var leading = this.
CurrentToken
.GetLeadingTrivia();
Parser\LanguageParser_Patterns.cs (34)
61
while (this.
CurrentToken
.ContextualKind == SyntaxKind.OrKeyword)
78
var tk =
CurrentToken
.Kind;
84
if (tk == SyntaxKind.IdentifierToken && this.
CurrentToken
.ContextualKind != SyntaxKind.UnderscoreToken &&
85
(this.
CurrentToken
.ContextualKind != SyntaxKind.NameOfKeyword || this.PeekToken(1).Kind != SyntaxKind.OpenParenToken))
107
while (this.
CurrentToken
.ContextualKind == SyntaxKind.AndKeyword)
121
switch (this.
CurrentToken
.Kind)
143
switch (this.
CurrentToken
.Kind)
160
if (this.
CurrentToken
.ContextualKind == SyntaxKind.NotKeyword)
166
else if (this.
CurrentToken
.Kind == SyntaxKind.EqualsEqualsToken)
172
else if (this.
CurrentToken
.Kind == SyntaxKind.ExclamationEqualsToken)
190
var tk = this.
CurrentToken
.Kind;
202
if (
CurrentToken
.ContextualKind == SyntaxKind.UnderscoreToken)
207
switch (
CurrentToken
.Kind)
259
switch (this.
CurrentToken
.Kind)
291
(this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken || this.IsValidPatternDesignation(inSwitchArmPattern)))
300
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken && (type != null || !looksLikeCast()))
383
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken)
409
if (
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
411
switch (
CurrentToken
.ContextualKind)
502
if (this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken)
534
if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken && ConvertPatternToExpressionIfPossible(pattern, permitTypeArguments: true) is ExpressionSyntax expr)
555
this.
CurrentToken
.Kind is
568
if (@this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken or SyntaxKind.CloseBraceToken or SyntaxKind.CloseBracketToken or SyntaxKind.SemicolonToken)
575
if ((@this._termState & TerminatorState.IsExpressionOrPatternInCaseLabelOfSwitchStatement) == TerminatorState.IsExpressionOrPatternInCaseLabelOfSwitchStatement && @this.
CurrentToken
.Kind is SyntaxKind.ColonToken)
584
if ((@this._termState & TerminatorState.IsPatternInSwitchExpressionArm) == TerminatorState.IsPatternInSwitchExpressionArm && @this.
CurrentToken
.Kind is SyntaxKind.EqualsGreaterThanToken or SyntaxKind.ColonToken)
588
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleSubpatternElement(),
589
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind || p.
CurrentToken
.Kind == SyntaxKind.SemicolonToken,
609
while (this.
CurrentToken
.Kind != SyntaxKind.CloseBraceToken)
615
var errantCase = this.
CurrentToken
.Kind == SyntaxKind.CaseKeyword
634
this.
CurrentToken
.Kind == SyntaxKind.ColonToken
640
if (errantCase is null && switchExpressionCase.FullWidth == 0 && this.
CurrentToken
.Kind != SyntaxKind.CommaToken)
647
if (this.
CurrentToken
.Kind != SyntaxKind.CloseBraceToken)
649
var commaToken = this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken
Parser\LanguageParser.cs (626)
96
if (this.
CurrentToken
.Kind == SyntaxKind.EndOfFileToken)
251
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.NamespaceKeyword);
264
if (this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
268
else if (this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken || IsPossibleNamespaceMemberDeclaration())
586
switch (this.
CurrentToken
.Kind)
675
if (this.
CurrentToken
.ContextualKind != SyntaxKind.GlobalKeyword || this.PeekToken(1).Kind != SyntaxKind.UsingKeyword)
871
switch (this.
CurrentToken
.Kind)
881
return IsPossibleStartOfTypeDeclaration(this.
CurrentToken
.Kind);
887
return this.
CurrentToken
.Kind == SyntaxKind.CloseBraceToken;
912
return this.
CurrentToken
.Kind == SyntaxKind.ExternKeyword
925
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.ExternKeyword);
949
var globalToken = this.
CurrentToken
.ContextualKind == SyntaxKind.GlobalKeyword
953
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.UsingKeyword);
960
if (staticToken is null && unsafeToken != null && this.
CurrentToken
.Kind == SyntaxKind.StaticKeyword)
972
var isAliasToFunctionPointer = alias != null && this.
CurrentToken
.Kind == SyntaxKind.DelegateKeyword;
991
type = _syntaxFactory.IdentifierName(CreateMissingToken(SyntaxKind.IdentifierToken, this.
CurrentToken
.Kind));
1014
return this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken
1034
if (this.
CurrentToken
.Kind != SyntaxKind.OpenBracketToken)
1052
if (SyntaxFacts.IsLiteralExpression(this.
CurrentToken
.Kind))
1096
return this.
CurrentToken
.Kind == SyntaxKind.CloseBracketToken
1101
=> IsSomeWord(this.
CurrentToken
.Kind) && this.PeekToken(1).Kind == SyntaxKind.ColonToken;
1146
if (this.
CurrentToken
.Kind == SyntaxKind.DotToken)
1152
if (this.
CurrentToken
.Kind == SyntaxKind.MinusGreaterThanToken)
1157
if (this.
CurrentToken
.Kind == SyntaxKind.QuestionToken &&
1170
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleAttribute(),
1171
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind,
1200
if (this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken)
1225
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleAttributeArgument(),
1226
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind,
1260
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
1353
var newMod = GetModifierExcludingScoped(this.
CurrentToken
);
1450
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.RefKeyword);
1467
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.RefKeyword);
1472
while (GetModifierExcludingScoped(this.
CurrentToken
) != DeclarationModifiers.None)
1480
return this.
CurrentToken
.ContextualKind is
1493
while (GetModifierExcludingScoped(this.
CurrentToken
) != DeclarationModifiers.None ||
1494
this.
CurrentToken
.ContextualKind == SyntaxKind.ScopedKeyword)
1503
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken && GetModifierExcludingScoped(this.
CurrentToken
) != DeclarationModifiers.None);
1543
var currentTokenKind = this.
CurrentToken
.Kind;
1565
var currentTokenKind = this.
CurrentToken
.Kind;
1583
if (SyntaxFacts.IsPredefinedType(this.
CurrentToken
.Kind))
1590
if (IsNonContextualModifier(this.
CurrentToken
))
1612
=> this.IsTypeDeclarationStart() || this.
CurrentToken
.Kind == SyntaxKind.NamespaceKeyword;
1639
if (this.
CurrentToken
.ContextualKind != SyntaxKind.PartialKeyword)
1654
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.PartialKeyword);
1658
while (GetModifierExcludingScoped(this.
CurrentToken
) != DeclarationModifiers.None)
1671
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.PartialKeyword);
1681
while (GetModifierExcludingScoped(this.
CurrentToken
) != DeclarationModifiers.None)
1685
if (this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken)
1709
if (this.
CurrentToken
.Kind == SyntaxKind.EventKeyword)
1714
if (this.
CurrentToken
.Kind is SyntaxKind.ImplicitKeyword or SyntaxKind.ExplicitKeyword)
1740
switch (this.
CurrentToken
.Kind)
1743
if (this.
CurrentToken
.ContextualKind == SyntaxKind.GlobalKeyword && this.PeekToken(1).Kind == SyntaxKind.UsingKeyword)
1763
switch (this.
CurrentToken
.Kind)
1781
Debug.Assert(
CurrentToken
.ContextualKind is SyntaxKind.RecordKeyword or SyntaxKind.ExtensionKeyword or SyntaxKind.UnionKeyword);
1785
throw ExceptionUtilities.UnexpectedValue(this.
CurrentToken
.Kind);
1791
Debug.Assert(this.
CurrentToken
.Kind is SyntaxKind.ClassKeyword or SyntaxKind.StructKeyword or SyntaxKind.InterfaceKeyword ||
1792
this.
CurrentToken
.ContextualKind is SyntaxKind.RecordKeyword or SyntaxKind.ExtensionKeyword or SyntaxKind.UnionKeyword);
1814
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
1827
var paramList =
CurrentToken
.Kind == SyntaxKind.OpenParenToken || isExtension
1839
if (this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword)
1850
if (
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
1874
SyntaxKind kind = this.
CurrentToken
.Kind;
1910
? this.CreateMissingToken(SyntaxKind.CloseBraceToken, this.
CurrentToken
.Kind)
1933
if (this.
CurrentToken
.ContextualKind == SyntaxKind.RecordKeyword)
1936
recordModifier = this.
CurrentToken
.Kind is SyntaxKind.ClassKeyword or SyntaxKind.StructKeyword
1943
if (this.
CurrentToken
.Kind is SyntaxKind.StructKeyword or SyntaxKind.ClassKeyword &&
2113
SyntaxKind kind = this.
CurrentToken
.Kind;
2161
return this.IsPossibleMemberStart() || this.
CurrentToken
.Kind == SyntaxKind.CloseBraceToken;
2166
return this.
CurrentToken
.Kind is SyntaxKind.ColonToken or SyntaxKind.OpenBraceToken
2183
list.Add(this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken
2188
while (this.
CurrentToken
.Kind is not (SyntaxKind.OpenBraceToken or SyntaxKind.SemicolonToken) &&
2191
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
2205
if (GetModifierExcludingScoped(this.
CurrentToken
) != DeclarationModifiers.None)
2228
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleAttribute(),
2229
static (p, _) => p.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken || p.IsCurrentTokenWhereOfConstraintClause(),
2237
this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword &&
2244
while (this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword)
2262
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken || this.IsCurrentTokenWhereOfConstraintClause())
2276
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken
2277
|| ((_termState & TerminatorState.IsEndOfTypeSignature) != 0 && this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
2278
|| this.
CurrentToken
.Kind == SyntaxKind.EqualsGreaterThanToken
2279
|| this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword)
2283
else if (haveComma = (this.
CurrentToken
.Kind == SyntaxKind.CommaToken) || this.IsPossibleTypeParameterConstraint())
2323
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleTypeParameterConstraint(),
2324
static (p, _) => p.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken || p.IsCurrentTokenWhereOfConstraintClause(),
2331
switch (this.
CurrentToken
.Kind)
2340
return (this.
CurrentToken
.ContextualKind == SyntaxKind.AllowsKeyword && PeekToken(1).Kind == SyntaxKind.RefKeyword) || this.IsTrueIdentifier();
2342
return IsPredefinedType(this.
CurrentToken
.Kind);
2348
return this.
CurrentToken
.Kind switch
2360
this.
CurrentToken
.Kind == SyntaxKind.QuestionToken
2392
if (this.
CurrentToken
.ContextualKind == SyntaxKind.AllowsKeyword &&
2406
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken && PeekToken(1).Kind == SyntaxKind.RefKeyword)
2424
return CanStartMember(this.
CurrentToken
.Kind);
2485
switch (this.
CurrentToken
.Kind)
2496
if (this.IsEnabledRecordOrUnionKeyword(this.
CurrentToken
))
2631
switch (this.
CurrentToken
.Kind)
2677
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken && this.PeekToken(1).Kind == SyntaxKind.OpenParenToken)
2711
if (this.
CurrentToken
.Kind == SyntaxKind.ConstKeyword)
2724
if (this.
CurrentToken
.Kind == SyntaxKind.EventKeyword)
2730
if (this.
CurrentToken
.Kind == SyntaxKind.FixedKeyword)
2742
if (this.
CurrentToken
.Kind == SyntaxKind.NamespaceKeyword)
2764
if (this.
CurrentToken
.Kind is not SyntaxKind.CloseBraceToken and not SyntaxKind.EndOfFileToken &&
3005
if (
CurrentToken
.Kind == SyntaxKind.UsingKeyword)
3010
if (
CurrentToken
.ContextualKind == SyntaxKind.GlobalKeyword && this.PeekToken(1).Kind == SyntaxKind.UsingKeyword)
3025
if (GetModifierExcludingScoped(this.
CurrentToken
) != DeclarationModifiers.None &&
3026
this.
CurrentToken
.ContextualKind is not (SyntaxKind.PartialKeyword or SyntaxKind.AsyncKeyword or SyntaxKind.RequiredKeyword or SyntaxKind.FileKeyword or SyntaxKind.ClosedKeyword or SyntaxKind.SafeKeyword) &&
3029
var misplacedModifier = this.
CurrentToken
;
3092
offset: incompleteMember.Width + incompleteMember.GetTrailingTriviaWidth() + this.
CurrentToken
.GetLeadingTriviaWidth(),
3093
this.
CurrentToken
.Width,
3095
this.
CurrentToken
.Text);
3159
|| this.
CurrentToken
.Kind is not SyntaxKind.OpenParenToken and not SyntaxKind.OpenBraceToken and not SyntaxKind.EqualsGreaterThanToken) &&
3267
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken && this.PeekToken(1).Kind == SyntaxKind.OpenParenToken)
3273
if (this.
CurrentToken
.Kind == SyntaxKind.TildeToken)
3279
if (this.
CurrentToken
.Kind == SyntaxKind.ConstKeyword)
3285
if (this.
CurrentToken
.Kind == SyntaxKind.EventKeyword)
3291
if (this.
CurrentToken
.Kind == SyntaxKind.FixedKeyword)
3399
return this.
CurrentToken
.ContextualKind == SyntaxKind.ExtensionKeyword &&
3431
if (this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken)
3436
if (this.
CurrentToken
.ContextualKind == SyntaxKind.GlobalKeyword && this.PeekToken(1).Kind == SyntaxKind.UsingKeyword)
3474
return this.
CurrentToken
.Kind is SyntaxKind.ImplicitKeyword or SyntaxKind.ExplicitKeyword or SyntaxKind.OperatorKeyword;
3532
var currentTokenKind = this.
CurrentToken
.Kind;
3549
Debug.Assert(this.
CurrentToken
.Kind is SyntaxKind.ColonToken or SyntaxKind.EqualsGreaterThanToken);
3552
var token = this.
CurrentToken
.Kind is SyntaxKind.BaseKeyword or SyntaxKind.ThisKeyword
3556
var argumentList = this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken
3574
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.TildeToken);
3600
if (this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
3608
blockBody = this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken
3612
expressionBody = this.
CurrentToken
.Kind == SyntaxKind.EqualsGreaterThanToken
3623
else if (parseSemicolonAfterBlock && this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
3635
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
3641
if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken)
3647
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken)
3663
=> this.
CurrentToken
.Kind is SyntaxKind.SemicolonToken or SyntaxKind.OpenBraceToken;
3667
return this.
CurrentToken
.Kind is SyntaxKind.SemicolonToken or SyntaxKind.OpenBraceToken;
3671
=> this.
CurrentToken
.Kind is SyntaxKind.DotToken or SyntaxKind.ColonColonToken;
3674
=> this.
CurrentToken
.Kind == (errored ? SyntaxKind.CloseParenToken : SyntaxKind.GreaterThanToken);
3677
=> this.
CurrentToken
.Kind == SyntaxKind.CloseBracketToken;
3694
if (this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword)
3699
else if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken)
3702
var colonToken = this.
CurrentToken
;
3749
switch (this.
CurrentToken
.Kind)
3768
if (this.
CurrentToken
.Kind is not (SyntaxKind.ImplicitKeyword or SyntaxKind.ExplicitKeyword))
3772
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
3776
while (this.
CurrentToken
.Kind != SyntaxKind.OperatorKeyword)
3789
(IsMakingProgress(ref lastTokenPosition, assertIfFalse: false) && this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken))
3795
separatorKind = this.
CurrentToken
.Kind;
3815
if (this.
CurrentToken
.Kind != SyntaxKind.OperatorKeyword ||
3837
var style = this.
CurrentToken
.Kind is SyntaxKind.ImplicitKeyword or SyntaxKind.ExplicitKeyword
3847
if (!style.IsMissing && explicitInterfaceOpt is not null && this.
CurrentToken
.Kind != SyntaxKind.OperatorKeyword && style.TrailingTrivia.Any((int)SyntaxKind.EndOfLineTrivia))
3879
bool couldBeParameterList = this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken;
3884
this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken)
3915
if (this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken)
3932
if (this.
CurrentToken
.Kind == SyntaxKind.OperatorKeyword)
3942
(IsMakingProgress(ref lastTokenPosition, assertIfFalse: false) && this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken);
3981
if (
CurrentToken
.Kind == SyntaxKind.UncheckedKeyword)
4000
var firstToken = this.
CurrentToken
;
4036
if (SyntaxFacts.IsAnyOverloadableOperator(this.
CurrentToken
.Kind))
4045
if (this.
CurrentToken
.Kind is SyntaxKind.ImplicitKeyword or SyntaxKind.ExplicitKeyword)
4048
(opTokenErrorOffset, opTokenErrorWidth) = (0, this.
CurrentToken
.Width);
4080
var tk = this.
CurrentToken
;
4087
tk = this.
CurrentToken
;
4219
if (this.
CurrentToken
.Kind == SyntaxKind.EqualsGreaterThanToken)
4227
if (this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
4236
if (this.
CurrentToken
.Kind == SyntaxKind.EqualsGreaterThanToken
4271
if (this.
CurrentToken
.Kind is SyntaxKind.SemicolonToken)
4279
var accessorList = this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken
4287
if (this.
CurrentToken
.Kind == SyntaxKind.EqualsGreaterThanToken)
4293
else if (this.
CurrentToken
.Kind == SyntaxKind.EqualsToken)
4305
else if (this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
4388
while (this.
CurrentToken
.Kind != SyntaxKind.CloseBraceToken)
4421
var refKeyword = this.
CurrentToken
.Kind == SyntaxKind.RefKeyword && !this.IsPossibleLambdaExpression(Precedence.Expression)
4432
static p => p.
CurrentToken
.Kind != SyntaxKind.CloseBraceToken && !p.IsPossibleAccessor(),
4453
if (SyntaxFacts.GetAccessorDeclarationKind(this.
CurrentToken
.ContextualKind) != SyntaxKind.None)
4457
if (IsAccessorBodyStart(this.
CurrentToken
))
4463
if (this.
CurrentToken
.Kind is SyntaxKind.CloseBraceToken or SyntaxKind.EndOfFileToken)
4468
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken && IsAccessorBodyStart(PeekToken(1)))
4477
return this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken;
4600
var token = (first && !this.
CurrentToken
.ContainsDiagnostics) ? this.EatTokenEvenWithIncorrectKind(expected) : this.EatToken();
4626
var token = (first && !this.
CurrentToken
.ContainsDiagnostics) ? this.EatTokenWithPrejudice(errorCode) : this.EatToken();
4682
bool currentTokenIsSemicolon = this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken;
4683
bool currentTokenIsArrow = this.
CurrentToken
.Kind == SyntaxKind.EqualsGreaterThanToken;
4684
bool currentTokenIsOpenBraceToken = this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken;
4866
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleParameter(),
4867
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind,
4874
return this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken or SyntaxKind.CloseBracketToken or SyntaxKind.SemicolonToken;
4879
switch (this.
CurrentToken
.Kind)
4891
return IsParameterModifierExcludingScoped(this.
CurrentToken
) ||
4893
IsPredefinedType(this.
CurrentToken
.Kind);
4953
if (this.
CurrentToken
.Kind == SyntaxKind.ArgListKeyword)
4964
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken && IsCurrentTokenWhereOfConstraintClause())
4971
identifier = identifierIsOptional && this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken
4977
if (identifier is not null && this.
CurrentToken
.Kind is SyntaxKind.OpenBracketToken && this.PeekToken(1).Kind is SyntaxKind.CloseBracketToken)
5026
if (IsParameterModifierExcludingScoped(this.
CurrentToken
))
5072
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.FixedKeyword);
5090
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.EventKeyword);
5114
if (explicitInterfaceOpt != null && this.
CurrentToken
.Kind is not SyntaxKind.OpenBraceToken and not SyntaxKind.SemicolonToken)
5166
if (explicitInterfaceOpt != null && this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
5193
if (this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
5246
if (this.
CurrentToken
.Kind == SyntaxKind.DotToken)
5262
return this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken;
5325
while (this.
CurrentToken
.Kind != SyntaxKind.SemicolonToken)
5327
if (stopOnCloseParen && this.
CurrentToken
.Kind == SyntaxKind.CloseParenToken)
5331
else if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
5381
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken,
5382
static (p, _) => p.
CurrentToken
.Kind == SyntaxKind.SemicolonToken,
5537
var currentTokenKind = this.
CurrentToken
.Kind;
5548
currentTokenKind = this.
CurrentToken
.Kind;
5598
switch (this.
CurrentToken
.Kind)
5609
var refKeyword = isLocalOrField && !isConst && this.
CurrentToken
.Kind == SyntaxKind.RefKeyword && !this.IsPossibleLambdaExpression(Precedence.Expression)
5686
if (this.
CurrentToken
.Kind == SyntaxKind.EqualsToken)
5704
Debug.Assert(this.
CurrentToken
.Kind != SyntaxKind.EqualsToken);
5744
if (this.
CurrentToken
.Kind == SyntaxKind.EqualsToken)
5758
this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken &&
5783
Debug.Assert(this.
CurrentToken
.Kind is SyntaxKind.OpenParenToken or SyntaxKind.LessThanToken);
5791
(this.
CurrentToken
.Kind is SyntaxKind.OpenBraceToken or SyntaxKind.EqualsGreaterThanToken ||
5792
this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword))
5802
switch (this.
CurrentToken
.Kind)
5814
return this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken
5821
return this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken || this.IsPossibleExpression();
5840
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.DelegateKeyword);
5851
if (this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword)
5873
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.EnumKeyword);
5888
if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken)
5904
if (
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
5949
static p => p.
CurrentToken
.Kind is not SyntaxKind.CommaToken and not SyntaxKind.SemicolonToken && !p.IsPossibleEnumMemberDeclaration(),
5950
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind,
5965
if (this.
CurrentToken
.Kind == SyntaxKind.EqualsToken)
5970
this.
CurrentToken
.Kind is SyntaxKind.CommaToken or SyntaxKind.CloseBraceToken
5980
return this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken || this.IsTrueIdentifier();
5985
return this.
CurrentToken
.Kind is SyntaxKind.DotToken or SyntaxKind.ColonColonToken;
6024
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
6064
var ctk = this.
CurrentToken
.Kind;
6076
result = this.AddError(result, ErrorCode.ERR_InvalidExprTerm, this.
CurrentToken
.Text);
6102
return
CurrentToken
.ContextualKind == SyntaxKind.FieldKeyword &&
6109
if (this.
CurrentToken
.Kind != SyntaxKind.LessThanToken)
6139
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken,
6140
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind,
6152
if (this.
CurrentToken
.Kind is SyntaxKind.OpenBracketToken or SyntaxKind.InKeyword or SyntaxKind.OutKeyword)
6161
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken)
6180
this.
CurrentToken
.Kind is SyntaxKind.InKeyword or SyntaxKind.OutKeyword ? EatToken() : null,
6197
if (this.
CurrentToken
.Kind == SyntaxKind.LessThanToken)
6207
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.LessThanToken);
6232
if (this.
CurrentToken
.Kind != SyntaxKind.LessThanToken)
6282
switch (this.
CurrentToken
.Kind)
6364
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.LessThanToken);
6374
while (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
6391
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken)
6397
if (this.
CurrentToken
.Kind == SyntaxKind.GreaterThanToken)
6406
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
6441
isDefinitelyTypeArgumentList = isDefinitelyTypeArgumentList || this.
CurrentToken
.Kind is SyntaxKind.CommaToken or SyntaxKind.GreaterThanToken;
6468
isDefinitelyTypeArgumentList = isDefinitelyTypeArgumentList || this.
CurrentToken
.Kind is SyntaxKind.CommaToken or SyntaxKind.GreaterThanToken;
6490
isDefinitelyTypeArgumentList = this.
CurrentToken
.Kind == SyntaxKind.CommaToken;
6508
while (this.
CurrentToken
.Kind == SyntaxKind.CommaToken);
6510
if (this.
CurrentToken
.Kind != SyntaxKind.GreaterThanToken)
6516
if (this.
CurrentToken
.Kind is SyntaxKind.IdentifierToken)
6525
if (lastScannedType is ScanTypeFlags.TupleType && this.
CurrentToken
.Kind is SyntaxKind.OpenParenToken)
6538
isDefinitelyTypeArgumentList = isDefinitelyTypeArgumentList || this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken;
6550
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.LessThanToken);
6560
while (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
6575
while (this.
CurrentToken
.Kind != SyntaxKind.GreaterThanToken)
6579
if (tokenBreaksTypeArgumentList(this.
CurrentToken
))
6588
if (this.
CurrentToken
.Kind is SyntaxKind.IdentifierToken && tokenBreaksTypeArgumentList(this.PeekToken(1)))
6597
if (this.
CurrentToken
.Kind is SyntaxKind.IdentifierToken
6603
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken || this.IsPossibleType())
6673
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleType(),
6674
static (p, _) => p.
CurrentToken
.Kind == SyntaxKind.GreaterThanToken,
6682
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken && this.PeekToken(1).Kind != SyntaxKind.CloseBracketToken)
6698
var varianceToken = this.
CurrentToken
.Kind is SyntaxKind.InKeyword or SyntaxKind.OutKeyword
6725
this.
CurrentToken
.Kind is not SyntaxKind.CommaToken and not SyntaxKind.GreaterThanToken &&
6747
=> this.
CurrentToken
.Kind == SyntaxKind.GreaterThanToken;
6751
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.LessThanToken);
6789
if (this.
CurrentToken
.Kind == SyntaxKind.ThisKeyword)
6840
if (isEvent && this.
CurrentToken
.Kind is not SyntaxKind.OpenBraceToken and not SyntaxKind.SemicolonToken)
6911
separator = this.
CurrentToken
.Kind == SyntaxKind.ColonColonToken
6924
if (this.
CurrentToken
.Kind == SyntaxKind.ColonColonToken)
6953
if (this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken)
7029
return this.
CurrentToken
.Kind == SyntaxKind.ColonColonToken
7159
var tk = this.
CurrentToken
.Kind;
7180
if (this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken || !this.IsTrueIdentifier())
7187
if (this.
CurrentToken
.Kind == SyntaxKind.LessThanToken)
7202
if (this.
CurrentToken
.Kind == SyntaxKind.RefKeyword)
7207
if (this.
CurrentToken
.Kind == SyntaxKind.ReadOnlyKeyword)
7214
if (this.
CurrentToken
.Kind is SyntaxKind.IdentifierToken or SyntaxKind.ColonColonToken)
7217
if (this.
CurrentToken
.Kind is SyntaxKind.ColonColonToken)
7231
Debug.Assert(this.
CurrentToken
.Kind is SyntaxKind.IdentifierToken);
7271
else if (IsPredefinedType(this.
CurrentToken
.Kind))
7277
else if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
7282
if (result == ScanTypeFlags.NotType || mode == ParseTypeMode.DefinitePattern && this.
CurrentToken
.Kind != SyntaxKind.OpenBracketToken)
7302
switch (this.
CurrentToken
.Kind)
7343
while (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
7348
if (this.
CurrentToken
.Kind != SyntaxKind.CloseBracketToken)
7381
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
7399
while (this.
CurrentToken
.Kind == SyntaxKind.CommaToken);
7401
if (this.
CurrentToken
.Kind == SyntaxKind.CloseParenToken)
7423
if (
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
7426
switch (
CurrentToken
)
7441
if (
CurrentToken
.Kind == SyntaxKind.OpenBracketToken)
7458
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.CommaToken);
7471
if (!IsPossibleFunctionPointerParameterListStart(
CurrentToken
))
7511
if (!validStartingToken &&
CurrentToken
.Kind == SyntaxKind.CloseParenToken)
7525
isNotExpectedFunction: static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken,
7546
if (this.
CurrentToken
.Kind == SyntaxKind.VoidKeyword && this.PeekToken(1).Kind != SyntaxKind.AsteriskToken)
7571
if (this.
CurrentToken
.Kind == SyntaxKind.RefKeyword)
7575
this.
CurrentToken
.Kind == SyntaxKind.ReadOnlyKeyword ? this.EatToken() : null,
7619
switch (this.
CurrentToken
.Kind)
7667
while (this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken);
7688
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.QuestionToken);
7711
if (mode == ParseTypeMode.AfterIs && this.
CurrentToken
.Kind is SyntaxKind.OpenBracketToken)
7738
return this.
CurrentToken
.Kind != SyntaxKind.ColonToken;
7765
if (IsTrueIdentifier(this.
CurrentToken
))
7774
if (this.
CurrentToken
.ContextualKind is SyntaxKind.AsyncKeyword or SyntaxKind.AwaitKeyword or SyntaxKind.FromKeyword)
7828
if (this.
CurrentToken
.Kind is SyntaxKind.OpenBracketToken)
7837
this.
CurrentToken
.Kind is SyntaxKind.OpenParenToken or // ctor parameters
7872
while (IsMakingProgress(ref lastTokenPosition) && this.
CurrentToken
.Kind != SyntaxKind.CloseBracketToken)
7874
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
7887
if (this.
CurrentToken
.Kind != SyntaxKind.CloseBracketToken)
7928
if (this.
CurrentToken
.Kind != SyntaxKind.CloseParenToken)
7932
while (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
7967
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleExpression(),
7968
static (p, _) => p.
CurrentToken
.Kind == SyntaxKind.CloseBracketToken,
7974
if (IsPredefinedType(this.
CurrentToken
.Kind))
7978
if (token.Kind == SyntaxKind.VoidKeyword && this.
CurrentToken
.Kind != SyntaxKind.AsteriskToken)
7987
if (IsTrueIdentifier() || this.
CurrentToken
.Kind == SyntaxKind.ColonColonToken)
7992
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
8015
if (!IsPossibleFunctionPointerParameterListStart(
CurrentToken
))
8058
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.CommaToken);
8069
lessThanToken.IsMissing &&
CurrentToken
.Kind == SyntaxKind.CloseParenToken
8084
isNotExpectedFunction: static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken,
8092
if (
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
8096
switch (
CurrentToken
)
8100
managedSpecifier = EatContextualToken(
CurrentToken
.ContextualKind);
8120
if (
CurrentToken
.Kind == SyntaxKind.OpenBracketToken)
8138
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.CommaToken);
8168
=>
CurrentToken
.Kind == SyntaxKind.DelegateKeyword && PeekToken(1).Kind == SyntaxKind.AsteriskToken;
8179
while (this.
CurrentToken
.Kind == SyntaxKind.AsteriskToken)
8199
if (this.
CurrentToken
.Kind != SyntaxKind.OpenBracketToken)
8213
while (this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken)
8223
var isCollectionExpression = this.
CurrentToken
.Kind
8236
|| IsExpectedBinaryOperator(this.
CurrentToken
.Kind)
8237
|| IsExpectedAssignmentOperator(this.
CurrentToken
.Kind)
8238
|| (this.
CurrentToken
.ContextualKind is SyntaxKind.SwitchKeyword or SyntaxKind.WithKeyword && this.PeekToken(1).Kind is SyntaxKind.OpenBraceToken);
8242
this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
8301
switch (this.
CurrentToken
.Kind)
8397
bool beginsWithAwait = this.
CurrentToken
.ContextualKind == SyntaxKind.AwaitKeyword;
8432
if (this.
CurrentToken
.ContextualKind == SyntaxKind.AwaitKeyword &&
8494
=>
CurrentToken
.ContextualKind == SyntaxKind.AwaitKeyword && PeekToken(1).Kind == SyntaxKind.UsingKeyword;
8503
return this.
CurrentToken
.ContextualKind == SyntaxKind.YieldKeyword &&
8513
var tk = this.
CurrentToken
.Kind;
8541
tk = this.
CurrentToken
.ContextualKind;
8556
bool? typedIdentifier = IsPossibleTypedIdentifierStart(this.
CurrentToken
, this.PeekToken(1), allowThisKeyword: false);
8577
var tk = this.
CurrentToken
.ContextualKind;
8621
if (st == ScanTypeFlags.MustBeType && this.
CurrentToken
.Kind is not SyntaxKind.DotToken and not SyntaxKind.OpenParenToken)
8631
if (this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken)
8639
return st == ScanTypeFlags.GenericTypeOrExpression && (IsDefiniteStatement() || IsTypeDeclarationStart() || IsAccessibilityModifier(
CurrentToken
.Kind));
8660
if (this.
CurrentToken
.Kind != SyntaxKind.UsingKeyword)
8726
if (this.
CurrentToken
.Kind is SyntaxKind.OpenBraceToken)
8747
if (this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken)
8754
if (this.
CurrentToken
.Kind == SyntaxKind.EqualsToken)
8763
return this.
CurrentToken
.Kind is SyntaxKind.CommaToken or SyntaxKind.SemicolonToken;
8781
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken || this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword)
8788
if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken)
8880
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.DelegateKeyword);
8908
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken);
8917
if (scanResult == ScanTypeFlags.TupleType && this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
8928
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.NewKeyword);
9073
CSharpSyntaxNode openBrace = isAccessorBody && this.
CurrentToken
.Kind != SyntaxKind.OpenBraceToken
9154
while (this.
CurrentToken
.Kind is not SyntaxKind.CloseBraceToken and not SyntaxKind.EndOfFileToken
9186
return this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken
9198
static (p, _) => p.
CurrentToken
.Kind == SyntaxKind.CloseBraceToken,
9206
var tk = this.
CurrentToken
.Kind;
9243
var tk = this.
CurrentToken
.Kind;
9288
return this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken or SyntaxKind.OpenBraceToken or SyntaxKind.SemicolonToken;
9353
Debug.Assert(this.
CurrentToken
.Kind is SyntaxKind.TryKeyword or SyntaxKind.CatchKeyword or SyntaxKind.FinallyKeyword);
9366
Debug.Assert(this.
CurrentToken
.Kind is SyntaxKind.CatchKeyword or SyntaxKind.FinallyKeyword);
9380
if (this.
CurrentToken
.Kind == SyntaxKind.CatchKeyword)
9383
while (this.
CurrentToken
.Kind == SyntaxKind.CatchKeyword)
9389
if (this.
CurrentToken
.Kind == SyntaxKind.FinallyKeyword)
9424
return this.
CurrentToken
.Kind is SyntaxKind.CloseBraceToken or SyntaxKind.CatchKeyword or SyntaxKind.FinallyKeyword;
9429
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.CatchKeyword);
9436
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
9456
var keywordKind = this.
CurrentToken
.ContextualKind;
9488
return this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken
9497
return this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken
9505
return this.
CurrentToken
.Kind is SyntaxKind.CloseBraceToken
9512
Debug.Assert(this.
CurrentToken
.Kind is SyntaxKind.CheckedKeyword or SyntaxKind.UncheckedKeyword);
9529
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.DoKeyword);
9553
return this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken or SyntaxKind.SemicolonToken;
9570
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.ForKeyword);
9591
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.ForKeyword);
9601
var condition = this.
CurrentToken
.Kind is not SyntaxKind.SemicolonToken and not SyntaxKind.CommaToken
9610
var incrementors = this.
CurrentToken
.Kind != SyntaxKind.CloseParenToken
9639
if (this.
CurrentToken
.ContextualKind == SyntaxKind.ScopedKeyword)
9648
isDeclaration = ScanType() != ScanTypeFlags.NotType && this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken;
9652
else if (this.
CurrentToken
.Kind == SyntaxKind.RefKeyword)
9669
else if (this.
CurrentToken
.Kind != SyntaxKind.SemicolonToken)
9684
=> this.
CurrentToken
.Kind is SyntaxKind.CommaToken
9692
while (this.
CurrentToken
.Kind is SyntaxKind.SemicolonToken or SyntaxKind.CommaToken)
9716
if (@this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken or SyntaxKind.SemicolonToken)
9720
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleExpression(),
9721
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind || p.
CurrentToken
.Kind == SyntaxKind.SemicolonToken,
9728
return this.
CurrentToken
.Kind is SyntaxKind.SemicolonToken or SyntaxKind.CloseParenToken or SyntaxKind.OpenBraceToken;
9735
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.ForEachKeyword || this.
CurrentToken
.Kind == SyntaxKind.ForKeyword);
9746
if (this.
CurrentToken
.Kind == SyntaxKind.ForKeyword)
9840
if (this.IsInAsync && this.
CurrentToken
.ContextualKind == SyntaxKind.AwaitKeyword)
9848
if (this.
CurrentToken
.ContextualKind == SyntaxKind.ScopedKeyword)
9851
if (ScanType() != ScanTypeFlags.NotType && this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
9898
return this.
CurrentToken
.Kind == SyntaxKind.CommaToken;
9900
return this.
CurrentToken
.Kind is SyntaxKind.CommaToken or SyntaxKind.CloseParenToken;
9913
if (!this.
CurrentToken
.IsIdentifierVar())
9952
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.GotoKeyword);
9960
if (this.
CurrentToken
.Kind is SyntaxKind.CaseKeyword or SyntaxKind.DefaultKeyword)
9988
if (this.
CurrentToken
.Kind != SyntaxKind.CloseParenToken)
9999
if (this.
CurrentToken
.Kind == SyntaxKind.CloseParenToken &&
10018
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.IfKeyword);
10031
var elseKeyword = this.
CurrentToken
.Kind != SyntaxKind.ElseKeyword ?
10042
if (this.
CurrentToken
.Kind != SyntaxKind.IfKeyword)
10083
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.ElseKeyword);
10097
return this.
CurrentToken
.Kind != SyntaxKind.ElseKeyword
10106
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.LockKeyword);
10118
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.ReturnKeyword);
10122
this.
CurrentToken
.Kind != SyntaxKind.SemicolonToken ? this.ParsePossibleRefExpression() : null,
10128
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.YieldKeyword);
10135
if (this.
CurrentToken
.Kind == SyntaxKind.BreakKeyword)
10144
if (this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken)
10165
Debug.Assert(this.
CurrentToken
.Kind is SyntaxKind.SwitchKeyword or SyntaxKind.CaseKeyword);
10190
if (this.
CurrentToken
.Kind is SyntaxKind.CaseKeyword)
10235
return this.
CurrentToken
.Kind == SyntaxKind.CaseKeyword ||
10236
(this.
CurrentToken
.Kind == SyntaxKind.DefaultKeyword && this.PeekToken(1).Kind != SyntaxKind.OpenParenToken);
10250
if (this.
CurrentToken
.Kind == SyntaxKind.CaseKeyword)
10254
if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken)
10266
if (this.
CurrentToken
.ContextualKind == SyntaxKind.WhenKeyword && node is ExpressionSyntax ex)
10291
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.DefaultKeyword);
10313
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.ThrowKeyword);
10317
this.
CurrentToken
.Kind != SyntaxKind.SemicolonToken ? this.ParseExpressionCore() : null,
10323
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.UnsafeKeyword);
10391
if (this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken)
10418
if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken &&
10450
bool condition1 = st == ScanTypeFlags.MustBeType && this.
CurrentToken
.Kind != SyntaxKind.DotToken;
10451
bool condition2 = st != ScanTypeFlags.NotType && this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken;
10459
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.WhileKeyword);
10494
else if (this.
CurrentToken
.Kind == SyntaxKind.UsingKeyword)
10590
if (this.
CurrentToken
.ContextualKind != SyntaxKind.ScopedKeyword)
10607
if (IsParameterModifierExcludingScoped(this.
CurrentToken
))
10624
return this.
CurrentToken
.Kind is SyntaxKind.CommaToken or SyntaxKind.GreaterThanToken;
10626
else if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
10651
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
10659
done = (this.
CurrentToken
.Kind == SyntaxKind.CloseParenToken);
10672
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
10702
return
CurrentToken
.ContextualKind == SyntaxKind.UnderscoreToken
10709
if (this.
CurrentToken
.ContextualKind != SyntaxKind.WhenKeyword)
10793
switch (this.
CurrentToken
.Kind)
10806
while (IsDeclarationModifier(k = this.
CurrentToken
.ContextualKind) || IsAdditionalLocalFunctionModifier(k))
10843
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken);
10849
if (IsDeclarationModifier(this.
CurrentToken
.Kind) ||
10850
IsAdditionalLocalFunctionModifier(this.
CurrentToken
.Kind))
10857
if (ScanType() != ScanTypeFlags.NotType && this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
10865
while (IsAdditionalLocalFunctionModifier(this.
CurrentToken
.ContextualKind));
11009
if (this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword)
11048
if (IsScript && this.
CurrentToken
.Kind == SyntaxKind.EndOfFileToken)
11092
SyntaxKind tk = this.
CurrentToken
.Kind;
11139
return this.IsTrueIdentifier() || this.
CurrentToken
.ContextualKind == SyntaxKind.FromKeyword;
11376
return (this.IsScript || this.IsInAsync) && this.
CurrentToken
.ContextualKind == SyntaxKind.AwaitKeyword;
11381
if (this.
CurrentToken
.ContextualKind == SyntaxKind.AwaitKeyword)
11459
var tk = this.
CurrentToken
.Kind;
11501
if (this.
CurrentToken
.ContextualKind == SyntaxKind.FromKeyword && IsInQuery)
11508
this.AddError(this.EatToken(), ErrorCode.ERR_InvalidExprTerm, this.
CurrentToken
.Text));
11555
if (this.
CurrentToken
.Kind == SyntaxKind.QuestionToken && precedence <= Precedence.Conditional)
11653
if (this.
CurrentToken
.Kind != SyntaxKind.ColonToken &&
11671
if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken)
11683
if (this.
CurrentToken
.Kind == SyntaxKind.EndOfFileToken && this.lexer.InterpolationFollowedByColon)
11742
var token1 = this.
CurrentToken
;
11844
if (operatorExpressionKind == SyntaxKind.SimpleAssignmentExpression &&
CurrentToken
.Kind == SyntaxKind.RefKeyword &&
11864
if (this.
CurrentToken
.Kind != SyntaxKind.DotToken)
11868
return nextToken.Kind == SyntaxKind.DotToken && NoTriviaBetween(this.
CurrentToken
, nextToken);
11886
if (this.
CurrentToken
is { Kind: SyntaxKind.DotToken } token3 &&
11956
var tk = this.
CurrentToken
.Kind;
11994
return this.AddError(this.CreateMissingIdentifierName(), ErrorCode.ERR_InvalidExprTerm, this.
CurrentToken
.Text);
12023
return this.AddError(this.CreateMissingIdentifierName(), ErrorCode.ERR_InvalidExprTerm, this.
CurrentToken
.Text);
12091
if (this.
CurrentToken
.Kind != SyntaxKind.DotToken || tk == SyntaxKind.VoidKeyword)
12116
offset: this.
CurrentToken
.GetLeadingTriviaWidth(),
12117
width: this.
CurrentToken
.Width,
12141
switch (this.
CurrentToken
.Kind)
12153
expr = _syntaxFactory.PostfixUnaryExpression(SyntaxFacts.GetPostfixUnaryExpression(this.
CurrentToken
.Kind), expr, this.EatToken());
12188
if (this.
CurrentToken
.TrailingTrivia.Any((int)SyntaxKind.EndOfLineTrivia) &&
12222
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.BaseKeyword);
12236
if (precedence > Precedence.Assignment || !(this.
CurrentToken
.IsIdentifierVar() || IsPredefinedType(this.
CurrentToken
.Kind)))
12245
this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken && ScanDesignator() &&
12246
this.
CurrentToken
.Kind == SyntaxKind.EqualsToken;
12251
switch (this.
CurrentToken
.Kind)
12270
switch (this.
CurrentToken
.Kind)
12344
if (this.
CurrentToken
.Kind == SyntaxKind.QuestionToken)
12383
return this.
CurrentToken
.Kind != SyntaxKind.ColonToken;
12396
while (this.
CurrentToken
.Kind == SyntaxKind.ExclamationToken)
12432
=> this.
CurrentToken
.Kind switch
12491
openToken = this.
CurrentToken
.Kind is SyntaxKind.OpenParenToken or SyntaxKind.OpenBracketToken
12498
if (this.
CurrentToken
.Kind != closeKind && this.
CurrentToken
.Kind != SyntaxKind.SemicolonToken)
12526
else if (isIndexer && this.
CurrentToken
.Kind == closeKind)
12542
closeToken = this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken or SyntaxKind.CloseBracketToken
12551
if (@this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken or SyntaxKind.CloseBracketToken or SyntaxKind.SemicolonToken)
12555
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleArgumentExpression(),
12556
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind || p.
CurrentToken
.Kind == SyntaxKind.SemicolonToken,
12563
return this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken or SyntaxKind.CloseBracketToken;
12568
return IsValidArgumentRefKindKeyword(this.
CurrentToken
.Kind) || this.IsPossibleExpression();
12586
var nameColon = this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken && this.PeekToken(1).Kind == SyntaxKind.ColonToken
12593
if (IsValidArgumentRefKindKeyword(this.
CurrentToken
.Kind) &&
12595
!(this.
CurrentToken
.Kind == SyntaxKind.RefKeyword &&
12603
if (isIndexer && this.
CurrentToken
.Kind is SyntaxKind.CommaToken or SyntaxKind.CloseBracketToken)
12607
else if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
12639
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
12726
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.OpenParenToken);
12757
Debug.Assert(
CurrentToken
.Kind == SyntaxKind.OpenParenToken);
12783
if (IsParameterModifierIncludingScoped(this.
CurrentToken
))
12809
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken)
12817
switch (this.
CurrentToken
.Kind)
12833
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken);
12861
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
12869
if (expression.Kind == SyntaxKind.IdentifierName && this.
CurrentToken
.Kind == SyntaxKind.ColonToken)
12890
while (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
12895
var argument = expression.Kind != SyntaxKind.IdentifierName || this.
CurrentToken
.Kind != SyntaxKind.ColonToken
12923
if (this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken)
12936
if (this.
CurrentToken
.Kind != SyntaxKind.CloseParenToken)
12943
if (forPattern && this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken)
12955
if (inSwitchArmPattern && this.
CurrentToken
.ContextualKind == SyntaxKind.WhenKeyword)
12977
return !forPattern || this.
CurrentToken
.Kind switch
13002
return this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken || CanFollowCast(this.
CurrentToken
.Kind);
13008
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken &&
13017
return CanFollowCast(this.
CurrentToken
.Kind);
13048
return this.
CurrentToken
.ContextualKind is SyntaxKind.OrKeyword or SyntaxKind.AndKeyword;
13077
if (
CurrentToken
.Kind == SyntaxKind.OpenBracketToken)
13096
if (this.
CurrentToken
.Kind == SyntaxKind.StaticKeyword)
13101
else if (this.
CurrentToken
.ContextualKind == SyntaxKind.AsyncKeyword &&
13115
if (this.
CurrentToken
.Kind == SyntaxKind.EqualsGreaterThanToken)
13125
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
13133
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken &&
13144
if (this.
CurrentToken
.ContextualKind == SyntaxKind.AsyncKeyword &&
13153
if (st == ScanTypeFlags.NotType || this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken)
13170
if (this.
CurrentToken
.Kind == SyntaxKind.IdentifierToken &&
13178
if (this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken)
13250
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.NewKeyword);
13269
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken);
13290
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleCollectionElement(),
13291
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind,
13305
if (this.
CurrentToken
.ContextualKind == SyntaxKind.WithKeyword &&
13323
return this.
CurrentToken
.Kind == SyntaxKind.NewKeyword && this.PeekToken(1).Kind == SyntaxKind.OpenBraceToken;
13331
Debug.Assert(this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken);
13368
return this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken;
13383
return this.
CurrentToken
.Kind == SyntaxKind.OpenBracketToken;
13399
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken)
13409
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
13414
if (this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken)
13436
if (this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken)
13447
switch (this.
CurrentToken
.Kind)
13566
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleExpression(),
13567
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind,
13576
this.
CurrentToken
.Kind == SyntaxKind.ColonToken
13579
this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken
13590
this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken
13618
Debug.Assert(this.
CurrentToken
.Kind is SyntaxKind.NewKeyword or SyntaxKind.StackAllocKeyword);
13645
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
13685
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleVariableInitializer(),
13686
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind,
13712
if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
13734
this.
CurrentToken
.Kind == SyntaxKind.OpenBraceToken ? this.ParseArrayInitializer() : null);
13751
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
13764
if (this.
CurrentToken
.Kind != SyntaxKind.OpenBraceToken)
13796
var allowPartial = this.
CurrentToken
.ContextualKind == SyntaxKind.PartialKeyword &&
13803
if (allowPartial && this.
CurrentToken
.ContextualKind == SyntaxKind.PartialKeyword)
13809
if (this.
CurrentToken
.Kind == SyntaxKind.StaticKeyword)
13815
if (this.
CurrentToken
.ContextualKind == SyntaxKind.AsyncKeyword &&
13846
if (this.
CurrentToken
.Kind != SyntaxKind.OpenParenToken)
13859
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.AsyncKeyword);
13884
if (this.
CurrentToken
.Kind == SyntaxKind.ColonToken &&
13912
if (
CurrentToken
.Kind != SyntaxKind.OpenParenToken)
13919
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
13932
var identifier = (this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken && this.PeekToken(1).Kind == SyntaxKind.EqualsGreaterThanToken)
13949
=>
CurrentToken
.Kind == SyntaxKind.OpenBraceToken
13980
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken && !p.IsPossibleLambdaParameter(),
13981
static (p, closeKind) => p.
CurrentToken
.Kind == closeKind,
13988
switch (this.
CurrentToken
.Kind)
14006
return IsPredefinedType(this.
CurrentToken
.Kind);
14017
if (IsParameterModifierIncludingScoped(this.
CurrentToken
))
14044
if (IsPredefinedType(this.
CurrentToken
.Kind))
14050
if (this.
CurrentToken
.Kind == SyntaxKind.OpenParenToken)
14060
if (this.IsTrueIdentifier(this.
CurrentToken
))
14087
=> IsTokenQueryContextualKeyword(this.
CurrentToken
);
14129
return this.
CurrentToken
.ContextualKind == SyntaxKind.FromKeyword &&
14182
return this.ScanType() != ScanTypeFlags.NotType && this.
CurrentToken
.Kind is SyntaxKind.IdentifierToken or SyntaxKind.InKeyword;
14204
switch (this.
CurrentToken
.ContextualKind)
14227
SelectOrGroupClauseSyntax selectOrGroupBy = this.
CurrentToken
.ContextualKind switch
14239
this.
CurrentToken
.ContextualKind == SyntaxKind.IntoKeyword
14246
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.FromKeyword);
14255
(this.
CurrentToken
.Kind != SyntaxKind.IdentifierToken || SyntaxFacts.IsQueryContextualKeyword(this.
CurrentToken
.ContextualKind)))
14279
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.JoinKeyword);
14292
into: this.
CurrentToken
.ContextualKind == SyntaxKind.IntoKeyword
14299
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.LetKeyword);
14303
SyntaxFacts.IsReservedKeyword(this.
CurrentToken
.Kind) && this.PeekToken(1).Kind == SyntaxKind.EqualsToken
14312
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.WhereKeyword);
14320
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.OrderByKeyword);
14328
while (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
14330
if (this.
CurrentToken
.Kind is SyntaxKind.CloseParenToken or SyntaxKind.SemicolonToken)
14334
else if (this.
CurrentToken
.Kind == SyntaxKind.CommaToken)
14355
static p => p.
CurrentToken
.Kind != SyntaxKind.CommaToken,
14356
static (p, _) => p.
CurrentToken
.Kind == SyntaxKind.CloseParenToken
14357
|| p.
CurrentToken
.Kind == SyntaxKind.SemicolonToken
14369
if (this.
CurrentToken
.ContextualKind is SyntaxKind.AscendingKeyword or SyntaxKind.DescendingKeyword)
14383
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.SelectKeyword);
14391
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.GroupKeyword);
14401
Debug.Assert(this.
CurrentToken
.ContextualKind == SyntaxKind.IntoKeyword);
14532
if (requireOneElement || this.
CurrentToken
.Kind != closeTokenKind)
14549
if (this.
CurrentToken
.Kind == closeTokenKind)
14560
nodes.AddSeparator(this.
CurrentToken
.Kind == SyntaxKind.SemicolonToken
14567
if (this.
CurrentToken
.Kind == closeTokenKind)
14602
if (this.
CurrentToken
.Kind == separatorTokenKind)
14607
if (allowSemicolonAsSeparator && this.
CurrentToken
.Kind is SyntaxKind.SemicolonToken)
14696
if (this.
CurrentToken
.Kind == SyntaxKind.EndOfFileToken) return node;
14698
while (this.
CurrentToken
.Kind != SyntaxKind.EndOfFileToken)
Parser\SyntaxParser.cs (12)
488
var ct = this.
CurrentToken
;
498
=> this.
CurrentToken
.Kind == kind ? this.EatToken() : null;
525
var ct = this.
CurrentToken
;
533
return CreateMissingToken(kind, this.
CurrentToken
.Kind);
541
var ct = this.
CurrentToken
;
548
var replacement = CreateMissingToken(expected, this.
CurrentToken
.Kind);
578
if (this.
CurrentToken
.Kind != kind)
592
if (this.
CurrentToken
.Kind != kind)
611
var token = this.
CurrentToken
;
649
if (this.
CurrentToken
.ContextualKind != kind)
663
var contextualKind = this.
CurrentToken
.ContextualKind;
847
var token = this.
CurrentToken
;