Skip to content

Commit c0b8e85

Browse files
committed
C#: Add library support for required members.
1 parent 2d46dd2 commit c0b8e85

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

csharp/ql/lib/semmle/code/csharp/Member.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ class Modifiable extends Declaration, @modifiable {
9090
/** Holds if this declaration is `const`. */
9191
predicate isConst() { this.hasModifier("const") }
9292

93+
/** Holds if this declaration has the modifier `required`. */
94+
predicate isRequired() { this.hasModifier("required") }
95+
9396
/** Holds if this declaration is `unsafe`. */
9497
predicate isUnsafe() {
9598
this.hasModifier("unsafe") or
@@ -178,6 +181,8 @@ class Member extends DotNet::Member, Modifiable, @member {
178181
override predicate isAbstract() { Modifiable.super.isAbstract() }
179182

180183
override predicate isStatic() { Modifiable.super.isStatic() }
184+
185+
override predicate isRequired() { Modifiable.super.isRequired() }
181186
}
182187

183188
private class TOverridable = @virtualizable or @callable_accessor;

csharp/ql/lib/semmle/code/dotnet/Declaration.qll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ class Member extends Declaration, @dotnet_member {
8080
/** Holds if this member is `static`. */
8181
predicate isStatic() { none() }
8282

83+
/** Holds if this member is declared `required`. */
84+
predicate isRequired() { none() }
85+
8386
/**
8487
* Holds if this member has name `name` and is defined in type `type`
8588
* with namespace `namespace`.

0 commit comments

Comments
 (0)