|
| 1 | +// RUN: %empty-directory(%t) |
| 2 | +// RUN: echo "[MyProto]" > %t/protocols.json |
| 3 | + |
| 4 | +// RUN: %target-swift-frontend -typecheck -emit-const-values-path %t/ExtractVariadicArgs.swiftconstvalues -const-gather-protocols-file %t/protocols.json -primary-file %s |
| 5 | +// RUN: cat %t/ExtractVariadicArgs.swiftconstvalues 2>&1 | %FileCheck %s |
| 6 | + |
| 7 | +protocol MyProto {} |
| 8 | + |
| 9 | +public enum SimpleEnum: MyProto { |
| 10 | + static func varargs(args: Int...) -> [Int] { |
| 11 | + args |
| 12 | + } |
| 13 | +} |
| 14 | + |
| 15 | +public struct Driver: MyProto { |
| 16 | + static let someInts = SimpleEnum.varargs(args: 1, 2, 3, 4, 5) |
| 17 | +} |
| 18 | + |
| 19 | +// CHECK: "typeName": "ExtractVariadicArgs.Driver", |
| 20 | +// CHECK: "associatedTypeAliases": [], |
| 21 | +// CHECK-NEXT: "properties": [ |
| 22 | +// CHECK-NEXT: { |
| 23 | +// CHECK-NEXT: "label": "someInts", |
| 24 | +// CHECK-NEXT: "type": "Swift.Array<Swift.Int>", |
| 25 | +// CHECK-NEXT: "mangledTypeName": "n/a - deprecated", |
| 26 | +// CHECK-NEXT: "isStatic": "true", |
| 27 | +// CHECK-NEXT: "isComputed": "false", |
| 28 | +// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractVariadicArgs.swift", |
| 29 | +// CHECK-NEXT: "line": 16, |
| 30 | +// CHECK-NEXT: "valueKind": "StaticFunctionCall", |
| 31 | +// CHECK-NEXT: "value": { |
| 32 | +// CHECK-NEXT: "type": "Swift.Array<Swift.Int>", |
| 33 | +// CHECK-NEXT: "memberLabel": "varargs", |
| 34 | +// CHECK-NEXT: "arguments": [ |
| 35 | +// CHECK-NEXT: { |
| 36 | +// CHECK-NEXT: "label": "args", |
| 37 | +// CHECK-NEXT: "type": "Swift.Int...", |
| 38 | +// CHECK-NEXT: "valueKind": "Array", |
| 39 | +// CHECK-NEXT: "value": [ |
| 40 | +// CHECK-NEXT: { |
| 41 | +// CHECK-NEXT: "valueKind": "RawLiteral", |
| 42 | +// CHECK-NEXT: "value": "1" |
| 43 | +// CHECK-NEXT: }, |
| 44 | +// CHECK-NEXT: { |
| 45 | +// CHECK-NEXT: "valueKind": "RawLiteral", |
| 46 | +// CHECK-NEXT: "value": "2" |
| 47 | +// CHECK-NEXT: }, |
| 48 | +// CHECK-NEXT: { |
| 49 | +// CHECK-NEXT: "valueKind": "RawLiteral", |
| 50 | +// CHECK-NEXT: "value": "3" |
| 51 | +// CHECK-NEXT: }, |
| 52 | +// CHECK-NEXT: { |
| 53 | +// CHECK-NEXT: "valueKind": "RawLiteral", |
| 54 | +// CHECK-NEXT: "value": "4" |
| 55 | +// CHECK-NEXT: }, |
| 56 | +// CHECK-NEXT: { |
| 57 | +// CHECK-NEXT: "valueKind": "RawLiteral", |
| 58 | +// CHECK-NEXT: "value": "5" |
| 59 | +// CHECK-NEXT: } |
| 60 | +// CHECK-NEXT: ] |
| 61 | +// CHECK-NEXT: } |
| 62 | +// CHECK-NEXT: ] |
| 63 | +// CHECK-NEXT: } |
| 64 | +// CHECK-NEXT: } |
| 65 | +// CHECK-NEXT: ] |
0 commit comments