| #ifndef NULLABILITY_H |
| #define NULLABILITY_H |
| |
| @import Foundation; |
| |
| _Nullable id getId1(void); |
| |
| extern _Nullable id global_id; |
| |
| @interface SomeClass |
| - (nonnull id)methodA:(nullable SomeClass *)obj; |
| - (nonnull id)methodB:(nullable int (^)(int, int))block; |
| - (nullable id)methodC; |
| @property (nullable) id property; |
| - (id)methodD __attribute__((returns_nonnull)); |
| - (void)methodE:(SomeClass *) __attribute__((nonnull)) obj; |
| - (void)methodF:(SomeClass *)obj second:(SomeClass *)obj2 __attribute__((nonnull)); |
| - (void)methodG:(SomeClass *)obj second:(SomeClass *)obj2 __attribute__((nonnull(1))); |
| -(nonnull NSString *)stringMethod; |
| -(nullable NSArray *)optArrayMethod; |
| |
| +(nonnull instancetype)someClassWithInt:(int)x; |
| +(nullable SomeClass*)someClassWithDouble:(double)x; |
| -(nonnull instancetype)returnMe; |
| |
| @property (null_resettable) NSString *defaultedProperty; |
| |
| @property (nonnull) NSString *funnyProperty; |
| -(nullable NSString *)funnyProperty; |
| -(void)setFunnyProperty:(null_unspecified NSString *)value; |
| @end |
| |
| #define NON_NULL_MACRO(...) __attribute__ ((nonnull(__VA_ARGS__))) |
| |
| void compare_classes(SomeClass *sc1, SomeClass *sc2, SomeClass *sc3) NON_NULL_MACRO(1,2); |
| |
| #endif |