| // 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 %s > %t/out |
| // RUN: FileCheck %s < %t/out |
| // rdar://13647476 |
| |
| //! NSObject is root of all. |
| @interface NSObject |
| @end |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ NSObject is root of all.])))] |
| |
| //! An umbrella class for super classes. |
| @interface SuperClass |
| @end |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ An umbrella class for super classes.])))] |
| |
| @interface SubClass : SuperClass |
| @end |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ An umbrella class for super classes.])))] |
| |
| @interface SubSubClass : SubClass |
| @end |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ An umbrella class for super classes.])))] |
| |
| @interface SubSubClass (Private) |
| @end |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ An umbrella class for super classes.])))] |
| |
| //! Something valuable to the organization. |
| class Asset { |
| }; |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ Something valuable to the organization.])))] |
| |
| //! An individual human or human individual. |
| class Person : public Asset { |
| }; |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ An individual human or human individual.])))] |
| |
| class Student : public Person { |
| }; |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ An individual human or human individual.])))] |
| |
| //! Every thing is a part |
| class Parts { |
| }; |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ Every thing is a part])))] |
| |
| class Window : public virtual Parts { |
| }; |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ Every thing is a part])))] |
| |
| class Door : public virtual Parts { |
| }; |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ Every thing is a part])))] |
| |
| class House : public Window, Door { |
| }; |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ Every thing is a part])))] |
| |
| //! Any Material |
| class Material : virtual Parts { |
| }; |
| |
| class Building : Window, public Material { |
| }; |
| // CHECK: CommentAST=[ |
| // CHECK-NEXT: (CXComment_FullComment |
| // CHECK-NEXT: (CXComment_Paragraph |
| // CHECK-NEXT: (CXComment_Text Text=[ Any Material])))] |
| |
| |