Skip to content

Commit 19e9197

Browse files
committed
C#: The field access should be on this for it to be compatible with readonly.
1 parent 8108c72 commit 19e9197

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ predicate defTargetsField(AssignableDefinition def, Field f) {
2020
predicate isReadonlyCompatibleDefinition(AssignableDefinition def, Field f) {
2121
defTargetsField(def, f) and
2222
(
23-
def.getEnclosingCallable().(Constructor).getDeclaringType() = f.getDeclaringType()
23+
def.getEnclosingCallable().(StaticConstructor).getDeclaringType() = f.getDeclaringType()
24+
or
25+
def.getEnclosingCallable().(InstanceConstructor).getDeclaringType() = f.getDeclaringType() and
26+
def.getTargetAccess().(QualifiableExpr).getQualifier() instanceof ThisAccess
2427
or
2528
def instanceof AssignableDefinitions::InitializerDefinition
2629
)

0 commit comments

Comments
 (0)