Skip to content

Commit 6683565

Browse files
committed
C#: Allow abstract modifier on interface members
1 parent dacb044 commit 6683565

File tree

2 files changed

+2
-10
lines changed

2 files changed

+2
-10
lines changed

csharp/extractor/Semmle.Extraction.CSharp/Entities/Modifier.cs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,11 @@ public static void HasModifier(Context cx, TextWriter trapFile, IEntity target,
7272

7373
public static void ExtractModifiers(Context cx, TextWriter trapFile, IEntity key, ISymbol symbol)
7474
{
75-
var interfaceDefinition = symbol.ContainingType is not null
76-
&& symbol.ContainingType.Kind == SymbolKind.NamedType
77-
&& symbol.ContainingType.TypeKind == TypeKind.Interface;
78-
7975
HasAccessibility(cx, trapFile, key, symbol.DeclaredAccessibility);
8076
if (symbol.Kind == SymbolKind.ErrorType)
8177
trapFile.has_modifiers(key, Modifier.Create(cx, Accessibility.Public));
8278

83-
if (symbol.IsAbstract && (symbol.Kind != SymbolKind.NamedType || ((INamedTypeSymbol)symbol).TypeKind != TypeKind.Interface) && !interfaceDefinition)
79+
if (symbol.IsAbstract && (symbol.Kind != SymbolKind.NamedType || ((INamedTypeSymbol)symbol).TypeKind != TypeKind.Interface))
8480
HasModifier(cx, trapFile, key, "abstract");
8581

8682
if (symbol.IsSealed)
@@ -94,10 +90,6 @@ public static void ExtractModifiers(Context cx, TextWriter trapFile, IEntity key
9490
if (symbol.IsVirtual)
9591
HasModifier(cx, trapFile, key, "virtual");
9692

97-
// For some reason, method in interfaces are "virtual", not "abstract"
98-
if (symbol.IsAbstract && interfaceDefinition)
99-
HasModifier(cx, trapFile, key, "virtual");
100-
10193
if (symbol.Kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsReadOnly)
10294
HasModifier(cx, trapFile, key, "readonly");
10395

csharp/ql/test/library-tests/modifiers/Modifiers.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
| Modifiers.cs:57:30:57:32 | get_P3 | file://:0:0:0:0 | private |
4646
| Modifiers.cs:57:47:57:49 | set_P3 | file://:0:0:0:0 | private |
4747
| Modifiers.cs:60:22:60:23 | I1 | file://:0:0:0:0 | public |
48+
| Modifiers.cs:62:14:62:15 | M1 | file://:0:0:0:0 | abstract |
4849
| Modifiers.cs:62:14:62:15 | M1 | file://:0:0:0:0 | public |
49-
| Modifiers.cs:62:14:62:15 | M1 | file://:0:0:0:0 | virtual |
5050
| Modifiers.cs:63:14:63:15 | M2 | file://:0:0:0:0 | public |
5151
| Modifiers.cs:63:14:63:15 | M2 | file://:0:0:0:0 | virtual |

0 commit comments

Comments
 (0)