1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
// RUN: %target-typecheck-verify-swift
// Enums which conform to CodingKey and which should derive conformance should
// get all synthesized methods that they do not implement themselves.
enum NoRawTypeKey1 : CodingKey {
case a, b, c
}
let _ = NoRawTypeKey1.a.stringValue
let _ = NoRawTypeKey1(stringValue: "a")
let _ = NoRawTypeKey1.a.intValue
let _ = NoRawTypeKey1(intValue: 0)
enum NoRawTypeKey2 : CodingKey {
case a, b, c
var stringValue: String { return "" }
}
let _ = NoRawTypeKey2.a.stringValue
let _ = NoRawTypeKey2(stringValue: "a")
let _ = NoRawTypeKey2.a.intValue
let _ = NoRawTypeKey2(intValue: 0)
enum NoRawTypeKey3 : CodingKey {
case a, b, c
var intValue: Int? { return nil }
}
let _ = NoRawTypeKey3.a.stringValue
let _ = NoRawTypeKey3(stringValue: "a")
let _ = NoRawTypeKey3.a.intValue
let _ = NoRawTypeKey3(intValue: 0)
enum NoRawTypeKey4 : CodingKey {
case a, b, c
init?(stringValue: String) { return nil }
}
let _ = NoRawTypeKey4.a.stringValue
let _ = NoRawTypeKey4(stringValue: "a")
let _ = NoRawTypeKey4.a.intValue
let _ = NoRawTypeKey4(intValue: 0)
enum NoRawTypeKey5 : CodingKey {
case a, b, c
init?(intValue: Int) { return nil }
}
let _ = NoRawTypeKey5.a.stringValue
let _ = NoRawTypeKey5(stringValue: "a")
let _ = NoRawTypeKey5.a.intValue
let _ = NoRawTypeKey5(intValue: 0)
enum NoRawTypeKey6 : CodingKey {
case a, b, c
var stringValue: String { return "" }
var intValue: Int? { return nil }
}
let _ = NoRawTypeKey6.a.stringValue
let _ = NoRawTypeKey6(stringValue: "a")
let _ = NoRawTypeKey6.a.intValue
let _ = NoRawTypeKey6(intValue: 0)
enum NoRawTypeKey7 : CodingKey {
case a, b, c
var stringValue: String { return "" }
init?(stringValue: String) { return nil }
}
let _ = NoRawTypeKey7.a.stringValue
let _ = NoRawTypeKey7(stringValue: "a")
let _ = NoRawTypeKey7.a.intValue
let _ = NoRawTypeKey7(intValue: 0)
enum NoRawTypeKey8 : CodingKey {
case a, b, c
var stringValue: String { return "" }
init?(intValue: Int) { return nil }
}
let _ = NoRawTypeKey8.a.stringValue
let _ = NoRawTypeKey8(stringValue: "a")
let _ = NoRawTypeKey8.a.intValue
let _ = NoRawTypeKey8(intValue: 0)
enum NoRawTypeKey9 : CodingKey {
case a, b, c
var intValue: Int? { return nil }
init?(stringValue: String) { return nil }
}
let _ = NoRawTypeKey9.a.stringValue
let _ = NoRawTypeKey9(stringValue: "a")
let _ = NoRawTypeKey9.a.intValue
let _ = NoRawTypeKey9(intValue: 0)
enum NoRawTypeKey10 : CodingKey {
case a, b, c
var intValue: Int? { return nil }
init?(intValue: Int) { return nil }
}
let _ = NoRawTypeKey10.a.stringValue
let _ = NoRawTypeKey10(stringValue: "a")
let _ = NoRawTypeKey10.a.intValue
let _ = NoRawTypeKey10(intValue: 0)
enum NoRawTypeKey11 : CodingKey {
case a, b, c
var stringValue: String { return "" }
var intValue: Int? { return nil }
init?(stringValue: String) { return nil }
}
let _ = NoRawTypeKey11.a.stringValue
let _ = NoRawTypeKey11(stringValue: "a")
let _ = NoRawTypeKey11.a.intValue
let _ = NoRawTypeKey11(intValue: 0)
enum NoRawTypeKey12 : CodingKey {
case a, b, c
var stringValue: String { return "" }
var intValue: Int? { return nil }
init?(intValue: Int) { return nil }
}
let _ = NoRawTypeKey12.a.stringValue
let _ = NoRawTypeKey12(stringValue: "a")
let _ = NoRawTypeKey12.a.intValue
let _ = NoRawTypeKey12(intValue: 0)
// Enums which provide implementations for all CodingKey methods should not
// derive conformance (but derived conformance should not interfere with the
// existing methods).
enum NoRawTypeKey13 : CodingKey {
case a, b, c
var stringValue: String { return "" }
var intValue: Int? { return nil }
init?(stringValue: String) { return nil }
init?(intValue: Int) { return nil }
}
let _ = NoRawTypeKey13.a.stringValue
let _ = NoRawTypeKey13(stringValue: "a")
let _ = NoRawTypeKey13.a.intValue
let _ = NoRawTypeKey13(intValue: 0)
|