| // RUN: %clang_cc1 -fobjc-arc -fobjc-runtime-has-weak -Wnullable-to-nonnull-conversion %s -verify |
| |
| |
| // rdar://19985330 |
| @interface NSObject @end |
| |
| @class NSFoo; |
| void foo (NSFoo * _Nonnull); |
| |
| @interface NSBar : NSObject |
| @property(weak) NSFoo *property1; |
| @end |
| |
| #pragma clang assume_nonnull begin |
| @interface NSBar () |
| @property(weak) NSFoo *property2; |
| @end |
| |
| #pragma clang assume_nonnull end |
| |
| @implementation NSBar |
| - (void) Meth { |
| foo (self.property1); // no warning because nothing is inferred |
| foo (self.property2); // expected-warning {{implicit conversion from nullable pointer 'NSFoo * _Nullable' to non-nullable pointer type 'NSFoo * _Nonnull'}} |
| } |
| @end |