|
| 1 | +// RUN: %empty-directory(%t) |
| 2 | +// RUN: echo "[MyProto]" > %t/protocols.json |
| 3 | + |
| 4 | +// RUN: %target-swift-frontend -typecheck -emit-const-values-path %t/ExtractLiterals.swiftconstvalues -const-gather-protocols-file %t/protocols.json -primary-file %s |
| 5 | +// RUN: cat %t/ExtractLiterals.swiftconstvalues 2>&1 | %FileCheck %s |
| 6 | + |
| 7 | +protocol MyProto {} |
| 8 | + |
| 9 | +protocol Bird {} |
| 10 | +struct Warbler<T> : Bird {} |
| 11 | +struct Avocet : Bird {} |
| 12 | +struct RainbowLorikeet : Bird {} |
| 13 | + |
| 14 | +struct TypeValuePropertyStruct : MyProto { |
| 15 | + var birdTypes: [any Bird.Type] = [Warbler<String>.self, Avocet.self, RainbowLorikeet.self] |
| 16 | +} |
| 17 | + |
| 18 | +// CHECK: "label": "birdTypes", |
| 19 | +// CHECK-NEXT: "type": "Swift.Array<ExtractTypeValue.Bird.Type>", |
| 20 | +// CHECK-NEXT: "isStatic": "false", |
| 21 | +// CHECK-NEXT: "isComputed": "false", |
| 22 | +// CHECK-NEXT: "file": "{{.*}}ExtractTypeValue.swift", |
| 23 | +// CHECK-NEXT: "line": 15, |
| 24 | +// CHECK-NEXT: "valueKind": "Array", |
| 25 | +// CHECK-NEXT: "value": [ |
| 26 | +// CHECK-NEXT: { |
| 27 | +// CHECK-NEXT: "valueKind": "Type", |
| 28 | +// CHECK-NEXT: "value": { |
| 29 | +// CHECK-NEXT: "type": "ExtractTypeValue.Warbler<Swift.String>.Type", |
| 30 | +// CHECK-NEXT: "mangledName": "16ExtractTypeValue7WarblerVySSGm" |
| 31 | +// CHECK-NEXT: } |
| 32 | +// CHECK-NEXT: }, |
| 33 | +// CHECK-NEXT: { |
| 34 | +// CHECK-NEXT: "valueKind": "Type", |
| 35 | +// CHECK-NEXT: "value": { |
| 36 | +// CHECK-NEXT: "type": "ExtractTypeValue.Avocet.Type", |
| 37 | +// CHECK-NEXT: "mangledName": "16ExtractTypeValue6AvocetVm" |
| 38 | +// CHECK-NEXT: } |
| 39 | +// CHECK-NEXT: }, |
| 40 | +// CHECK-NEXT: { |
| 41 | +// CHECK-NEXT: "valueKind": "Type", |
| 42 | +// CHECK-NEXT: "value": { |
| 43 | +// CHECK-NEXT: "type": "ExtractTypeValue.RainbowLorikeet.Type", |
| 44 | +// CHECK-NEXT: "mangledName": "16ExtractTypeValue15RainbowLorikeetVm" |
| 45 | +// CHECK-NEXT: } |
| 46 | +// CHECK-NEXT: } |
| 47 | +// CHECK-NEXT: ] |
0 commit comments