Skip to content

Commit 38dd0a8

Browse files
committed
Tests: Factor unavailable enum tests into separate file.
1 parent 1b887e5 commit 38dd0a8

File tree

2 files changed

+56
-41
lines changed

2 files changed

+56
-41
lines changed

test/IRGen/unavailable_decl_optimization.swift

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,6 @@ extension UnavailableStruct {
4444
public func extensionMethod() {}
4545
}
4646

47-
@available(*, unavailable)
48-
public enum UnavailableEnum {
49-
case a, b
50-
51-
// CHECK-NO-STRIP: s4Test15UnavailableEnumO6methodyyF
52-
// CHECK-STRIP-NOT: s4Test15UnavailableEnumO6methodyyF
53-
public func method() {}
54-
55-
// CHECK-NO-STRIP: s4Test15UnavailableEnumO21__derived_enum_equalsySbAC_ACtFZ
56-
// CHECK-NO-STRIP: s4Test15UnavailableEnumO4hash4intoys6HasherVz_tF
57-
// CHECK-NO-STRIP: s4Test15UnavailableEnumO9hashValueSivg
58-
// CHECK-STRIP-NOT: s4Test15UnavailableEnumO21__derived_enum_equalsySbAC_ACtFZ
59-
// CHECK-STRIP-NOT: s4Test15UnavailableEnumO4hash4intoys6HasherVz_tF
60-
// CHECK-STRIP-NOT: s4Test15UnavailableEnumO9hashValueSivg
61-
}
62-
6347
@available(*, unavailable)
6448
public class UnavailableClass<T> {
6549
// CHECK-NO-STRIP: s4Test16UnavailableClassC8propertyxvg
@@ -113,18 +97,6 @@ extension S {
11397
public func methodInUnavailableExtension() {}
11498
}
11599

116-
public enum E {
117-
case a
118-
119-
@available(*, unavailable)
120-
case b
121-
122-
// CHECK-NO-STRIP: s4Test1EO17unavailableMethodyyF
123-
// CHECK-STRIP-NOT: s4Test1EO17unavailableMethodyyF
124-
@available(*, unavailable)
125-
public func unavailableMethod() {}
126-
}
127-
128100
public class C<T> {
129101
// CHECK-NO-STRIP: s4Test1CC19unavailablePropertyxvg
130102
// CHECK-NO-STRIP: s4Test1CC19unavailablePropertyxvs
@@ -149,20 +121,7 @@ public class C<T> {
149121

150122
// MARK: -
151123

152-
// MARK: UnavailableEnum
153-
154-
// CHECK-NO-STRIP: s4Test15UnavailableEnumOwug
155-
// CHECK-STRIP-NOT: s4Test15UnavailableEnumOwug
156-
157-
// CHECK-NO-STRIP: s4Test15UnavailableEnumOMa
158-
// CHECK-STRIP-NOT: s4Test15UnavailableEnumOMa
159-
160124
// MARK: UnavailableClass
161125

162126
// CHECK-NO-STRIP: s4Test16UnavailableClassCMa
163127
// CHECK-STRIP-NOT: s4Test16UnavailableClassCMa
164-
165-
// MARK: E
166-
167-
// CHECK: s4Test1EOwug
168-
// CHECK: s4Test1EOMa
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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: private constant [27 x i8] c"availableEnumAvailableCase\00"
6+
7+
// FIXME: Should this reflection metadata for an unavailable case be stripped?
8+
// CHECK: private constant [29 x i8] c"availableEnumUnavailableCase\00"
9+
10+
// CHECK-NO-STRIP: private constant [25 x i8] c"unavailableEnumFirstCase\00"
11+
// CHECK-STRIP-NOT: private constant [25 x i8] c"unavailableEnumFirstCase\00"
12+
13+
14+
public enum AvailableEnum {
15+
case availableEnumAvailableCase
16+
17+
@available(*, unavailable)
18+
case availableEnumUnavailableCase
19+
20+
// CHECK-NO-STRIP: s4Test13AvailableEnumO17unavailableMethodyyF
21+
// CHECK-STRIP-NOT: s4Test13AvailableEnumO17unavailableMethodyyF
22+
@available(*, unavailable)
23+
public func unavailableMethod() {}
24+
25+
// CHECK: s4Test13AvailableEnumO21__derived_enum_equalsySbAC_ACtFZ
26+
// CHECK: s4Test13AvailableEnumO4hash4intoys6HasherVz_tF
27+
// CHECK: s4Test13AvailableEnumO9hashValueSivg
28+
}
29+
30+
@available(*, unavailable)
31+
public enum UnavailableEnum {
32+
case unavailableEnumFirstCase
33+
34+
// CHECK-NO-STRIP: s4Test15UnavailableEnumO6methodyyF
35+
// CHECK-STRIP-NOT: s4Test15UnavailableEnumO6methodyyF
36+
public func method() {}
37+
38+
// CHECK-NO-STRIP: s4Test15UnavailableEnumO21__derived_enum_equalsySbAC_ACtFZ
39+
// CHECK-STRIP-NOT: s4Test15UnavailableEnumO21__derived_enum_equalsySbAC_ACtFZ
40+
41+
// CHECK-NO-STRIP: s4Test15UnavailableEnumO4hash4intoys6HasherVz_tF
42+
// CHECK-STRIP-NOT: s4Test15UnavailableEnumO4hash4intoys6HasherVz_tF
43+
44+
// CHECK-NO-STRIP: s4Test15UnavailableEnumO9hashValueSivg
45+
// CHECK-STRIP-NOT: s4Test15UnavailableEnumO9hashValueSivg
46+
}
47+
48+
// CHECK: s4Test13AvailableEnumOwug
49+
50+
// CHECK: s4Test13AvailableEnumOMa
51+
52+
// CHECK-NO-STRIP: s4Test15UnavailableEnumOwug
53+
// CHECK-STRIP-NOT: s4Test15UnavailableEnumOwug
54+
55+
// CHECK-NO-STRIP: s4Test15UnavailableEnumOMa
56+
// CHECK-STRIP-NOT: s4Test15UnavailableEnumOMa

0 commit comments

Comments
 (0)