| // RUN: rm -rf %t |
| // RUN: %clang_cc1 -extract-api --pretty-sgf --emit-sgf-symbol-labels-for-testing \ |
| // RUN: -triple arm64-apple-macosx -x c++-header %s -o %t/output.symbols.json -verify |
| |
| class Foo { |
| // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETCOUNT |
| int getCount(); |
| // GETCOUNT: "!testRelLabel": "memberOf $ c:@S@Foo@F@getCount# $ c:@S@Foo" |
| // GETCOUNT-LABEL: "!testLabel": "c:@S@Foo@F@getCount#" |
| // GETCOUNT: "accessLevel": "private", |
| // GETCOUNT: "declarationFragments": [ |
| // GETCOUNT-NEXT: { |
| // GETCOUNT-NEXT: "kind": "typeIdentifier", |
| // GETCOUNT-NEXT: "preciseIdentifier": "c:I", |
| // GETCOUNT-NEXT: "spelling": "int" |
| // GETCOUNT-NEXT: }, |
| // GETCOUNT-NEXT: { |
| // GETCOUNT-NEXT: "kind": "text", |
| // GETCOUNT-NEXT: "spelling": " " |
| // GETCOUNT-NEXT: }, |
| // GETCOUNT-NEXT: { |
| // GETCOUNT-NEXT: "kind": "identifier", |
| // GETCOUNT-NEXT: "spelling": "getCount" |
| // GETCOUNT-NEXT: }, |
| // GETCOUNT-NEXT: { |
| // GETCOUNT-NEXT: "kind": "text", |
| // GETCOUNT-NEXT: "spelling": "();" |
| // GETCOUNT-NEXT: } |
| // GETCOUNT-NEXT: ], |
| // GETCOUNT: "functionSignature": { |
| // GETCOUNT-NEXT: "returns": [ |
| // GETCOUNT-NEXT: { |
| // GETCOUNT-NEXT: "kind": "typeIdentifier", |
| // GETCOUNT-NEXT: "preciseIdentifier": "c:I", |
| // GETCOUNT-NEXT: "spelling": "int" |
| // GETCOUNT-NEXT: } |
| // GETCOUNT-NEXT: ] |
| // GETCOUNT-NEXT: }, |
| // GETCOUNT: "displayName": "Instance Method", |
| // GETCOUNT-NEXT: "identifier": "c++.method" |
| // GETCOUNT: "title": "getCount" |
| // GETCOUNT: "pathComponents": [ |
| // GETCOUNT-NEXT: "Foo", |
| // GETCOUNT-NEXT: "getCount" |
| // GETCOUNT-NEXT: ] |
| |
| // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix SETL |
| void setLength(int length) noexcept; |
| // SETL: "!testRelLabel": "memberOf $ c:@S@Foo@F@setLength#I# $ c:@S@Foo" |
| // SETL-LABEL: "!testLabel": "c:@S@Foo@F@setLength#I#" |
| // SETL: "declarationFragments": [ |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "typeIdentifier", |
| // SETL-NEXT: "preciseIdentifier": "c:v", |
| // SETL-NEXT: "spelling": "void" |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "text", |
| // SETL-NEXT: "spelling": " " |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "identifier", |
| // SETL-NEXT: "spelling": "setLength" |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "text", |
| // SETL-NEXT: "spelling": "(" |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "typeIdentifier", |
| // SETL-NEXT: "preciseIdentifier": "c:I", |
| // SETL-NEXT: "spelling": "int" |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "text", |
| // SETL-NEXT: "spelling": " " |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "internalParam", |
| // SETL-NEXT: "spelling": "length" |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "text", |
| // SETL-NEXT: "spelling": ") " |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "keyword", |
| // SETL-NEXT: "spelling": "noexcept" |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "text", |
| // SETL-NEXT: "spelling": ";" |
| // SETL-NEXT: } |
| // SETL-NEXT: ], |
| // SETL: "functionSignature": { |
| // SETL-NEXT: "parameters": [ |
| // SETL-NEXT: { |
| // SETL-NEXT: "declarationFragments": [ |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "typeIdentifier", |
| // SETL-NEXT: "preciseIdentifier": "c:I", |
| // SETL-NEXT: "spelling": "int" |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "text", |
| // SETL-NEXT: "spelling": " " |
| // SETL-NEXT: }, |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "internalParam", |
| // SETL-NEXT: "spelling": "length" |
| // SETL-NEXT: } |
| // SETL-NEXT: ], |
| // SETL-NEXT: "name": "length" |
| // SETL-NEXT: } |
| // SETL-NEXT: ], |
| // SETL-NEXT: "returns": [ |
| // SETL-NEXT: { |
| // SETL-NEXT: "kind": "typeIdentifier", |
| // SETL-NEXT: "preciseIdentifier": "c:v", |
| // SETL-NEXT: "spelling": "void" |
| // SETL-NEXT: } |
| // SETL-NEXT: ] |
| // SETL-NEXT: }, |
| |
| public: |
| // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETFOO |
| static double getFoo(); |
| // GETFOO: "!testRelLabel": "memberOf $ c:@S@Foo@F@getFoo#S $ c:@S@Foo" |
| |
| // GETFOO-LABEL: "!testLabel": "c:@S@Foo@F@getFoo#S" |
| // GETFOO: "accessLevel": "public", |
| // GETFOO: "declarationFragments": [ |
| // GETFOO-NEXT: { |
| // GETFOO-NEXT: "kind": "keyword", |
| // GETFOO-NEXT: "spelling": "static" |
| // GETFOO-NEXT: }, |
| // GETFOO-NEXT: { |
| // GETFOO-NEXT: "kind": "text", |
| // GETFOO-NEXT: "spelling": " " |
| // GETFOO-NEXT: }, |
| // GETFOO-NEXT: { |
| // GETFOO-NEXT: "kind": "typeIdentifier", |
| // GETFOO-NEXT: "preciseIdentifier": "c:d", |
| // GETFOO-NEXT: "spelling": "double" |
| // GETFOO-NEXT: }, |
| // GETFOO-NEXT: { |
| // GETFOO-NEXT: "kind": "text", |
| // GETFOO-NEXT: "spelling": " " |
| // GETFOO-NEXT: }, |
| // GETFOO-NEXT: { |
| // GETFOO-NEXT: "kind": "identifier", |
| // GETFOO-NEXT: "spelling": "getFoo" |
| // GETFOO-NEXT: }, |
| // GETFOO-NEXT: { |
| // GETFOO-NEXT: "kind": "text", |
| // GETFOO-NEXT: "spelling": "();" |
| // GETFOO-NEXT: } |
| // GETFOO-NEXT: ], |
| // GETFOO: "functionSignature": { |
| // GETFOO-NEXT: "returns": [ |
| // GETFOO-NEXT: { |
| // GETFOO-NEXT: "kind": "typeIdentifier", |
| // GETFOO-NEXT: "preciseIdentifier": "c:d", |
| // GETFOO-NEXT: "spelling": "double" |
| // GETFOO-NEXT: } |
| // GETFOO-NEXT: ] |
| // GETFOO-NEXT: }, |
| // GETFOO: "kind": { |
| // GETFOO-NEXT: "displayName": "Static Method", |
| // GETFOO-NEXT: "identifier": "c++.type.method" |
| // GETFOO-NEXT: }, |
| |
| protected: |
| // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETBAR |
| constexpr int getBar() const; |
| // GETBAR: "!testRelLabel": "memberOf $ c:@S@Foo@F@getBar#1 $ c:@S@Foo" |
| |
| // GETBAR-LABEL: "!testLabel": "c:@S@Foo@F@getBar#1" |
| // GETBAR: "accessLevel": "protected" |
| // GETBAR: "declarationFragments": [ |
| // GETBAR-NEXT: { |
| // GETBAR-NEXT: "kind": "keyword", |
| // GETBAR-NEXT: "spelling": "constexpr" |
| // GETBAR-NEXT: }, |
| // GETBAR-NEXT: { |
| // GETBAR-NEXT: "kind": "text", |
| // GETBAR-NEXT: "spelling": " " |
| // GETBAR-NEXT: }, |
| // GETBAR-NEXT: { |
| // GETBAR-NEXT: "kind": "typeIdentifier", |
| // GETBAR-NEXT: "preciseIdentifier": "c:I", |
| // GETBAR-NEXT: "spelling": "int" |
| // GETBAR-NEXT: }, |
| // GETBAR-NEXT: { |
| // GETBAR-NEXT: "kind": "text", |
| // GETBAR-NEXT: "spelling": " " |
| // GETBAR-NEXT: }, |
| // GETBAR-NEXT: { |
| // GETBAR-NEXT: "kind": "identifier", |
| // GETBAR-NEXT: "spelling": "getBar" |
| // GETBAR-NEXT: }, |
| // GETBAR-NEXT: { |
| // GETBAR-NEXT: "kind": "text", |
| // GETBAR-NEXT: "spelling": "() " |
| // GETBAR-NEXT: }, |
| // GETBAR-NEXT: { |
| // GETBAR-NEXT: "kind": "keyword", |
| // GETBAR-NEXT: "spelling": "const" |
| // GETBAR-NEXT: }, |
| // GETBAR-NEXT: { |
| // GETBAR-NEXT: "kind": "text", |
| // GETBAR-NEXT: "spelling": ";" |
| // GETBAR-NEXT: } |
| // GETBAR-NEXT: ], |
| }; |
| |
| // expected-no-diagnostics |