Home | History | Annotate | Download | only in SemaObjC
      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