// 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
