Files
TheRock/compiler/amd-llvm/clang/test/ExtractAPI/objc_block.m
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

599 lines
20 KiB
Objective-C

// RUN: rm -rf %t
// RUN: %clang_cc1 -extract-api --pretty-sgf --emit-sgf-symbol-labels-for-testing \
// RUN: -fblocks -triple arm64-apple-macosx -x objective-c-header %s -o %t/output.symbols.json -verify
@interface Foo
// RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix NOPARAM
-(void)methodBlockNoParam:(void (^)())block;
// NOPARAM-LABEL: "!testLabel": "c:objc(cs)Foo(im)methodBlockNoParam:"
// NOPARAM: "declarationFragments": [
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "text",
// NOPARAM-NEXT: "spelling": "- ("
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "typeIdentifier",
// NOPARAM-NEXT: "preciseIdentifier": "c:v",
// NOPARAM-NEXT: "spelling": "void"
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "text",
// NOPARAM-NEXT: "spelling": ") "
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "identifier",
// NOPARAM-NEXT: "spelling": "methodBlockNoParam:"
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "text",
// NOPARAM-NEXT: "spelling": "("
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "typeIdentifier",
// NOPARAM-NEXT: "preciseIdentifier": "c:v",
// NOPARAM-NEXT: "spelling": "void"
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "text",
// NOPARAM-NEXT: "spelling": " (^)()) "
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "internalParam",
// NOPARAM-NEXT: "spelling": "block"
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "text",
// NOPARAM-NEXT: "spelling": ";"
// NOPARAM-NEXT: }
// NOPARAM-NEXT: ],
// NOPARAM: "functionSignature": {
// NOPARAM-NEXT: "parameters": [
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "declarationFragments": [
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "text",
// NOPARAM-NEXT: "spelling": "("
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "typeIdentifier",
// NOPARAM-NEXT: "preciseIdentifier": "c:v",
// NOPARAM-NEXT: "spelling": "void"
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "text",
// NOPARAM-NEXT: "spelling": " (^)()) "
// NOPARAM-NEXT: },
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "internalParam",
// NOPARAM-NEXT: "spelling": "block"
// NOPARAM-NEXT: }
// NOPARAM-NEXT: ],
// NOPARAM-NEXT: "name": "block"
// NOPARAM-NEXT: }
// NOPARAM-NEXT: ],
// NOPARAM-NEXT: "returns": [
// NOPARAM-NEXT: {
// NOPARAM-NEXT: "kind": "typeIdentifier",
// NOPARAM-NEXT: "preciseIdentifier": "c:v",
// NOPARAM-NEXT: "spelling": "void"
// NOPARAM-NEXT: }
// NOPARAM-NEXT: ]
// NOPARAM-NEXT: }
// RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix PARAM
-(void)methodBlockWithParam:(int (^)(int foo))block;
// PARAM-LABEL: "!testLabel": "c:objc(cs)Foo(im)methodBlockWithParam:"
// PARAM: "declarationFragments": [
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": "- ("
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "typeIdentifier",
// PARAM-NEXT: "preciseIdentifier": "c:v",
// PARAM-NEXT: "spelling": "void"
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": ") "
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "identifier",
// PARAM-NEXT: "spelling": "methodBlockWithParam:"
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": "("
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "typeIdentifier",
// PARAM-NEXT: "preciseIdentifier": "c:I",
// PARAM-NEXT: "spelling": "int"
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": " (^)("
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "typeIdentifier",
// PARAM-NEXT: "preciseIdentifier": "c:I",
// PARAM-NEXT: "spelling": "int"
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": " "
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "internalParam",
// PARAM-NEXT: "spelling": "foo"
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": ")) "
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "internalParam",
// PARAM-NEXT: "spelling": "block"
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": ";"
// PARAM-NEXT: }
// PARAM-NEXT: ],
// PARAM: "functionSignature": {
// PARAM-NEXT: "parameters": [
// PARAM-NEXT: {
// PARAM-NEXT: "declarationFragments": [
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": "("
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "typeIdentifier",
// PARAM-NEXT: "preciseIdentifier": "c:I",
// PARAM-NEXT: "spelling": "int"
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": " (^)("
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "typeIdentifier",
// PARAM-NEXT: "preciseIdentifier": "c:I",
// PARAM-NEXT: "spelling": "int"
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": " "
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "internalParam",
// PARAM-NEXT: "spelling": "foo"
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "text",
// PARAM-NEXT: "spelling": ")) "
// PARAM-NEXT: },
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "internalParam",
// PARAM-NEXT: "spelling": "block"
// PARAM-NEXT: }
// PARAM-NEXT: ],
// PARAM-NEXT: "name": "block"
// PARAM-NEXT: }
// PARAM-NEXT: ],
// PARAM-NEXT: "returns": [
// PARAM-NEXT: {
// PARAM-NEXT: "kind": "typeIdentifier",
// PARAM-NEXT: "preciseIdentifier": "c:v",
// PARAM-NEXT: "spelling": "void"
// PARAM-NEXT: }
// PARAM-NEXT: ]
// PARAM-NEXT: }
// RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix MULTIPARAM
-(void)methodBlockWithMultipleParam:(int (^)(int foo, unsigned baz))block;
// MULTIPARAM-LABEL: "!testLabel": "c:objc(cs)Foo(im)methodBlockWithMultipleParam:"
// MULTIPARAM: "declarationFragments": [
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": "- ("
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "typeIdentifier",
// MULTIPARAM-NEXT: "preciseIdentifier": "c:v",
// MULTIPARAM-NEXT: "spelling": "void"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": ") "
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "identifier",
// MULTIPARAM-NEXT: "spelling": "methodBlockWithMultipleParam:"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": "("
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "typeIdentifier",
// MULTIPARAM-NEXT: "preciseIdentifier": "c:I",
// MULTIPARAM-NEXT: "spelling": "int"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": " (^)("
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "typeIdentifier",
// MULTIPARAM-NEXT: "preciseIdentifier": "c:I",
// MULTIPARAM-NEXT: "spelling": "int"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": " "
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "internalParam",
// MULTIPARAM-NEXT: "spelling": "foo"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": ", "
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "typeIdentifier",
// MULTIPARAM-NEXT: "preciseIdentifier": "c:i",
// MULTIPARAM-NEXT: "spelling": "unsigned int"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": " "
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "internalParam",
// MULTIPARAM-NEXT: "spelling": "baz"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": ")) "
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "internalParam",
// MULTIPARAM-NEXT: "spelling": "block"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": ";"
// MULTIPARAM-NEXT: }
// MULTIPARAM-NEXT: ],
// MULTIPARAM: "functionSignature": {
// MULTIPARAM-NEXT: "parameters": [
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "declarationFragments": [
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": "("
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "typeIdentifier",
// MULTIPARAM-NEXT: "preciseIdentifier": "c:I",
// MULTIPARAM-NEXT: "spelling": "int"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": " (^)("
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "typeIdentifier",
// MULTIPARAM-NEXT: "preciseIdentifier": "c:I",
// MULTIPARAM-NEXT: "spelling": "int"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": " "
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "internalParam",
// MULTIPARAM-NEXT: "spelling": "foo"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": ", "
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "typeIdentifier",
// MULTIPARAM-NEXT: "preciseIdentifier": "c:i",
// MULTIPARAM-NEXT: "spelling": "unsigned int"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": " "
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "internalParam",
// MULTIPARAM-NEXT: "spelling": "baz"
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "text",
// MULTIPARAM-NEXT: "spelling": ")) "
// MULTIPARAM-NEXT: },
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "internalParam",
// MULTIPARAM-NEXT: "spelling": "block"
// MULTIPARAM-NEXT: }
// MULTIPARAM-NEXT: ],
// MULTIPARAM-NEXT: "name": "block"
// MULTIPARAM-NEXT: }
// MULTIPARAM-NEXT: ],
// MULTIPARAM-NEXT: "returns": [
// MULTIPARAM-NEXT: {
// MULTIPARAM-NEXT: "kind": "typeIdentifier",
// MULTIPARAM-NEXT: "preciseIdentifier": "c:v",
// MULTIPARAM-NEXT: "spelling": "void"
// MULTIPARAM-NEXT: }
// MULTIPARAM-NEXT: ]
// MULTIPARAM-NEXT: },
// RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix VARIADIC
-(void)methodBlockVariadic:(int (^)(int foo, ...))block;
// VARIADIC-LABEL: "!testLabel": "c:objc(cs)Foo(im)methodBlockVariadic:"
// VARIADIC: "declarationFragments": [
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": "- ("
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "typeIdentifier",
// VARIADIC-NEXT: "preciseIdentifier": "c:v",
// VARIADIC-NEXT: "spelling": "void"
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": ") "
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "identifier",
// VARIADIC-NEXT: "spelling": "methodBlockVariadic:"
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": "("
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "typeIdentifier",
// VARIADIC-NEXT: "preciseIdentifier": "c:I",
// VARIADIC-NEXT: "spelling": "int"
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": " (^)("
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "typeIdentifier",
// VARIADIC-NEXT: "preciseIdentifier": "c:I",
// VARIADIC-NEXT: "spelling": "int"
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": " "
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "internalParam",
// VARIADIC-NEXT: "spelling": "foo"
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": ", ...)) "
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "internalParam",
// VARIADIC-NEXT: "spelling": "block"
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": ";"
// VARIADIC-NEXT: }
// VARIADIC-NEXT: ],
// VARIADIC: "functionSignature": {
// VARIADIC-NEXT: "parameters": [
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "declarationFragments": [
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": "("
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "typeIdentifier",
// VARIADIC-NEXT: "preciseIdentifier": "c:I",
// VARIADIC-NEXT: "spelling": "int"
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": " (^)("
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "typeIdentifier",
// VARIADIC-NEXT: "preciseIdentifier": "c:I",
// VARIADIC-NEXT: "spelling": "int"
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": " "
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "internalParam",
// VARIADIC-NEXT: "spelling": "foo"
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "text",
// VARIADIC-NEXT: "spelling": ", ...)) "
// VARIADIC-NEXT: },
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "internalParam",
// VARIADIC-NEXT: "spelling": "block"
// VARIADIC-NEXT: }
// VARIADIC-NEXT: ],
// VARIADIC-NEXT: "name": "block"
// VARIADIC-NEXT: }
// VARIADIC-NEXT: ],
// VARIADIC-NEXT: "returns": [
// VARIADIC-NEXT: {
// VARIADIC-NEXT: "kind": "typeIdentifier",
// VARIADIC-NEXT: "preciseIdentifier": "c:v",
// VARIADIC-NEXT: "spelling": "void"
// VARIADIC-NEXT: }
// VARIADIC-NEXT: ]
// VARIADIC-NEXT: },
@end
// RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix FUNC
void func(int (^arg)(int foo));
// FUNC-LABEL: "!testLabel": "c:@F@func"
// FUNC: "declarationFragments": [
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "typeIdentifier",
// FUNC-NEXT: "preciseIdentifier": "c:v",
// FUNC-NEXT: "spelling": "void"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": " "
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "identifier",
// FUNC-NEXT: "spelling": "func"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": "("
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "typeIdentifier",
// FUNC-NEXT: "preciseIdentifier": "c:I",
// FUNC-NEXT: "spelling": "int"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": " (^"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "internalParam",
// FUNC-NEXT: "spelling": "arg"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": ")("
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "typeIdentifier",
// FUNC-NEXT: "preciseIdentifier": "c:I",
// FUNC-NEXT: "spelling": "int"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": " "
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "internalParam",
// FUNC-NEXT: "spelling": "foo"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": "));"
// FUNC-NEXT: }
// FUNC-NEXT: ],
// FUNC: "functionSignature": {
// FUNC-NEXT: "parameters": [
// FUNC-NEXT: {
// FUNC-NEXT: "declarationFragments": [
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "typeIdentifier",
// FUNC-NEXT: "preciseIdentifier": "c:I",
// FUNC-NEXT: "spelling": "int"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": " (^"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "internalParam",
// FUNC-NEXT: "spelling": "arg"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": ")("
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "typeIdentifier",
// FUNC-NEXT: "preciseIdentifier": "c:I",
// FUNC-NEXT: "spelling": "int"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": " "
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "internalParam",
// FUNC-NEXT: "spelling": "foo"
// FUNC-NEXT: },
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "text",
// FUNC-NEXT: "spelling": ")"
// FUNC-NEXT: }
// FUNC-NEXT: ],
// FUNC-NEXT: "name": "arg"
// FUNC-NEXT: }
// FUNC-NEXT: ],
// FUNC-NEXT: "returns": [
// FUNC-NEXT: {
// FUNC-NEXT: "kind": "typeIdentifier",
// FUNC-NEXT: "preciseIdentifier": "c:v",
// FUNC-NEXT: "spelling": "void"
// FUNC-NEXT: }
// FUNC-NEXT: ]
// FUNC-NEXT: },
// RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GLOBAL
int (^global)(int foo);
// GLOBAL-LABEL: "!testLabel": "c:@global"
// GLOBAL: "declarationFragments": [
// GLOBAL-NEXT: {
// GLOBAL-NEXT: "kind": "typeIdentifier",
// GLOBAL-NEXT: "preciseIdentifier": "c:I",
// GLOBAL-NEXT: "spelling": "int"
// GLOBAL-NEXT: },
// GLOBAL-NEXT: {
// GLOBAL-NEXT: "kind": "text",
// GLOBAL-NEXT: "spelling": " (^"
// GLOBAL-NEXT: },
// GLOBAL-NEXT: {
// GLOBAL-NEXT: "kind": "identifier",
// GLOBAL-NEXT: "spelling": "global"
// GLOBAL-NEXT: },
// GLOBAL-NEXT: {
// GLOBAL-NEXT: "kind": "text",
// GLOBAL-NEXT: "spelling": ")("
// GLOBAL-NEXT: },
// GLOBAL-NEXT: {
// GLOBAL-NEXT: "kind": "typeIdentifier",
// GLOBAL-NEXT: "preciseIdentifier": "c:I",
// GLOBAL-NEXT: "spelling": "int"
// GLOBAL-NEXT: },
// GLOBAL-NEXT: {
// GLOBAL-NEXT: "kind": "text",
// GLOBAL-NEXT: "spelling": " "
// GLOBAL-NEXT: },
// GLOBAL-NEXT: {
// GLOBAL-NEXT: "kind": "internalParam",
// GLOBAL-NEXT: "spelling": "foo"
// GLOBAL-NEXT: },
// GLOBAL-NEXT: {
// GLOBAL-NEXT: "kind": "text",
// GLOBAL-NEXT: "spelling": ");"
// GLOBAL-NEXT: }
// GLOBAL-NEXT: ],
///expected-no-diagnostics