diff options
author | Daniel Grumberg <dgrumberg@apple.com> | 2024-04-02 15:34:52 +0100 |
---|---|---|
committer | Daniel Grumberg <dgrumberg@apple.com> | 2024-04-02 15:34:52 +0100 |
commit | 209a1e8dfdf1c104dd53b50eb196d6bc0dd01659 (patch) | |
tree | 5d168c7a4dd26d1d21b1dd7819ee387d7d97001e /clang/test/ExtractAPI/objc_id_protocol.m | |
parent | ea9a66ea8b6fee77e7ee9e47d868d43ecbbcd787 (diff) | |
download | llvm-209a1e8dfdf1c104dd53b50eb196d6bc0dd01659.zip llvm-209a1e8dfdf1c104dd53b50eb196d6bc0dd01659.tar.gz llvm-209a1e8dfdf1c104dd53b50eb196d6bc0dd01659.tar.bz2 |
Revert "[clang][ExtractAPI] Add ability to create multiple symbol graphs (#86676)"
This failed the test suite due to missing DiagGroup for a new warning.
This reverts commit b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf.
Diffstat (limited to 'clang/test/ExtractAPI/objc_id_protocol.m')
-rw-r--r-- | clang/test/ExtractAPI/objc_id_protocol.m | 357 |
1 files changed, 309 insertions, 48 deletions
diff --git a/clang/test/ExtractAPI/objc_id_protocol.m b/clang/test/ExtractAPI/objc_id_protocol.m index f2a03a9..0b0f1b3 100644 --- a/clang/test/ExtractAPI/objc_id_protocol.m +++ b/clang/test/ExtractAPI/objc_id_protocol.m @@ -1,56 +1,317 @@ // RUN: rm -rf %t -// RUN: %clang_cc1 -extract-api --pretty-sgf --emit-sgf-symbol-labels-for-testing \ -// RUN: -x objective-c-header -triple arm64-apple-macosx %s -o - -verify | FileCheck %s +// RUN: split-file %s %t +// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \ +// RUN: %t/reference.output.json.in >> %t/reference.output.json +// RUN: %clang -extract-api -x objective-c-header -target arm64-apple-macosx \ +// RUN: %t/input.h -o %t/output.json | FileCheck -allow-empty %s +// Generator version is not consistent across test runs, normalize it. +// RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \ +// RUN: %t/output.json >> %t/output-normalized.json +// RUN: diff %t/reference.output.json %t/output-normalized.json + +// CHECK-NOT: error: +// CHECK-NOT: warning: + +//--- input.h @protocol MyProtocol @end @interface MyInterface @property(copy, readwrite) id<MyProtocol> obj1; -// CHECK-LABEL: "!testLabel": "c:objc(cs)MyInterface(py)obj1" -// CHECK: "declarationFragments": [ -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "keyword", -// CHECK-NEXT: "spelling": "@property" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "text", -// CHECK-NEXT: "spelling": " (" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "keyword", -// CHECK-NEXT: "spelling": "copy" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "text", -// CHECK-NEXT: "spelling": ", " -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "keyword", -// CHECK-NEXT: "spelling": "readwrite" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "text", -// CHECK-NEXT: "spelling": ") " -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "typeIdentifier", -// CHECK-NEXT: "preciseIdentifier": "c:Qoobjc(pl)MyProtocol", -// CHECK-NEXT: "spelling": "id<MyProtocol>" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "text", -// CHECK-NEXT: "spelling": " " -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "identifier", -// CHECK-NEXT: "spelling": "obj1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "text", -// CHECK-NEXT: "spelling": ";" -// CHECK-NEXT: } -// CHECK-NEXT: ], +@property(readwrite) id<MyProtocol> *obj2; @end - -// expected-no-diagnostics +//--- reference.output.json.in +{ + "metadata": { + "formatVersion": { + "major": 0, + "minor": 5, + "patch": 3 + }, + "generator": "?" + }, + "module": { + "name": "", + "platform": { + "architecture": "arm64", + "operatingSystem": { + "minimumVersion": { + "major": 11, + "minor": 0, + "patch": 0 + }, + "name": "macosx" + }, + "vendor": "apple" + } + }, + "relationships": [ + { + "kind": "memberOf", + "source": "c:objc(cs)MyInterface(py)obj1", + "target": "c:objc(cs)MyInterface", + "targetFallback": "MyInterface" + }, + { + "kind": "memberOf", + "source": "c:objc(cs)MyInterface(py)obj2", + "target": "c:objc(cs)MyInterface", + "targetFallback": "MyInterface" + } + ], + "symbols": [ + { + "accessLevel": "public", + "declarationFragments": [ + { + "kind": "keyword", + "spelling": "@interface" + }, + { + "kind": "text", + "spelling": " " + }, + { + "kind": "identifier", + "spelling": "MyInterface" + } + ], + "identifier": { + "interfaceLanguage": "objective-c", + "precise": "c:objc(cs)MyInterface" + }, + "kind": { + "displayName": "Class", + "identifier": "objective-c.class" + }, + "location": { + "position": { + "character": 11, + "line": 3 + }, + "uri": "file://INPUT_DIR/input.h" + }, + "names": { + "navigator": [ + { + "kind": "identifier", + "spelling": "MyInterface" + } + ], + "subHeading": [ + { + "kind": "identifier", + "spelling": "MyInterface" + } + ], + "title": "MyInterface" + }, + "pathComponents": [ + "MyInterface" + ] + }, + { + "accessLevel": "public", + "declarationFragments": [ + { + "kind": "keyword", + "spelling": "@property" + }, + { + "kind": "text", + "spelling": " (" + }, + { + "kind": "keyword", + "spelling": "copy" + }, + { + "kind": "text", + "spelling": ", " + }, + { + "kind": "keyword", + "spelling": "readwrite" + }, + { + "kind": "text", + "spelling": ") " + }, + { + "kind": "typeIdentifier", + "preciseIdentifier": "c:Qoobjc(pl)MyProtocol", + "spelling": "id<MyProtocol>" + }, + { + "kind": "text", + "spelling": " " + }, + { + "kind": "identifier", + "spelling": "obj1" + }, + { + "kind": "text", + "spelling": ";" + } + ], + "identifier": { + "interfaceLanguage": "objective-c", + "precise": "c:objc(cs)MyInterface(py)obj1" + }, + "kind": { + "displayName": "Instance Property", + "identifier": "objective-c.property" + }, + "location": { + "position": { + "character": 42, + "line": 4 + }, + "uri": "file://INPUT_DIR/input.h" + }, + "names": { + "navigator": [ + { + "kind": "identifier", + "spelling": "obj1" + } + ], + "subHeading": [ + { + "kind": "identifier", + "spelling": "obj1" + } + ], + "title": "obj1" + }, + "pathComponents": [ + "MyInterface", + "obj1" + ] + }, + { + "accessLevel": "public", + "declarationFragments": [ + { + "kind": "keyword", + "spelling": "@property" + }, + { + "kind": "text", + "spelling": " (" + }, + { + "kind": "keyword", + "spelling": "readwrite" + }, + { + "kind": "text", + "spelling": ") " + }, + { + "kind": "typeIdentifier", + "preciseIdentifier": "c:Qoobjc(pl)MyProtocol", + "spelling": "id<MyProtocol>" + }, + { + "kind": "text", + "spelling": " * " + }, + { + "kind": "identifier", + "spelling": "obj2" + }, + { + "kind": "text", + "spelling": ";" + } + ], + "identifier": { + "interfaceLanguage": "objective-c", + "precise": "c:objc(cs)MyInterface(py)obj2" + }, + "kind": { + "displayName": "Instance Property", + "identifier": "objective-c.property" + }, + "location": { + "position": { + "character": 37, + "line": 5 + }, + "uri": "file://INPUT_DIR/input.h" + }, + "names": { + "navigator": [ + { + "kind": "identifier", + "spelling": "obj2" + } + ], + "subHeading": [ + { + "kind": "identifier", + "spelling": "obj2" + } + ], + "title": "obj2" + }, + "pathComponents": [ + "MyInterface", + "obj2" + ] + }, + { + "accessLevel": "public", + "declarationFragments": [ + { + "kind": "keyword", + "spelling": "@protocol" + }, + { + "kind": "text", + "spelling": " " + }, + { + "kind": "identifier", + "spelling": "MyProtocol" + } + ], + "identifier": { + "interfaceLanguage": "objective-c", + "precise": "c:objc(pl)MyProtocol" + }, + "kind": { + "displayName": "Protocol", + "identifier": "objective-c.protocol" + }, + "location": { + "position": { + "character": 10, + "line": 0 + }, + "uri": "file://INPUT_DIR/input.h" + }, + "names": { + "navigator": [ + { + "kind": "identifier", + "spelling": "MyProtocol" + } + ], + "subHeading": [ + { + "kind": "identifier", + "spelling": "MyProtocol" + } + ], + "title": "MyProtocol" + }, + "pathComponents": [ + "MyProtocol" + ] + } + ] +} |