mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Just like #76041, but for ~Escapable instead of ~Copyable.
Resolves rdar://145945680.
This commit is contained in:
@@ -98,7 +98,7 @@ func _typeName(_ type: Any.Type, qualified: Bool = true) -> String {
|
||||
@available(SwiftStdlib 5.3, *)
|
||||
@_silgen_name("swift_getMangledTypeName")
|
||||
@_preInverseGenerics
|
||||
public func _getMangledTypeName(_ type: any ~Copyable.Type)
|
||||
public func _getMangledTypeName(_ type: any (~Copyable & ~Escapable).Type)
|
||||
-> (UnsafePointer<UInt8>, Int)
|
||||
|
||||
/// Returns the mangled name for a given type.
|
||||
@@ -106,7 +106,7 @@ public func _getMangledTypeName(_ type: any ~Copyable.Type)
|
||||
@_unavailableInEmbedded
|
||||
@_preInverseGenerics
|
||||
public // SPI
|
||||
func _mangledTypeName(_ type: any ~Copyable.Type) -> String? {
|
||||
func _mangledTypeName(_ type: any (~Copyable & ~Escapable).Type) -> String? {
|
||||
let (stringPtr, count) = unsafe _getMangledTypeName(type)
|
||||
guard count > 0 else {
|
||||
return nil
|
||||
|
||||
@@ -494,6 +494,7 @@ DemangleToMetadataTests.test("Nested types in same-type-constrained extensions")
|
||||
}
|
||||
|
||||
struct NonCopyable: ~Copyable {}
|
||||
struct NonEscapable: ~Escapable {}
|
||||
|
||||
if #available(SwiftStdlib 5.3, *) {
|
||||
DemangleToMetadataTests.test("Round-trip with _mangledTypeName and _typeByName") {
|
||||
@@ -531,6 +532,11 @@ if #available(SwiftStdlib 5.3, *) {
|
||||
let type: any ~Copyable.Type = NonCopyable.self
|
||||
expectEqual("4main11NonCopyableV", _mangledTypeName(type))
|
||||
}
|
||||
|
||||
DemangleToMetadataTests.test("Check _MangledTypeName with any ~Escapable.Type") {
|
||||
let type: any ~Escapable.Type = NonEscapable.self
|
||||
expectEqual("4main12NonEscapableV", _mangledTypeName(type))
|
||||
}
|
||||
}
|
||||
|
||||
if #available(SwiftStdlib 5.1, *) {
|
||||
|
||||
Reference in New Issue
Block a user