
NSMutableArray <ProtocolName> *array;
NSMutableArray <NSString *> *array;
NSMutableArray <id> *array;
NSMutableDictionary<NSURL *, NSDictionary<NSString *, id> *> *dict;
NSProgress * _Nullable __autoreleasing * _Nullable progress;
NSArray<__kindof UIView *> *backgroundSubviews;

@interface A
-(_Complex long double) complexLongDoubleValue;
@property IMP func;
@end

@interface NSArray (NSArrayCreation)
+ (id)arrayWithObjects:(const id [])objects count:(unsigned long)cnt;
-(void) test3: (Test*  [3] [4])b ;
@end


NSMutableArray<NSObject *> * array = (NSMutableArray<NSObject *> *)[NSMutableArray arrayWithCapacity:10];


[[NSMutableArray<ProtocolName> alloc] init];


static NSMapTable <Class <TTLElementProtocol>, NSString *> * mapTable = nil;


id<NSCoding> func(id<NSCoding> operation) {
  NSCParameterAssert(operation);
}

id<SDImageCoder> imageCoder;


__auto_type idx;


__unused NSObject *object;

NSObject __unused * __unused object __unused;
// NSObject __unused * __unused object __unused = [NSObject new]; // FIXME

typedef struct _AspectBlock {
  __unused Class isa;
  // void (__unused *invoke)(struct _AspectBlock *block, ...); // FIXME
} *AspectBlockRef;


@interface SDWebImage

- (nonnull UIImage *)imageWithActions:(nonnull NS_NOESCAPE SDGraphicsImageDrawingActions)actions;
- (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE ^)(MASConstraintMaker *make))block;
- (void)inDatabase:(__attribute__((noescape)) void (^)(FMDatabase *db))block;

@end


@implementation SDWebImage

+ (NSArray*)extendedAttributeNamesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)err {
  
}

- (BOOL)createDirectory:(NSDictionary<NSFileAttributeKey,id> *)attributes error:(NSError * _Nullable __autoreleasing *)error {
}

- (BOOL)invokeWithInvocation:(NSInvocation *)inv returnValue:(out NSValue *__nullable *__nonnull)returnValue {
  
}

@end

@implementation TestUnarchiver

struct unarchive_list {
    int ifield;
    id *list;
}; // FIXME

@end

struct type_s {
   SS may_recurse;
   id id_val;
};

struct Derived : type_s { };

