Skip to content

Commit db2de9b

Browse files
Code review update: Rewrote GetNameOrIdentifier in NamedTypeHelpers.
1 parent 6acc49a commit db2de9b

1 file changed

Lines changed: 16 additions & 5 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers/Helpers/NamedTypeHelpers.cs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,22 @@ internal static bool IsContainedInNativeMethodsClass(SyntaxNode syntax)
7979

8080
internal static string GetNameOrIdentifier(MemberDeclarationSyntax member)
8181
{
82-
string name = null;
83-
name = name ?? (member as TypeDeclarationSyntax)?.Identifier.Text;
84-
name = name ?? (member as EnumDeclarationSyntax)?.Identifier.Text;
85-
name = name ?? (member as DelegateDeclarationSyntax)?.Identifier.Text;
86-
return name;
82+
switch (member.Kind())
83+
{
84+
case SyntaxKind.ClassDeclaration:
85+
case SyntaxKind.InterfaceDeclaration:
86+
case SyntaxKind.StructDeclaration:
87+
return ((TypeDeclarationSyntax)member).Identifier.Text;
88+
89+
case SyntaxKind.EnumDeclaration:
90+
return ((EnumDeclarationSyntax)member).Identifier.Text;
91+
92+
case SyntaxKind.DelegateDeclaration:
93+
return ((DelegateDeclarationSyntax)member).Identifier.Text;
94+
95+
default:
96+
throw new InvalidOperationException("Unhandled declaration kind: " + member.Kind());
97+
}
8798
}
8899

89100
internal static Location GetNameOrIdentifierLocation(SyntaxNode member)

0 commit comments

Comments
 (0)