Skip to content

Commit 0215e37

Browse files
committed
Add Verifier Tests for A Tricky Typealias Miscompile
1 parent 874cc85 commit 0215e37

File tree

4 files changed

+50
-0
lines changed

4 files changed

+50
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// expected-provides{{Inner}}
2+
// expected-private-member{{main.Inner.init}}
3+
public struct Inner {}
4+
5+
// expected-provides{{Foo}}
6+
public typealias Foo = () -> (Inner)
7+
8+
// expected-provides{{blah}}
9+
public func blah(foo: Foo) {}
10+
11+
// expected-provides{{defaultFoo}}
12+
public var defaultFoo: Foo = {
13+
return Inner()
14+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// expected-provides{{Inner}}
2+
// expected-provides{{defaultFoo}}
3+
// expected-provides{{blah}}
4+
// expected-provides{{Foo}}
5+
// expected-provides{{??}}
6+
public func blah(foo: Foo?) {
7+
blah(foo: foo ?? defaultFoo)
8+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// expected-provides{{Inner}}
2+
// expected-cascading-member{{main.Inner.init}}
3+
public struct Inner {}
4+
5+
// expected-provides{{Foo}}
6+
public typealias Foo = () -> (Inner)
7+
8+
// expected-provides{{blah}}
9+
public func blah(foo: Foo) {}
10+
11+
// expected-provides{{defaultFoo}}
12+
public var defaultFoo: Foo = {
13+
return Inner()
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// FIXME: This dependency ONLY occurs with private dependencies. Otherwise we
2+
// rely on the interface hash changing to cause this file to be rebuilt, which
3+
// will *not* work with type fingerprints enabled.
4+
// See rdar://63984581
5+
// fixme-expected-provides{{Inner}}
6+
7+
// expected-provides{{defaultFoo}}
8+
// expected-provides{{blah}}
9+
// expected-provides{{Optional}}
10+
// expected-provides{{Foo}}
11+
// expected-provides{{??}}
12+
public func blah(foo: Optional<Foo>) {
13+
blah(foo: foo ?? defaultFoo)
14+
}

0 commit comments

Comments
 (0)