Skip to content

Commit b3b2f37

Browse files
authored
Merge pull request #72822 from stephentyrone/a-a-ambiguity-breaker-part-ii
Further ambiguity breakers for UDC & SEDC
2 parents d97c6ef + cb400c6 commit b3b2f37

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

stdlib/public/core/Codable.swift

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7128,3 +7128,29 @@ extension SingleValueEncodingContainer where Self: UnkeyedEncodingContainer {
71287128
)
71297129
}
71307130
}
7131+
7132+
// Default implementations for types with stricter availability than SVDC & UDC
7133+
// We need these to break ambiguity when an encoding container conforms to both.
7134+
extension SingleValueDecodingContainer where Self: UnkeyedDecodingContainer {
7135+
@available(SwiftStdlib 6.0, *)
7136+
public func decode(_ type: Int128.Type) throws -> Int128 {
7137+
throw DecodingError.typeMismatch(
7138+
Int128.self,
7139+
DecodingError.Context(
7140+
codingPath: codingPath,
7141+
debugDescription: "Decoder has not implemented support for Int128"
7142+
)
7143+
)
7144+
}
7145+
7146+
@available(SwiftStdlib 6.0, *)
7147+
public func decode(_ type: UInt128.Type) throws -> UInt128 {
7148+
throw DecodingError.typeMismatch(
7149+
UInt128.self,
7150+
DecodingError.Context(
7151+
codingPath: codingPath,
7152+
debugDescription: "Decoder has not implemented support for UInt128"
7153+
)
7154+
)
7155+
}
7156+
}

test/abi/macOS/arm64/stdlib.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ Added: _$ss24UnkeyedEncodingContainerPsE6encodeyys6Int128VKF
268268
Added: _$ss28SingleValueDecodingContainerP6decodeys6Int128VAEmKFTj
269269
Added: _$ss28SingleValueDecodingContainerP6decodeys6Int128VAEmKFTq
270270
Added: _$ss28SingleValueDecodingContainerPsE6decodeys6Int128VAEmKF
271+
Added: _$ss28SingleValueDecodingContainerPss07UnkeyedcD0RzrlE6decodeys6Int128VAFmKF
271272
Added: _$ss28SingleValueEncodingContainerP6encodeyys6Int128VKFTj
272273
Added: _$ss28SingleValueEncodingContainerP6encodeyys6Int128VKFTq
273274
Added: _$ss28SingleValueEncodingContainerPsE6encodeyys6Int128VKF
@@ -406,6 +407,7 @@ Added: _$ss24UnkeyedEncodingContainerPsE6encodeyys7UInt128VKF
406407
Added: _$ss28SingleValueDecodingContainerP6decodeys7UInt128VAEmKFTj
407408
Added: _$ss28SingleValueDecodingContainerP6decodeys7UInt128VAEmKFTq
408409
Added: _$ss28SingleValueDecodingContainerPsE6decodeys7UInt128VAEmKF
410+
Added: _$ss28SingleValueDecodingContainerPss07UnkeyedcD0RzrlE6decodeys7UInt128VAFmKF
409411
Added: _$ss28SingleValueEncodingContainerP6encodeyys7UInt128VKFTj
410412
Added: _$ss28SingleValueEncodingContainerP6encodeyys7UInt128VKFTq
411413
Added: _$ss28SingleValueEncodingContainerPsE6encodeyys7UInt128VKF

test/abi/macOS/x86_64/stdlib.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ Added: _$ss24UnkeyedEncodingContainerPsE6encodeyys6Int128VKF
268268
Added: _$ss28SingleValueDecodingContainerP6decodeys6Int128VAEmKFTj
269269
Added: _$ss28SingleValueDecodingContainerP6decodeys6Int128VAEmKFTq
270270
Added: _$ss28SingleValueDecodingContainerPsE6decodeys6Int128VAEmKF
271+
Added: _$ss28SingleValueDecodingContainerPss07UnkeyedcD0RzrlE6decodeys6Int128VAFmKF
271272
Added: _$ss28SingleValueEncodingContainerP6encodeyys6Int128VKFTj
272273
Added: _$ss28SingleValueEncodingContainerP6encodeyys6Int128VKFTq
273274
Added: _$ss28SingleValueEncodingContainerPsE6encodeyys6Int128VKF
@@ -406,6 +407,7 @@ Added: _$ss24UnkeyedEncodingContainerPsE6encodeyys7UInt128VKF
406407
Added: _$ss28SingleValueDecodingContainerP6decodeys7UInt128VAEmKFTj
407408
Added: _$ss28SingleValueDecodingContainerP6decodeys7UInt128VAEmKFTq
408409
Added: _$ss28SingleValueDecodingContainerPsE6decodeys7UInt128VAEmKF
410+
Added: _$ss28SingleValueDecodingContainerPss07UnkeyedcD0RzrlE6decodeys7UInt128VAFmKF
409411
Added: _$ss28SingleValueEncodingContainerP6encodeyys7UInt128VKFTj
410412
Added: _$ss28SingleValueEncodingContainerP6encodeyys7UInt128VKFTq
411413
Added: _$ss28SingleValueEncodingContainerPsE6encodeyys7UInt128VKF

0 commit comments

Comments
 (0)