brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.5 KiB · 180c2f9 Raw
226 lines · cpp
1// RUN: rm -rf %t2// RUN: %clang_cc1 -extract-api --pretty-sgf --emit-sgf-symbol-labels-for-testing \3// RUN:   -triple arm64-apple-macosx -x c++-header %s -o %t/output.symbols.json -verify4 5class Foo {6  // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETCOUNT7  int getCount();8  // GETCOUNT: "!testRelLabel": "memberOf $ c:@S@Foo@F@getCount# $ c:@S@Foo"9  // GETCOUNT-LABEL: "!testLabel":  "c:@S@Foo@F@getCount#"10  // GETCOUNT: "accessLevel": "private",11  // GETCOUNT:      "declarationFragments": [12  // GETCOUNT-NEXT:   {13  // GETCOUNT-NEXT:     "kind": "typeIdentifier",14  // GETCOUNT-NEXT:     "preciseIdentifier": "c:I",15  // GETCOUNT-NEXT:     "spelling": "int"16  // GETCOUNT-NEXT:   },17  // GETCOUNT-NEXT:   {18  // GETCOUNT-NEXT:     "kind": "text",19  // GETCOUNT-NEXT:     "spelling": " "20  // GETCOUNT-NEXT:   },21  // GETCOUNT-NEXT:   {22  // GETCOUNT-NEXT:     "kind": "identifier",23  // GETCOUNT-NEXT:     "spelling": "getCount"24  // GETCOUNT-NEXT:   },25  // GETCOUNT-NEXT:   {26  // GETCOUNT-NEXT:     "kind": "text",27  // GETCOUNT-NEXT:     "spelling": "();"28  // GETCOUNT-NEXT:   }29  // GETCOUNT-NEXT: ],30  // GETCOUNT:      "functionSignature": {31  // GETCOUNT-NEXT:   "returns": [32  // GETCOUNT-NEXT:     {33  // GETCOUNT-NEXT:       "kind": "typeIdentifier",34  // GETCOUNT-NEXT:       "preciseIdentifier": "c:I",35  // GETCOUNT-NEXT:       "spelling": "int"36  // GETCOUNT-NEXT:     }37  // GETCOUNT-NEXT:   ]38  // GETCOUNT-NEXT: },39  // GETCOUNT: "displayName": "Instance Method",40  // GETCOUNT-NEXT: "identifier": "c++.method"41  // GETCOUNT: "title": "getCount"42  // GETCOUNT: "pathComponents": [43  // GETCOUNT-NEXT:   "Foo",44  // GETCOUNT-NEXT:   "getCount"45  // GETCOUNT-NEXT: ]46 47  // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix SETL48  virtual void setLength(int length) noexcept;49  // SETL: "!testRelLabel": "memberOf $ c:@S@Foo@F@setLength#I# $ c:@S@Foo"50  // SETL-LABEL: "!testLabel": "c:@S@Foo@F@setLength#I#"51  // SETL:      "declarationFragments": [52  // SETL-NEXT:   {53  // SETL-NEXT:     "kind": "keyword",54  // SETL-NEXT:     "spelling": "virtual"55  // SETL-NEXT:   },56  // SETL-NEXT:   {57  // SETL-NEXT:     "kind": "text",58  // SETL-NEXT:     "spelling": " "59  // SETL-NEXT:   },60  // SETL-NEXT:   {61  // SETL-NEXT:     "kind": "typeIdentifier",62  // SETL-NEXT:     "preciseIdentifier": "c:v",63  // SETL-NEXT:     "spelling": "void"64  // SETL-NEXT:   },65  // SETL-NEXT:   {66  // SETL-NEXT:     "kind": "text",67  // SETL-NEXT:     "spelling": " "68  // SETL-NEXT:   },69  // SETL-NEXT:   {70  // SETL-NEXT:     "kind": "identifier",71  // SETL-NEXT:     "spelling": "setLength"72  // SETL-NEXT:   },73  // SETL-NEXT:   {74  // SETL-NEXT:     "kind": "text",75  // SETL-NEXT:     "spelling": "("76  // SETL-NEXT:   },77  // SETL-NEXT:   {78  // SETL-NEXT:     "kind": "typeIdentifier",79  // SETL-NEXT:     "preciseIdentifier": "c:I",80  // SETL-NEXT:     "spelling": "int"81  // SETL-NEXT:   },82  // SETL-NEXT:   {83  // SETL-NEXT:     "kind": "text",84  // SETL-NEXT:     "spelling": " "85  // SETL-NEXT:   },86  // SETL-NEXT:   {87  // SETL-NEXT:     "kind": "internalParam",88  // SETL-NEXT:     "spelling": "length"89  // SETL-NEXT:   },90  // SETL-NEXT:   {91  // SETL-NEXT:     "kind": "text",92  // SETL-NEXT:     "spelling": ") "93  // SETL-NEXT:   },94  // SETL-NEXT:   {95  // SETL-NEXT:     "kind": "keyword",96  // SETL-NEXT:     "spelling": "noexcept"97  // SETL-NEXT:   },98  // SETL-NEXT:   {99  // SETL-NEXT:     "kind": "text",100  // SETL-NEXT:     "spelling": ";"101  // SETL-NEXT:   }102  // SETL-NEXT: ],103  // SETL:      "functionSignature": {104  // SETL-NEXT:   "parameters": [105  // SETL-NEXT:     {106  // SETL-NEXT:       "declarationFragments": [107  // SETL-NEXT:         {108  // SETL-NEXT:           "kind": "typeIdentifier",109  // SETL-NEXT:           "preciseIdentifier": "c:I",110  // SETL-NEXT:           "spelling": "int"111  // SETL-NEXT:         },112  // SETL-NEXT:         {113  // SETL-NEXT:           "kind": "text",114  // SETL-NEXT:           "spelling": " "115  // SETL-NEXT:         },116  // SETL-NEXT:         {117  // SETL-NEXT:           "kind": "internalParam",118  // SETL-NEXT:           "spelling": "length"119  // SETL-NEXT:         }120  // SETL-NEXT:       ],121  // SETL-NEXT:       "name": "length"122  // SETL-NEXT:     }123  // SETL-NEXT:   ],124  // SETL-NEXT:   "returns": [125  // SETL-NEXT:     {126  // SETL-NEXT:       "kind": "typeIdentifier",127  // SETL-NEXT:       "preciseIdentifier": "c:v",128  // SETL-NEXT:       "spelling": "void"129  // SETL-NEXT:     }130  // SETL-NEXT:   ]131  // SETL-NEXT: },132 133public:134  // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETFOO135  static double getFoo();136  // GETFOO: "!testRelLabel": "memberOf $ c:@S@Foo@F@getFoo#S $ c:@S@Foo"137 138  // GETFOO-LABEL: "!testLabel": "c:@S@Foo@F@getFoo#S"139  // GETFOO: "accessLevel": "public",140  // GETFOO:      "declarationFragments": [141  // GETFOO-NEXT:   {142  // GETFOO-NEXT:     "kind": "keyword",143  // GETFOO-NEXT:     "spelling": "static"144  // GETFOO-NEXT:   },145  // GETFOO-NEXT:   {146  // GETFOO-NEXT:     "kind": "text",147  // GETFOO-NEXT:     "spelling": " "148  // GETFOO-NEXT:   },149  // GETFOO-NEXT:   {150  // GETFOO-NEXT:     "kind": "typeIdentifier",151  // GETFOO-NEXT:     "preciseIdentifier": "c:d",152  // GETFOO-NEXT:     "spelling": "double"153  // GETFOO-NEXT:   },154  // GETFOO-NEXT:   {155  // GETFOO-NEXT:     "kind": "text",156  // GETFOO-NEXT:     "spelling": " "157  // GETFOO-NEXT:   },158  // GETFOO-NEXT:   {159  // GETFOO-NEXT:     "kind": "identifier",160  // GETFOO-NEXT:     "spelling": "getFoo"161  // GETFOO-NEXT:   },162  // GETFOO-NEXT:   {163  // GETFOO-NEXT:     "kind": "text",164  // GETFOO-NEXT:     "spelling": "();"165  // GETFOO-NEXT:   }166  // GETFOO-NEXT: ],167  // GETFOO:      "functionSignature": {168  // GETFOO-NEXT:   "returns": [169  // GETFOO-NEXT:     {170  // GETFOO-NEXT:       "kind": "typeIdentifier",171  // GETFOO-NEXT:       "preciseIdentifier": "c:d",172  // GETFOO-NEXT:       "spelling": "double"173  // GETFOO-NEXT:     }174  // GETFOO-NEXT:   ]175  // GETFOO-NEXT: },176  // GETFOO:      "kind": {177  // GETFOO-NEXT:   "displayName": "Static Method",178  // GETFOO-NEXT:   "identifier": "c++.type.method"179  // GETFOO-NEXT: },180 181protected:182  // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETBAR183  constexpr int getBar() const;184  // GETBAR: "!testRelLabel": "memberOf $ c:@S@Foo@F@getBar#1 $ c:@S@Foo"185 186  // GETBAR-LABEL: "!testLabel": "c:@S@Foo@F@getBar#1"187  // GETBAR: "accessLevel": "protected"188  // GETBAR:      "declarationFragments": [189  // GETBAR-NEXT:   {190  // GETBAR-NEXT:     "kind": "keyword",191  // GETBAR-NEXT:     "spelling": "constexpr"192  // GETBAR-NEXT:   },193  // GETBAR-NEXT:   {194  // GETBAR-NEXT:     "kind": "text",195  // GETBAR-NEXT:     "spelling": " "196  // GETBAR-NEXT:   },197  // GETBAR-NEXT:   {198  // GETBAR-NEXT:     "kind": "typeIdentifier",199  // GETBAR-NEXT:     "preciseIdentifier": "c:I",200  // GETBAR-NEXT:     "spelling": "int"201  // GETBAR-NEXT:   },202  // GETBAR-NEXT:   {203  // GETBAR-NEXT:     "kind": "text",204  // GETBAR-NEXT:     "spelling": " "205  // GETBAR-NEXT:   },206  // GETBAR-NEXT:   {207  // GETBAR-NEXT:     "kind": "identifier",208  // GETBAR-NEXT:     "spelling": "getBar"209  // GETBAR-NEXT:   },210  // GETBAR-NEXT:   {211  // GETBAR-NEXT:     "kind": "text",212  // GETBAR-NEXT:     "spelling": "() "213  // GETBAR-NEXT:   },214  // GETBAR-NEXT:   {215  // GETBAR-NEXT:     "kind": "keyword",216  // GETBAR-NEXT:     "spelling": "const"217  // GETBAR-NEXT:   },218  // GETBAR-NEXT:   {219  // GETBAR-NEXT:     "kind": "text",220  // GETBAR-NEXT:     "spelling": ";"221  // GETBAR-NEXT:   }222  // GETBAR-NEXT: ],223};224 225// expected-no-diagnostics226