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 27