1#ifndef SOMEKIT_H 2#define SOMEKIT_H 3 4__attribute__((objc_root_class)) 5#ifndef NS_ASSUME_NONNULL_BEGIN 6#if __has_feature(assume_nonnull) 7#define NS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") 8#define NS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") 9#else 10#define NS_ASSUME_NONNULL_BEGIN 11#define NS_ASSUME_NONNULL_END 12#endif 13#endif 14 15NS_ASSUME_NONNULL_BEGIN 16 17@interface A 18-(null_unspecified A*)transform:(null_unspecified A*)input __attribute__((unavailable("anything but this"))); 19-(A*)transform:(A*)input integer:(int)integer; 20 21@property (null_unspecified, nonatomic, readonly, retain) A* someA; 22@property (null_unspecified, nonatomic, retain) A* someOtherA; 23 24@property (nonatomic) int intValue __attribute__((unavailable("wouldn't work anyway"))); 25@end 26 27NS_ASSUME_NONNULL_END 28 29 30__attribute__((unavailable("just don't"))) 31@interface B : A 32@end 33 34@interface C : A 35- (instancetype)init; // expected-warning{{pointer is missing a nullability type specifier}} 36- (instancetype)initWithA:( A*)a __attribute__((objc_designated_initializer)); // expected-warning 2{{pointer is missing a nullability type specifier}} 37@end 38 39#endif 40 41