@@ -14,13 +14,44 @@ var global = 0
14
14
// CHECK-LABEL: sil hidden @_T036pointer_conversion_nonaccessing_objc15testAddObserverySo8NSObjectC6object_AD8observertF
15
15
func testAddObserver( object: NSObject , observer: NSObject ) {
16
16
// CHECK: [[T0:%.*]] = global_addr @_T036pointer_conversion_nonaccessing_objc6globalSiv
17
- // CHECK: address_to_pointer [[T0]]
17
+ // CHECK: address_to_pointer [[T0]] :
18
18
object. addObserver ( observer, forKeyPath: " " , options: 0 , context: & global)
19
19
}
20
20
21
21
// CHECK-LABEL: sil hidden @_T036pointer_conversion_nonaccessing_objc18testRemoveObserverySo8NSObjectC6object_AD8observertF
22
22
func testRemoveObserver( object: NSObject , observer: NSObject ) {
23
23
// CHECK: [[T0:%.*]] = global_addr @_T036pointer_conversion_nonaccessing_objc6globalSiv
24
- // CHECK: address_to_pointer [[T0]]
24
+ // CHECK: address_to_pointer [[T0]] :
25
25
object. removeObserver ( observer, forKeyPath: " " , context: & global)
26
26
}
27
+
28
+ // rdar://33850465
29
+ // Make sure this applies to AnyObject dispatch, too.
30
+
31
+ // CHECK-LABEL: sil hidden @_T036pointer_conversion_nonaccessing_objc28testDynamicForcedAddObserveryyXl6object_So8NSObjectC8observertF
32
+ func testDynamicForcedAddObserver( object: AnyObject , observer: NSObject ) {
33
+ // CHECK: [[T0:%.*]] = global_addr @_T036pointer_conversion_nonaccessing_objc6globalSiv
34
+ // CHECK: address_to_pointer [[T0]] :
35
+ object. addObserver!( observer, forKeyPath: " " , options: 0 , context: & global)
36
+ }
37
+
38
+ // CHECK-LABEL: sil hidden @_T036pointer_conversion_nonaccessing_objc31testDynamicForcedRemoveObserveryyXl6object_So8NSObjectC8observertF
39
+ func testDynamicForcedRemoveObserver( object: AnyObject , observer: NSObject ) {
40
+ // CHECK: [[T0:%.*]] = global_addr @_T036pointer_conversion_nonaccessing_objc6globalSiv
41
+ // CHECK: address_to_pointer [[T0]] :
42
+ object. removeObserver!( observer, forKeyPath: " " , context: & global)
43
+ }
44
+
45
+ // CHECK-LABEL: sil hidden @_T036pointer_conversion_nonaccessing_objc30testDynamicOptionalAddObserveryyXl6object_So8NSObjectC8observertF
46
+ func testDynamicOptionalAddObserver( object: AnyObject , observer: NSObject ) {
47
+ // CHECK: [[T0:%.*]] = global_addr @_T036pointer_conversion_nonaccessing_objc6globalSiv
48
+ // CHECK: address_to_pointer [[T0]] :
49
+ object. addObserver ? ( observer, forKeyPath: " " , options: 0 , context: & global)
50
+ }
51
+
52
+ // CHECK-LABEL: sil hidden @_T036pointer_conversion_nonaccessing_objc33testDynamicOptionalRemoveObserveryyXl6object_So8NSObjectC8observertF
53
+ func testDynamicOptionalRemoveObserver( object: AnyObject , observer: NSObject ) {
54
+ // CHECK: [[T0:%.*]] = global_addr @_T036pointer_conversion_nonaccessing_objc6globalSiv
55
+ // CHECK: address_to_pointer [[T0]] :
56
+ object. removeObserver ? ( observer, forKeyPath: " " , context: & global)
57
+ }
0 commit comments