diff --git a/src/EditorFeatures/CSharpTest/Classification/SyntacticClassifierTests.cs b/src/EditorFeatures/CSharpTest/Classification/SyntacticClassifierTests.cs index 3a9914fc56863f6dd7756fbed68820c1f9eef45e..f0dfd7094dcb3aa2f5a87bed06640f7d01e550e3 100644 --- a/src/EditorFeatures/CSharpTest/Classification/SyntacticClassifierTests.cs +++ b/src/EditorFeatures/CSharpTest/Classification/SyntacticClassifierTests.cs @@ -4679,5 +4679,35 @@ public async Task TestUsingStaticDirective() Identifier("Console"), Punctuation.Semicolon); } + + [WorkItem(33039, "https://github.com/dotnet/roslyn/issues/33039")] + [Fact, Trait(Traits.Feature, Traits.Features.Classification)] + public async Task ForEachVariableStatement() + { + await TestInMethodAsync(@" +foreach (var (x, y) in new[] { (1, 2) }); +", + ControlKeyword("foreach"), + Punctuation.OpenParen, + Identifier("var"), + Punctuation.OpenParen, + Local("x"), + Punctuation.Comma, + Local("y"), + Punctuation.CloseParen, + ControlKeyword("in"), + Keyword("new"), + Punctuation.OpenBracket, + Punctuation.CloseBracket, + Punctuation.OpenCurly, + Punctuation.OpenParen, + Number("1"), + Punctuation.Comma, + Number("2"), + Punctuation.CloseParen, + Punctuation.CloseCurly, + Punctuation.CloseParen, + Punctuation.Semicolon); + } } } diff --git a/src/Workspaces/CSharp/Portable/Classification/ClassificationHelpers.cs b/src/Workspaces/CSharp/Portable/Classification/ClassificationHelpers.cs index 541cf08ac960876d94eb853d4ba46fbf9670a358..d810f09de17ea4ad6d3db07138d299307a80b617 100644 --- a/src/Workspaces/CSharp/Portable/Classification/ClassificationHelpers.cs +++ b/src/Workspaces/CSharp/Portable/Classification/ClassificationHelpers.cs @@ -114,6 +114,7 @@ private static bool IsControlStatementKind(SyntaxKind kind) case SyntaxKind.DoStatement: case SyntaxKind.ForStatement: case SyntaxKind.ForEachStatement: + case SyntaxKind.ForEachVariableStatement: // Checked Statements case SyntaxKind.IfStatement: case SyntaxKind.ElseClause: