tree-sitter-objc/test/corpus/types.txt

503 lines
16 KiB
Plaintext

================================================================================
Type: generics
================================================================================
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
--------------------------------------------------------------------------------
(translation_unit
(declaration
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (protocol_qualifiers
name: (identifier)))
declarator: (pointer_declarator
declarator: (identifier)))
(declaration
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (generic_type_references
(type_descriptor
type: (type_identifier)
declarator: (abstract_pointer_declarator))))
declarator: (pointer_declarator
declarator: (identifier)))
(declaration
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (generic_type_references
(type_descriptor
type: (id))))
declarator: (pointer_declarator
declarator: (identifier)))
(declaration
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (generic_type_references
(type_descriptor
type: (type_identifier)
declarator: (abstract_pointer_declarator))
(type_descriptor
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (generic_type_references
(type_descriptor
type: (type_identifier)
declarator: (abstract_pointer_declarator))
(type_descriptor
type: (id))))
declarator: (abstract_pointer_declarator))))
declarator: (pointer_declarator
declarator: (identifier)))
(declaration
type: (type_identifier)
declarator: (pointer_declarator
(type_qualifier)
(type_qualifier)
declarator: (pointer_declarator
(type_qualifier)
declarator: (identifier))))
(declaration
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (generic_type_references
(type_descriptor
(type_qualifier)
type: (type_identifier)
declarator: (abstract_pointer_declarator))))
declarator: (pointer_declarator
declarator: (identifier)))
(class_interface
name: (identifier)
(method_declaration
scope: (instance_scope)
return_type: (type_qualifier)
type: (sized_type_specifier
type: (primitive_type))
selector: (identifier))
(property_declaration
type: (IMP)
declarator: (identifier)))
(category_interface
name: (identifier)
category: (identifier)
(method_declaration
scope: (class_scope)
type: (id)
selector: (keyword_selector
(keyword_declarator
keyword: (identifier)
type: (type_qualifier)
type: (id)
declarator: (abstract_array_declarator)
name: (identifier))
(keyword_declarator
keyword: (identifier)
type: (sized_type_specifier)
name: (identifier))))
(method_declaration
scope: (instance_scope)
type: (primitive_type)
selector: (keyword_selector
(keyword_declarator
keyword: (identifier)
type: (type_identifier)
declarator: (abstract_pointer_declarator
declarator: (abstract_array_declarator
declarator: (abstract_array_declarator
size: (number_literal))
size: (number_literal)))
name: (identifier))))))
================================================================================
Type: generics in cast expression
================================================================================
NSMutableArray<NSObject *> * array = (NSMutableArray<NSObject *> *)[NSMutableArray arrayWithCapacity:10];
--------------------------------------------------------------------------------
(translation_unit
(declaration
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (generic_type_references
(type_descriptor
type: (type_identifier)
declarator: (abstract_pointer_declarator))))
declarator: (init_declarator
declarator: (pointer_declarator
declarator: (identifier))
value: (cast_expression
type: (type_descriptor
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (generic_type_references
(type_descriptor
type: (type_identifier)
declarator: (abstract_pointer_declarator))))
declarator: (abstract_pointer_declarator))
value: (message_expression
receiver: (type_identifier)
selector: (keyword_argument_list
(keyword_argument
keyword: (identifier)
argument: (number_literal))))))))
================================================================================
Type: generics in selector receiver
================================================================================
[[NSMutableArray<ProtocolName> alloc] init];
--------------------------------------------------------------------------------
(translation_unit
(expression_statement
(message_expression
receiver: (message_expression
receiver: (generic_type_specifier
class_name: (type_identifier)
type_reference: (protocol_qualifiers
name: (identifier)))
selector: (identifier))
selector: (identifier))))
================================================================================
Type: generics as class protocol
================================================================================
static NSMapTable <Class <TTLElementProtocol>, NSString *> * mapTable = nil;
--------------------------------------------------------------------------------
(translation_unit
(declaration
(storage_class_specifier)
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (generic_type_references
(type_descriptor
type: (generic_type_specifier
class_name: (Class)
type_reference: (protocol_qualifiers
name: (identifier))))
(type_descriptor
type: (type_identifier)
declarator: (abstract_pointer_declarator))))
declarator: (init_declarator
declarator: (pointer_declarator
declarator: (identifier))
value: (nil))))
================================================================================
Type: id
================================================================================
id<NSCoding> func(id<NSCoding> operation) {
NSCParameterAssert(operation);
}
id<SDImageCoder> imageCoder;
--------------------------------------------------------------------------------
(translation_unit
(function_definition
type: (generic_type_specifier
class_name: (id)
type_reference: (protocol_qualifiers
name: (identifier)))
declarator: (function_declarator
declarator: (identifier)
parameters: (parameter_list
(parameter_declaration
type: (generic_type_specifier
class_name: (id)
type_reference: (protocol_qualifiers
name: (identifier)))
declarator: (identifier))))
body: (compound_statement
(expression_statement
(call_expression
function: (identifier)
arguments: (argument_list
(identifier))))))
(declaration
type: (generic_type_specifier
class_name: (id)
type_reference: (protocol_qualifiers
name: (identifier)))
declarator: (identifier)))
================================================================================
Type: auto
================================================================================
__auto_type idx;
--------------------------------------------------------------------------------
(translation_unit
(declaration
type: (auto)
declarator: (identifier)))
================================================================================
Type: __unused
================================================================================
__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;
--------------------------------------------------------------------------------
(translation_unit
(declaration
(type_qualifier)
type: (type_identifier)
declarator: (pointer_declarator
declarator: (identifier)))
(declaration
type: (type_identifier)
(type_qualifier)
declarator: (pointer_declarator
(type_qualifier)
declarator: (identifier))
(type_qualifier))
(comment)
(type_definition
type: (struct_specifier
name: (type_identifier)
body: (field_declaration_list
(field_declaration
(type_qualifier)
type: (Class)
declarator: (field_identifier))
(comment)))
declarator: (pointer_declarator
declarator: (type_identifier))))
================================================================================
Type: NS_NOESCAPE
================================================================================
@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
--------------------------------------------------------------------------------
(translation_unit
(class_interface
name: (identifier)
(method_declaration
scope: (instance_scope)
return_type: (nonnull)
type: (type_identifier)
declarator: (abstract_pointer_declarator)
selector: (keyword_selector
(keyword_declarator
keyword: (identifier)
type: (nonnull)
type: (type_identifier)
name: (identifier))))
(method_declaration
scope: (instance_scope)
type: (type_identifier)
declarator: (abstract_pointer_declarator)
selector: (keyword_selector
(keyword_declarator
keyword: (identifier)
type: (primitive_type)
declarator: (block_abstract_declarator
parameters: (parameter_list
(parameter_declaration
type: (type_identifier)
declarator: (pointer_declarator
declarator: (identifier)))))
name: (identifier))))
(method_declaration
scope: (instance_scope)
type: (primitive_type)
selector: (keyword_selector
(keyword_declarator
keyword: (identifier)
type: (attribute_specifier
(argument_list
(identifier)))
type: (primitive_type)
declarator: (block_abstract_declarator
parameters: (parameter_list
(parameter_declaration
type: (type_identifier)
declarator: (pointer_declarator
declarator: (identifier)))))
name: (identifier))))))
================================================================================
Type: **
================================================================================
@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
--------------------------------------------------------------------------------
(translation_unit
(class_implementation
name: (identifier)
(method_definition
scope: (class_scope)
type: (type_identifier)
declarator: (abstract_pointer_declarator)
selector: (keyword_selector
(keyword_declarator
keyword: (identifier)
type: (type_identifier)
declarator: (abstract_pointer_declarator)
name: (identifier))
(keyword_declarator
keyword: (identifier)
type: (BOOL)
name: (identifier))
(keyword_declarator
keyword: (identifier)
type: (type_identifier)
declarator: (abstract_pointer_declarator
declarator: (abstract_pointer_declarator))
name: (identifier)))
body: (compound_statement))
(method_definition
scope: (instance_scope)
type: (BOOL)
selector: (keyword_selector
(keyword_declarator
keyword: (identifier)
type: (generic_type_specifier
class_name: (type_identifier)
type_reference: (protocol_qualifiers
name: (identifier)
name: (identifier)))
declarator: (abstract_pointer_declarator)
name: (identifier))
(keyword_declarator
keyword: (identifier)
type: (type_identifier)
declarator: (abstract_pointer_declarator
(type_qualifier)
(type_qualifier)
declarator: (abstract_pointer_declarator))
name: (identifier)))
body: (compound_statement))
(method_definition
scope: (instance_scope)
type: (BOOL)
selector: (keyword_selector
(keyword_declarator
keyword: (identifier)
type: (type_identifier)
declarator: (abstract_pointer_declarator)
name: (identifier))
(keyword_declarator
keyword: (identifier)
type: (type_qualifier)
type: (type_identifier)
declarator: (abstract_pointer_declarator
(type_qualifier)
declarator: (abstract_pointer_declarator
(type_qualifier)))
name: (identifier)))
body: (compound_statement))))
================================================================================
Struct
================================================================================
@implementation TestUnarchiver
struct unarchive_list {
int ifield;
id *list;
};
@end
struct type_s {
SS may_recurse;
id id_val;
}; // FIXME
struct Derived : type_s { };
--------------------------------------------------------------------------------
(translation_unit
(class_implementation
name: (identifier)
(declaration
type: (struct_specifier
name: (type_identifier)
body: (field_declaration_list
(field_declaration
type: (primitive_type)
declarator: (field_identifier))
(field_declaration
type: (id)
declarator: (pointer_declarator
declarator: (field_identifier)))))
declarator: (MISSING identifier)))
(struct_specifier
name: (type_identifier)
body: (field_declaration_list
(field_declaration
type: (type_identifier)
declarator: (field_identifier))
(field_declaration
type: (id)
declarator: (field_identifier))))
(comment)
(struct_specifier
name: (type_identifier)
(superclass_reference
name: (identifier))
body: (field_declaration_list)))