提交 a8629bfb 编写于 作者: C CyrusNajmabadi

Remove usage of TypeSwitch.

上级 bd05d737
......@@ -6,7 +6,6 @@
using Microsoft.CodeAnalysis.CSharp.Extensions;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Editor.Implementation.Highlighting;
using Microsoft.CodeAnalysis.Shared.Extensions;
using Microsoft.CodeAnalysis.Text;
namespace Microsoft.CodeAnalysis.Editor.CSharp.KeywordHighlighting.KeywordHighlighters
......@@ -16,41 +15,38 @@ internal abstract class AbstractAsyncHighlighter<TNode> : AbstractKeywordHighlig
protected void HighlightRelatedKeywords(SyntaxNode node, List<TextSpan> spans)
{
// Highlight async keyword
node.TypeSwitch(
(MethodDeclarationSyntax methodDeclaration) =>
{
switch (node)
{
case MethodDeclarationSyntax methodDeclaration:
var asyncModifier = methodDeclaration.Modifiers.FirstOrDefault(m => m.Kind() == SyntaxKind.AsyncKeyword);
if (asyncModifier.Kind() != SyntaxKind.None)
{
spans.Add(asyncModifier.Span);
}
},
(SimpleLambdaExpressionSyntax simpleLambda) =>
{
break;
case SimpleLambdaExpressionSyntax simpleLambda:
if (simpleLambda.AsyncKeyword.Kind() == SyntaxKind.AsyncKeyword)
{
spans.Add(simpleLambda.AsyncKeyword.Span);
}
},
(ParenthesizedLambdaExpressionSyntax parenthesizedLambda) =>
{
break;
case ParenthesizedLambdaExpressionSyntax parenthesizedLambda:
if (parenthesizedLambda.AsyncKeyword.Kind() == SyntaxKind.AsyncKeyword)
{
spans.Add(parenthesizedLambda.AsyncKeyword.Span);
}
},
(AnonymousMethodExpressionSyntax anonymousMethod) =>
{
break;
case AnonymousMethodExpressionSyntax anonymousMethod:
if (anonymousMethod.AsyncKeyword.Kind() == SyntaxKind.AsyncKeyword)
{
spans.Add(anonymousMethod.AsyncKeyword.Span);
}
});
break;
// Highlight await keywords
node.TypeSwitch(
(AwaitExpressionSyntax awaitExpression) =>
{
case AwaitExpressionSyntax awaitExpression:
// Note if there is already a highlight for the previous token, merge it
// with this span. That way, we highlight nested awaits with a single span.
var handled = false;
......@@ -71,7 +67,8 @@ protected void HighlightRelatedKeywords(SyntaxNode node, List<TextSpan> spans)
{
spans.Add(awaitToken.Span);
}
});
break;
}
foreach (var child in node.ChildNodes())
{
......@@ -83,4 +80,4 @@ protected void HighlightRelatedKeywords(SyntaxNode node, List<TextSpan> spans)
}
}
}
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册