150
|
1 // RUN: %clang_cc1 -fobjc-arc -fobjc-runtime-has-weak -Wnullable-to-nonnull-conversion %s -verify
|
|
2
|
|
3
|
|
4 // rdar://19985330
|
|
5 @interface NSObject @end
|
|
6
|
|
7 @class NSFoo;
|
|
8 void foo (NSFoo * _Nonnull);
|
|
9
|
|
10 @interface NSBar : NSObject
|
|
11 @property(weak) NSFoo *property1;
|
|
12 @end
|
|
13
|
|
14 #pragma clang assume_nonnull begin
|
|
15 @interface NSBar ()
|
|
16 @property(weak) NSFoo *property2;
|
|
17 @end
|
|
18
|
|
19 #pragma clang assume_nonnull end
|
|
20
|
|
21 @implementation NSBar
|
|
22 - (void) Meth {
|
|
23 foo (self.property1); // no warning because nothing is inferred
|
|
24 foo (self.property2); // expected-warning {{implicit conversion from nullable pointer 'NSFoo * _Nullable' to non-nullable pointer type 'NSFoo * _Nonnull'}}
|
|
25 }
|
|
26 @end
|