Skip to content

Commit cfe9ddd

Browse files
committed
Tests: Factor unavailable struct tests into separate file.
1 parent 604f391 commit cfe9ddd

File tree

2 files changed

+71
-58
lines changed

2 files changed

+71
-58
lines changed

test/IRGen/unavailable_decl_optimization.swift

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -13,61 +13,3 @@ public let globalConstant = true
1313
// CHECK-STRIP-NOT: s4Test15unavailableFuncyyF
1414
@available(*, unavailable)
1515
public func unavailableFunc() {}
16-
17-
@available(*, unavailable)
18-
public struct UnavailableStruct<T> {
19-
// CHECK-NO-STRIP: s4Test17UnavailableStructV8propertyxvg
20-
// CHECK-NO-STRIP: s4Test17UnavailableStructV8propertyxvs
21-
// CHECK-NO-STRIP: s4Test17UnavailableStructV8propertyxvM
22-
// CHECK-STRIP-NOT: s4Test17UnavailableStructV8propertyxvg
23-
// CHECK-STRIP-NOT: s4Test17UnavailableStructV8propertyxvs
24-
// CHECK-STRIP-NOT: s4Test17UnavailableStructV8propertyxvM
25-
public var property: T
26-
27-
// CHECK-NO-STRIP: s4Test17UnavailableStructVyACyxGxcfC
28-
// CHECK-NO-STRIP: s4Test17UnavailableStructVMa
29-
// CHECK-STRIP-NOT: s4Test17UnavailableStructVyACyxGxcfC
30-
// CHECK-STRIP-NOT: s4Test17UnavailableStructVMa
31-
public init(_ t: T) {
32-
self.property = t
33-
}
34-
35-
// CHECK-NO-STRIP: s4Test17UnavailableStructV6methodyyF
36-
// CHECK-STRIP-NOT: s4Test17UnavailableStructV6methodyyF
37-
public func method() {}
38-
}
39-
40-
@available(*, unavailable)
41-
extension UnavailableStruct {
42-
// CHECK-NO-STRIP: s4Test17UnavailableStructV15extensionMethodyyF
43-
// CHECK-STRIP-NOT: s4Test17UnavailableStructV15extensionMethodyyF
44-
public func extensionMethod() {}
45-
}
46-
47-
public struct S<T> {
48-
// CHECK-NO-STRIP: s4Test1SV19unavailablePropertyxvg
49-
// CHECK-NO-STRIP: s4Test1SV19unavailablePropertyxvs
50-
// CHECK-NO-STRIP: s4Test1SV19unavailablePropertyxvM
51-
// CHECK-STRIP-NOT: s4Test1SV19unavailablePropertyxvg
52-
// CHECK-STRIP-NOT: s4Test1SV19unavailablePropertyxvs
53-
// CHECK-STRIP-NOT: s4Test1SV19unavailablePropertyxvM
54-
@available(*, unavailable)
55-
public var unavailableProperty: T
56-
57-
// CHECK-NO-STRIP: s4Test1SVyACyxGxcfC
58-
// CHECK-STRIP-NOT: s4Test1SVyACyxGxcfC
59-
@available(*, unavailable)
60-
public init(_ t: T) { fatalError() }
61-
62-
// CHECK-NO-STRIP: s4Test1SV17unavailableMethodyyF
63-
// CHECK-STRIP-NOT: s4Test1SV17unavailableMethodyyF
64-
@available(*, unavailable)
65-
public func unavailableMethod() {}
66-
}
67-
68-
@available(*, unavailable)
69-
extension S {
70-
// CHECK-NO-STRIP: s4Test1SV28methodInUnavailableExtensionyyF
71-
// CHECK-STRIP-NOT: s4Test1SV28methodInUnavailableExtensionyyF
72-
public func methodInUnavailableExtension() {}
73-
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
// RUN: %target-swift-frontend -parse-as-library -module-name Test -validate-tbd-against-ir=missing %s -emit-ir | %FileCheck %s --check-prefixes=CHECK,CHECK-NO-STRIP
2+
3+
// RUN: %target-swift-frontend -parse-as-library -module-name Test -validate-tbd-against-ir=missing -unavailable-decl-optimization=complete %s -emit-ir | %FileCheck %s --check-prefixes=CHECK,CHECK-STRIP
4+
5+
// CHECK: s4Test15AvailableStructVMn
6+
7+
// CHECK-NO-STRIP: s4Test17UnavailableStructVMn
8+
// CHECK-STRIP-NOT: s4Test17UnavailableStructVMn
9+
10+
public struct AvailableStruct<T> {
11+
// CHECK-NO-STRIP: s4Test15AvailableStructV19unavailablePropertyxvg
12+
// CHECK-NO-STRIP: s4Test15AvailableStructV19unavailablePropertyxvs
13+
// CHECK-NO-STRIP: s4Test15AvailableStructV19unavailablePropertyxvM
14+
// CHECK-STRIP-NOT: s4Test15AvailableStructV19unavailablePropertyxvg
15+
// CHECK-STRIP-NOT: s4Test15AvailableStructV19unavailablePropertyxvs
16+
// CHECK-STRIP-NOT: s4Test15AvailableStructV19unavailablePropertyxvM
17+
@available(*, unavailable)
18+
public var unavailableProperty: T
19+
20+
// CHECK-NO-STRIP: s4Test15AvailableStructVyACyxGxcfC
21+
// CHECK-STRIP-NOT: s4Test15AvailableStructVyACyxGxcfC
22+
@available(*, unavailable)
23+
public init(_ t: T) { fatalError() }
24+
25+
// CHECK: s4Test15AvailableStructVMa
26+
27+
// CHECK-NO-STRIP: s4Test15AvailableStructV17unavailableMethodyyF
28+
// CHECK-STRIP-NOT: s4Test15AvailableStructV17unavailableMethodyyF
29+
@available(*, unavailable)
30+
public func unavailableMethod() {}
31+
}
32+
33+
@available(*, unavailable)
34+
extension AvailableStruct {
35+
// CHECK-NO-STRIP: s4Test15AvailableStructV28methodInUnavailableExtensionyyF
36+
// CHECK-STRIP-NOT: s4Test15AvailableStructV28methodInUnavailableExtensionyyF
37+
public func methodInUnavailableExtension() {}
38+
}
39+
40+
@available(*, unavailable)
41+
public struct UnavailableStruct<T> {
42+
// CHECK-NO-STRIP: s4Test17UnavailableStructV8propertyxvg
43+
// CHECK-NO-STRIP: s4Test17UnavailableStructV8propertyxvs
44+
// CHECK-NO-STRIP: s4Test17UnavailableStructV8propertyxvM
45+
// CHECK-STRIP-NOT: s4Test17UnavailableStructV8propertyxvg
46+
// CHECK-STRIP-NOT: s4Test17UnavailableStructV8propertyxvs
47+
// CHECK-STRIP-NOT: s4Test17UnavailableStructV8propertyxvM
48+
public var property: T
49+
50+
// CHECK-NO-STRIP: s4Test17UnavailableStructVyACyxGxcfC
51+
// CHECK-NO-STRIP: s4Test17UnavailableStructVMa
52+
// CHECK-STRIP-NOT: s4Test17UnavailableStructVyACyxGxcfC
53+
// CHECK-STRIP-NOT: s4Test17UnavailableStructVMa
54+
public init(_ t: T) {
55+
self.property = t
56+
}
57+
58+
// CHECK-NO-STRIP: s4Test17UnavailableStructV6methodyyF
59+
// CHECK-STRIP-NOT: s4Test17UnavailableStructV6methodyyF
60+
public func method() {}
61+
}
62+
63+
@available(*, unavailable)
64+
extension UnavailableStruct {
65+
// CHECK-NO-STRIP: s4Test17UnavailableStructV15extensionMethodyyF
66+
// CHECK-STRIP-NOT: s4Test17UnavailableStructV15extensionMethodyyF
67+
public func extensionMethod() {}
68+
}
69+
70+
// CHECK-NO-STRIP: s4Test17UnavailableStructVMa
71+
// CHECK-STRIP-NOT: s4Test17UnavailableStructVMa

0 commit comments

Comments
 (0)