// RUN: rm -rf %t // RUN: mkdir %t // RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng -target x86_64-apple-darwin10 %s > %t/out // RUN: FileCheck %s < %t/out // Ensure that XML we generate is not invalid. // RUN: FileCheck %s -check-prefix=WRONG < %t/out // WRONG-NOT: CommentXMLInvalid // rdar://12378714 /** * \brief This is a protocol definition */ @protocol MyProto @optional /** * \brief MethodMyProto method * \param[in] anObject input value * \param[in] range output value is unsigned int * \result return index */ - (unsigned int)MethodMyProto:(nullable id)anObject inRange:(unsigned int)range; /** * \brief PropertyMyProto - This is protocol's property. */ @property (copy, nonnull) id PropertyMyProto; /** * \brief ClassMethodMyProto */ + ClassMethodMyProto; @end // CHECK: @protocol MyProto\n@end // CHECK: - (unsigned int)MethodMyProto:(nullable id)anObject inRange:(unsigned int)range; // CHECK: @optional\n@property(atomic, copy, readwrite, nonnull) id PropertyMyProto; // CHECK: + (id)ClassMethodMyProto; /** * \brief NSObject is the root class. */ @interface NSObject { /** * \brief IvarNSObject */ id IvarNSObject; } @end // CHECK: Declaration>@interface NSObject {\n id IvarNSObject;\n}\n@end // CHECK: id IvarNSObject /** * \brief MyClass - primary class. */ @interface MyClass : NSObject { /** * \brief IvarMyClass - IvarMyClass of values. */ id IvarMyClass; } /** * \brief MethodMyClass is instance method. */ - MethodMyClass; /** * \brief ClassMethodMyClass is class method. */ + ClassMethodMyClass; /** * \brief PropertyMyClass - This is class's property. */ @property (copy) id PropertyMyClass; @end // CHECK: @interface MyClass : NSObject <MyProto> {\n id IvarMyClass;\n}\n@end // CHECK: id IvarMyClass // CHECK: - (id)MethodMyClass; // CHECK: + (id)ClassMethodMyClass; // CHECK: @property(atomic, copy, readwrite) id PropertyMyClass;@interface MyClass () {\n id IvarMyClassExtension;\n}\n@end // CHECK: id IvarMyClassExtension /** * \brief MyClass (Category) is private to MyClass. */ @interface MyClass (Category) /** * \brief This is private to MyClass */ - (void)MethodMyClassCategory; /** * \brief PropertyMyClassCategory - This is class's private property. */ @property (copy) id PropertyMyClassCategory; @end // CHECK: @interface MyClass (Category)\n@end // CHECK: - (void)MethodMyClassCategory; // CHECK: @property(atomic, copy, readwrite) id PropertyMyClassCategory; // CHECK: - (id)PropertyMyClassCategory; // CHECK: - (void)setPropertyMyClassCategory:(id)arg; /// @implementation's /** * \brief implementation of MyClass class. */ @implementation MyClass { /** * \brief IvarPrivateToMyClassImpl. */ id IvarPrivateToMyClassImpl; } /** * \brief MethodMyClass is instance method implementation. */ - MethodMyClass { return 0; } /** * \brief ClassMethodMyClass is class method implementation. */ + ClassMethodMyClass { return 0; } @end // CHECK: @implementation MyClass {\n id IvarPrivateToMyClassImpl;\n id _PropertyMyClass;\n}\n@end // CHECK: id IvarPrivateToMyClassImpl // CHECK: - (id)MethodMyClass; // CHECK: + (id)ClassMethodMyClass; /** * \brief MyClass (Category) is implementation of private to MyClass. */ @implementation MyClass (Category) /** * \brief This is private to MyClass */ - (void)MethodMyClassCategory {} /** * \brief property getter */ - (id) PropertyMyClassCategory { return 0; } /** * \brief property setter */ - (void) setPropertyMyClassCategory : (id) arg {} @end // CHECK: @implementation MyClass (Category)\n@end // CHECK: - (void)MethodMyClassCategory; // CHECK: - (id)PropertyMyClassCategory; // CHECK: - (void)setPropertyMyClassCategory:(id)arg; /** * \brief NSObject implementation */ @implementation NSObject @end // CHECK: @implementation NSObject\n@end