mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-02 18:56:05 +00:00

This extends ExtractAPI to take into account symbols defined in categories to types defined in an external module. This introduces 2 new command line flags, `--symbol-graph-dir=DIR` and `--emit-extension-symbol-graphs`, when used together this generates additional symbol graph files at `DIR/ExtendedModule@ProductName.symbols.json` for each external module that is extended in this way. Additionally this makes some cleanups to tests to make them more resilient and cleans up the `APISet` data structure.
27 lines
1.2 KiB
Objective-C
27 lines
1.2 KiB
Objective-C
// RUN: rm -rf %t
|
|
// RUN: %clang_cc1 -extract-api --pretty-sgf --emit-sgf-symbol-labels-for-testing \
|
|
// RUN: -triple arm64-apple-macosx -x objective-c-header %s -o - -verify | FileCheck %s
|
|
|
|
@protocol Protocol
|
|
@property(class) int myProtocolTypeProp;
|
|
// CHECK-DAG: "!testRelLabel": "memberOf $ c:objc(pl)Protocol(cpy)myProtocolTypeProp $ c:objc(pl)Protocol"
|
|
@property int myProtocolInstanceProp;
|
|
// CHECK-DAG: "!testRelLabel": "memberOf $ c:objc(pl)Protocol(py)myProtocolInstanceProp $ c:objc(pl)Protocol"
|
|
@end
|
|
|
|
@interface Interface
|
|
@property(class) int myInterfaceTypeProp;
|
|
// CHECk-DAG: "!testRelLabel": "memberOf $ c:objc(cs)Interface(cpy)myInterfaceTypeProp $ c:objc(cs)Interface"
|
|
@property int myInterfaceInstanceProp;
|
|
// CHECK-DAG: "!testRelLabel": "memberOf $ c:objc(cs)Interface(py)myInterfaceInstanceProp $ c:objc(cs)Interface"
|
|
@end
|
|
|
|
@interface Interface (Category) <Protocol>
|
|
@property(class) int myCategoryTypeProp;
|
|
// CHECK-DAG: "!testRelLabel": "memberOf $ c:objc(cs)Interface(cpy)myCategoryTypeProp $ c:objc(cs)Interface"
|
|
@property int myCategoryInstanceProp;
|
|
// CHECK-DAG "!testRelLabel": "memberOf $ c:objc(cs)Interface(py)myCategoryInstanceProp $ c:objc(cs)Interface"
|
|
@end
|
|
|
|
// expected-no-diagnostics
|