Skip to content

Commit e77e8b7

Browse files
authored
Merge pull request #22963 from hvitved/unified/static-namebinding-enum-static
Unified: Consider all class-like decls as static members in name binding
2 parents 1c866c7 + 5a28a4b commit e77e8b7

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

‎unified/ql/lib/codeql/unified/internal/NameBindingPlugin.qll‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ predicate isStaticMember(Member member) {
9999
exists(ClassLikeDeclaration cls | cls.getAMember() = member |
100100
not any(NameBindingPlugin p).isInstanceMember(cls, member) or
101101
member instanceof ConstructorDeclaration or
102-
member instanceof TypeAliasDeclaration
102+
member instanceof TypeAliasDeclaration or
103+
member instanceof ClassLikeDeclaration
103104
)
104105
or
105106
member = any(TopLevel t).getBody().getAStmt()

‎unified/ql/test/library-tests/static-name-binding/test.swift‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ class A {
66
}
77

88
typealias BAlias = B // $ access=A.B
9+
10+
enum Enum { case empty }
911
}
1012

1113
let x1: B = nil // $ access=top.B
1214
let x2: A.B = nil // $ access=A access=A.B
1315
let x3: A.B.C = nil // $ access=A access=A.B access=A.B.C
1416
let x4: A.BAlias.C = nil // $ access=A access=A.BAlias access=A.B.C
17+
let x5 = A.Enum.empty // $ access=A access=A.Enum access=A.Enum.empty
1518

1619
class D {
1720
let x1: B = nil // $ access=top.B

0 commit comments

Comments
 (0)