@@ -19,6 +19,9 @@ func use(_: BadEnum) {} // expected-error {{use of undeclared type 'BadEnum'}}
19
19
func test( ) {
20
20
_ = producesOkayEnum ( )
21
21
_ = producesBadEnum ( ) // expected-error {{use of unresolved identifier 'producesBadEnum'}}
22
+
23
+ // Force a lookup of the ==
24
+ _ = Optional ( OkayEnum . noPayload) . map { $0 == . noPayload }
22
25
}
23
26
24
27
#else // TEST
@@ -30,6 +33,10 @@ public enum BadEnum {
30
33
case perfectlyOkayPayload( Int )
31
34
case problematic( Any , WrappedInt )
32
35
case alsoOkay( Any , Any , Any )
36
+
37
+ static public func == ( a: BadEnum , b: BadEnum ) -> Bool {
38
+ return false
39
+ }
33
40
}
34
41
// CHECK-LABEL: enum BadEnum {
35
42
// CHECK-RECOVERY-NOT: enum BadEnum
@@ -38,16 +45,22 @@ public enum OkayEnum {
38
45
case noPayload
39
46
case plainOldAlias( Any , UnwrappedInt )
40
47
case other( Int )
48
+
49
+ static public func == ( a: OkayEnum , b: OkayEnum ) -> Bool {
50
+ return false
51
+ }
41
52
}
42
53
// CHECK-LABEL: enum OkayEnum {
43
54
// CHECK-NEXT: case noPayload
44
55
// CHECK-NEXT: case plainOldAlias(Any, UnwrappedInt)
45
56
// CHECK-NEXT: case other(Int)
57
+ // CHECK-NEXT: static func ==(a: OkayEnum, b: OkayEnum) -> Bool
46
58
// CHECK-NEXT: }
47
59
// CHECK-RECOVERY-LABEL: enum OkayEnum {
48
60
// CHECK-RECOVERY-NEXT: case noPayload
49
61
// CHECK-RECOVERY-NEXT: case plainOldAlias(Any, Int32)
50
62
// CHECK-RECOVERY-NEXT: case other(Int)
63
+ // CHECK-RECOVERY-NEXT: static func ==(a: OkayEnum, b: OkayEnum) -> Bool
51
64
// CHECK-RECOVERY-NEXT: }
52
65
53
66
public enum OkayEnumWithSelfRefs {
0 commit comments