mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
86 lines
2.5 KiB
Swift
86 lines
2.5 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: echo "[MyProto]" > %t/protocols.json
|
|
|
|
// RUN: %target-swift-frontend -typecheck -emit-const-values-path %t/ExtractStaticFunctions.swiftconstvalues -const-gather-protocols-file %t/protocols.json -primary-file %s
|
|
// RUN: cat %t/ExtractStaticFunctions.swiftconstvalues 2>&1 | %FileCheck %s
|
|
|
|
protocol MyProto {}
|
|
|
|
enum Bar {
|
|
case one
|
|
case two(item: String)
|
|
}
|
|
|
|
struct Baz {
|
|
static var one: Baz {
|
|
Baz()
|
|
}
|
|
|
|
static func two(item: String) -> Baz {
|
|
return Baz()
|
|
}
|
|
|
|
static func three() -> Baz {
|
|
return Baz()
|
|
}
|
|
}
|
|
|
|
struct Statics: MyProto {
|
|
var bar1 = Bar.one
|
|
var bar2 = Bar.two(item: "bar")
|
|
var baz1 = Baz.one
|
|
var baz2 = Baz.two(item: "baz")
|
|
var baz3 = Baz.three()
|
|
}
|
|
|
|
// CHECK: "label": "bar1",
|
|
// CHECK-NEXT: "type": "ExtractStaticFunctions.Bar",
|
|
// CHECK: "valueKind": "Enum",
|
|
// CHECK-NEXT: "value": {
|
|
// CHECK-NEXT: "name": "one"
|
|
// CHECK-NEXT: }
|
|
// CHECK: "label": "bar2",
|
|
// CHECK-NEXT: "type": "ExtractStaticFunctions.Bar",
|
|
// CHECK: "valueKind": "Enum",
|
|
// CHECK-NEXT: "value": {
|
|
// CHECK-NEXT: "name": "two",
|
|
// CHECK-NEXT: "arguments": [
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: "label": "item",
|
|
// CHECK-NEXT: "type": "Swift.String",
|
|
// CHECK-NEXT: "valueKind": "RawLiteral",
|
|
// CHECK-NEXT: "value": "bar"
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: ]
|
|
// CHECK-NEXT: }
|
|
// CHECK: "label": "baz1",
|
|
// CHECK-NEXT: "type": "ExtractStaticFunctions.Baz",
|
|
// CHECK: "valueKind": "MemberReference"
|
|
// CHECK-NEXT: "value": {
|
|
// CHECK-NEXT: "baseType": "ExtractStaticFunctions.Baz",
|
|
// CHECK-NEXT: "memberLabel": "one"
|
|
// CHECK-NEXT: }
|
|
// CHECK: "label": "baz2",
|
|
// CHECK-NEXT: "type": "ExtractStaticFunctions.Baz",
|
|
// CHECK: "valueKind": "StaticFunctionCall",
|
|
// CHECK-NEXT: "value": {
|
|
// CHECK-NEXT: "type": "ExtractStaticFunctions.Baz",
|
|
// CHECK-NEXT: "memberLabel": "two",
|
|
// CHECK-NEXT: "arguments": [
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: "label": "item",
|
|
// CHECK-NEXT: "type": "Swift.String",
|
|
// CHECK-NEXT: "valueKind": "RawLiteral",
|
|
// CHECK-NEXT: "value": "baz"
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: ]
|
|
// CHECK-NEXT: }
|
|
// CHECK: "label": "baz3",
|
|
// CHECK-NEXT: "type": "ExtractStaticFunctions.Baz",
|
|
// CHECK: "valueKind": "StaticFunctionCall",
|
|
// CHECK-NEXT: "value": {
|
|
// CHECK-NEXT: "type": "ExtractStaticFunctions.Baz",
|
|
// CHECK-NEXT: "memberLabel": "three",
|
|
// CHECK-NEXT: "arguments": []
|
|
// CHECK-NEXT: }
|