// 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 %t/output.symbols.json -verify // RUN: FileCheck %s --input-file %t/output.symbols.json @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" // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix NULLABLE @property(nullable, strong) id myNullableProp; // CHECK-DAG: "!testRelLabel": "memberOf $ c:objc(cs)Interface(py)myNullableProp $ c:objc(cs)Interface" // NULLABLE: "!testLabel": "c:objc(cs)Interface(py)myNullableProp" // NULLABLE: "declarationFragments": [ // NULLABLE: "kind": "keyword", // NULLABLE-NEXT: "spelling": "@property" // NULLABLE: "kind": "keyword", // NULLABLE-NEXT: "spelling": "strong" // NULLABLE: "kind": "keyword", // NULLABLE-NEXT: "spelling": "nullable" // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix NULLRESETTABLE @property(null_resettable, strong) id myNullResettableProp; // CHECK-DAG: "!testRelLabel": "memberOf $ c:objc(cs)Interface(py)myNullResettableProp $ c:objc(cs)Interface" // NULLRESETTABLE: "!testLabel": "c:objc(cs)Interface(py)myNullResettableProp" // NULLABLE: "declarationFragments": [ // NULLABLE: "kind": "keyword", // NULLABLE-NEXT: "spelling": "@property" // NULLABLE: "kind": "keyword", // NULLABLE-NEXT: "spelling": "strong" // NULLABLE: "kind": "keyword", // NULLABLE-NEXT: "spelling": "null_resettable" @end @interface Interface (Category) @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