| @protocol Context |
| - (void) operate; |
| @end |
| |
| @protocol A |
| - (void)use:(nonnull void (^)(_Nonnull id))callback; |
| @end |
| |
| @protocol B<A> |
| @end |
| |
| @protocol C<A> |
| - (void)use:(nonnull void (^)(_Nonnull id<Context>))callback; |
| @end |
| |
| @protocol D<C, B> |
| @end |
| |
| @interface NSObject |
| @end |
| |
| @interface Widget : NSObject<D> |
| @end |
| |
| @protocol ClassAndInstance |
| - (void)doClassAndInstanceThing __attribute__((swift_name("doClassAndInstanceThing()"))); |
| + (void)doClassAndInstanceThing __attribute__((swift_name("doClassAndInstanceThing()"))); |
| |
| @property (readonly, nonnull) id classAndInstanceProp; |
| @property (class, readonly, nonnull) id classAndInstanceProp; |
| @end |
| |
| @interface Widget (ClassAndInstance) <ClassAndInstance> |
| @end |