提交 5d250453 编写于 作者: S Sam Harwell

Use switch expressions to simplify GetAccessibilityAndModifiers

上级 3509e34d
......@@ -1651,80 +1651,39 @@ private static void GetAccessibilityAndModifiers(SyntaxTokenList modifierList, o
foreach (var token in modifierList)
{
switch (token.Kind())
accessibility = (token.Kind(), accessibility) switch
{
case SyntaxKind.PublicKeyword:
accessibility = Accessibility.Public;
break;
case SyntaxKind.PrivateKeyword:
accessibility = accessibility == Accessibility.Protected
? Accessibility.ProtectedAndInternal
: Accessibility.Private;
break;
case SyntaxKind.InternalKeyword:
accessibility = accessibility == Accessibility.Protected
? Accessibility.ProtectedOrInternal
: Accessibility.Internal;
break;
case SyntaxKind.ProtectedKeyword:
accessibility = accessibility == Accessibility.Private
? Accessibility.ProtectedAndInternal
: accessibility == Accessibility.Internal
? Accessibility.ProtectedOrInternal
: Accessibility.Protected;
break;
case SyntaxKind.AbstractKeyword:
modifiers |= DeclarationModifiers.Abstract;
break;
case SyntaxKind.NewKeyword:
modifiers |= DeclarationModifiers.New;
break;
case SyntaxKind.OverrideKeyword:
modifiers |= DeclarationModifiers.Override;
break;
case SyntaxKind.VirtualKeyword:
modifiers |= DeclarationModifiers.Virtual;
break;
case SyntaxKind.StaticKeyword:
modifiers |= DeclarationModifiers.Static;
break;
case SyntaxKind.AsyncKeyword:
modifiers |= DeclarationModifiers.Async;
break;
case SyntaxKind.ConstKeyword:
modifiers |= DeclarationModifiers.Const;
break;
(SyntaxKind.PublicKeyword, _) => Accessibility.Public,
case SyntaxKind.ReadOnlyKeyword:
modifiers |= DeclarationModifiers.ReadOnly;
break;
(SyntaxKind.PrivateKeyword, Accessibility.Protected) => Accessibility.ProtectedAndInternal,
(SyntaxKind.PrivateKeyword, _) => Accessibility.Private,
case SyntaxKind.SealedKeyword:
modifiers |= DeclarationModifiers.Sealed;
break;
(SyntaxKind.InternalKeyword, Accessibility.Protected) => Accessibility.ProtectedOrInternal,
(SyntaxKind.InternalKeyword, _) => Accessibility.Internal,
case SyntaxKind.UnsafeKeyword:
modifiers |= DeclarationModifiers.Unsafe;
break;
(SyntaxKind.ProtectedKeyword, Accessibility.Private) => Accessibility.ProtectedAndInternal,
(SyntaxKind.ProtectedKeyword, Accessibility.Internal) => Accessibility.ProtectedOrInternal,
(SyntaxKind.ProtectedKeyword, _) => Accessibility.Protected,
case SyntaxKind.PartialKeyword:
modifiers |= DeclarationModifiers.Partial;
break;
_ => accessibility,
};
case SyntaxKind.RefKeyword:
modifiers |= DeclarationModifiers.Ref;
break;
}
modifiers |= token.Kind() switch
{
SyntaxKind.AbstractKeyword => DeclarationModifiers.Abstract,
SyntaxKind.NewKeyword => DeclarationModifiers.New,
SyntaxKind.OverrideKeyword => DeclarationModifiers.Override,
SyntaxKind.VirtualKeyword => DeclarationModifiers.Virtual,
SyntaxKind.StaticKeyword => DeclarationModifiers.Static,
SyntaxKind.AsyncKeyword => DeclarationModifiers.Async,
SyntaxKind.ConstKeyword => DeclarationModifiers.Const,
SyntaxKind.ReadOnlyKeyword => DeclarationModifiers.ReadOnly,
SyntaxKind.SealedKeyword => DeclarationModifiers.Sealed,
SyntaxKind.UnsafeKeyword => DeclarationModifiers.Unsafe,
SyntaxKind.PartialKeyword => DeclarationModifiers.Partial,
SyntaxKind.RefKeyword => DeclarationModifiers.Ref,
_ => DeclarationModifiers.None,
};
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册