Skip to content

Commit 7d89e49

Browse files
committed
Unified: Add more static name binding tests
1 parent 9837879 commit 7d89e49

1 file changed

Lines changed: 18 additions & 7 deletions

File tree

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

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,29 @@ class A {
22
class B {
33
class C {}
44
}
5+
6+
static func f() {}
57
}
68

7-
class D: A {} // $ access=A
8-
class E: D.B {} // $ access=D access=A.B
9+
class D: A { // $ access=A
10+
static func f(x: Int) {} // $ access=Int
11+
}
12+
class E: D.B {} // $ access=D access=A.B
913

1014
// Members of base classes can be accessed through derived classes
1115
func t1() {
12-
let x1: D = nil; // $ access=D
13-
let x2: D.B = nil; // $ access=D access=A.B
14-
let x3: D.B.C = nil; // $ access=D access=A.B access=A.B.C
16+
let x1: D = nil // $ access=D
17+
let x2: D.B = nil // $ access=D access=A.B
18+
let x3: D.B.C = nil // $ access=D access=A.B access=A.B.C
1519

1620
// The base class of 'E' is itself resolved through inheritance
17-
let x4: E = nil; // $ access=E
18-
let x5: E.C = nil; // $ access=E access=A.B.C
21+
let x4: E = nil // $ access=E
22+
let x5: E.C = nil // $ access=E access=A.B.C
23+
24+
let x6 = A.init() // $ access=A access=A.init
25+
let x7 = D.init() // $ access=D $ MISSING: access=A.init $ SPURIOUS: access=D.init
26+
27+
let x8 = A.f() // $ access=A access=A.f
28+
let x9 = D.f() // $ access=D access=D.f -- type inference should filter away the `D.f` target $ MISSING: access=A.f
29+
let x10 = D.f(x: 0) // $ access=D access=D.f $ MISSING: access=A.f -- type inference should filter away the `A.f` target
1930
}

0 commit comments

Comments
 (0)