File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed
test/Interop/Cxx/stdlib/overlay Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,12 @@ extension std.string: ExpressibleByStringLiteral {
29
29
}
30
30
}
31
31
32
+ extension std . string : CustomDebugStringConvertible {
33
+ public var debugDescription : String {
34
+ return " std.string( \( String ( cxxString: self ) ) ) "
35
+ }
36
+ }
37
+
32
38
extension String {
33
39
/// Creates a String having the same content as the given C++ string.
34
40
///
Original file line number Diff line number Diff line change @@ -37,6 +37,21 @@ StdStringOverlayTestSuite.test("std::string <=> Swift.String") {
37
37
expectEqual ( swift6, " xyz \0 abc " )
38
38
}
39
39
40
+ StdStringOverlayTestSuite . test ( " std::string as Swift.CustomDebugStringConvertible " ) {
41
+ let cxx1 = std. string ( )
42
+ expectEqual ( cxx1. debugDescription, " std.string() " )
43
+
44
+ let cxx2 = std. string ( " something123 " )
45
+ expectEqual ( cxx2. debugDescription, " std.string(something123) " )
46
+
47
+ let bytes : [ UInt8 ] = [ 0xE1 , 0xC1 , 0xAC ]
48
+ var cxx3 = std. string ( )
49
+ for byte in bytes {
50
+ cxx3. push_back ( CChar ( bitPattern: byte) )
51
+ }
52
+ expectEqual ( cxx3. debugDescription, " std.string(���) " )
53
+ }
54
+
40
55
StdStringOverlayTestSuite . test ( " std::string as Swift.Sequence " ) {
41
56
let cxx1 = std. string ( )
42
57
var iterated = false
You can’t perform that action at this time.
0 commit comments