Skip to content

Commit 2bb5a15

Browse files
authored
Merge pull request #45999 from diryboy/qqe
Classify ??= as an operator.
2 parents f2ddeba + 6f40a67 commit 2bb5a15

File tree

4 files changed

+8
-1
lines changed

4 files changed

+8
-1
lines changed

src/Compilers/CSharp/Portable/Syntax/SyntaxKindFacts.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public static IEnumerable<SyntaxKind> GetPreprocessorKeywordKinds()
145145

146146
public static bool IsPunctuation(SyntaxKind kind)
147147
{
148-
return kind >= SyntaxKind.TildeToken && kind <= SyntaxKind.PercentEqualsToken;
148+
return kind >= SyntaxKind.TildeToken && kind <= SyntaxKind.QuestionQuestionEqualsToken;
149149
}
150150

151151
public static bool IsLanguagePunctuation(SyntaxKind kind)

src/EditorFeatures/CSharpTest/Classification/SyntacticClassifierTests.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3141,6 +3141,7 @@ public void method()
31413141
i ^= i;
31423142
i <<= i;
31433143
i >>= i;
3144+
i ??= i;
31443145
object s = x => x + 1;
31453146
Point point;
31463147
unsafe
@@ -3374,6 +3375,10 @@ public void method()
33743375
Operators.GreaterThanGreaterThanEquals,
33753376
Identifier("i"),
33763377
Punctuation.Semicolon,
3378+
Identifier("i"),
3379+
Operators.QuestionQuestionEquals,
3380+
Identifier("i"),
3381+
Punctuation.Semicolon,
33773382
Keyword("object"),
33783383
Local("s"),
33793384
Operators.Equals,

src/EditorFeatures/TestUtilities/Classification/FormattedClassifications.Operators.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ private static FormattedClassification New(string text)
5353
public static FormattedClassification PlusEquals { get; } = New("+=");
5454
public static FormattedClassification PlusPlus { get; } = New("++");
5555
public static FormattedClassification QuestionMark { get; } = New("?");
56+
public static FormattedClassification QuestionQuestionEquals { get; } = New("??=");
5657
public static FormattedClassification Slash { get; } = New("/");
5758
public static FormattedClassification SlashEquals { get; } = New("/=");
5859
public static FormattedClassification Tilde { get; } = New("~");

src/Workspaces/CSharp/Portable/Classification/ClassificationHelpers.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ private static bool IsOperator(this SyntaxKind kind)
440440
case SyntaxKind.MinusEqualsToken:
441441
case SyntaxKind.CaretEqualsToken:
442442
case SyntaxKind.PercentEqualsToken:
443+
case SyntaxKind.QuestionQuestionEqualsToken:
443444
return true;
444445

445446
default:

0 commit comments

Comments
 (0)