Skip to content
This repository was archived by the owner on Sep 24, 2020. It is now read-only.

Commit 4fec0c3

Browse files
committed
Don't output accessibility for static constructors.
1 parent 6e6d777 commit 4fec0c3

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -976,18 +976,31 @@ public static Modifiers ModifierFromAccessibility(Accessibility accessibility)
976976
}
977977
}
978978

979+
bool NeedsAccessibility(IMember member)
980+
{
981+
if (member.DeclaringType.Kind == TypeKind.Interface || member.IsExplicitInterfaceImplementation)
982+
return false;
983+
switch (member.SymbolKind) {
984+
case SymbolKind.Constructor:
985+
return !member.IsStatic;
986+
case SymbolKind.Destructor:
987+
return false;
988+
default:
989+
return true;
990+
}
991+
}
992+
979993
Modifiers GetMemberModifiers(IMember member)
980994
{
981-
bool isInterfaceMember = member.DeclaringType.Kind == TypeKind.Interface;
982995
Modifiers m = Modifiers.None;
983-
if (this.ShowAccessibility && !isInterfaceMember && !member.IsExplicitInterfaceImplementation) {
996+
if (this.ShowAccessibility && NeedsAccessibility(member)) {
984997
m |= ModifierFromAccessibility (member.Accessibility);
985998
}
986999
if (this.ShowModifiers) {
9871000
if (member.IsStatic) {
9881001
m |= Modifiers.Static;
9891002
} else {
990-
if (member.IsAbstract && !isInterfaceMember)
1003+
if (member.IsAbstract && member.DeclaringType.Kind != TypeKind.Interface)
9911004
m |= Modifiers.Abstract;
9921005
if (member.IsOverride)
9931006
m |= Modifiers.Override;

0 commit comments

Comments
 (0)