diff --git a/lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp b/lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp index 671d470d22945..b381ee24d7b4d 100644 --- a/lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp +++ b/lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp @@ -497,6 +497,10 @@ static void LoadSwiftFormatters(lldb::TypeCategoryImplSP swift_category_sp) { AddCXXSummary(swift_category_sp, staticstring_summary_provider, "Swift.StaticString summary provider", ConstString("Swift.StaticString"), summary_flags); + AddCXXSummary(swift_category_sp, + lldb_private::formatters::NSStringSummaryProvider, + "Swift.__StringStorage summary provider", + "Swift.__StringStorage", summary_flags); AddCXXSummary(swift_category_sp, lldb_private::formatters::swift::TaskPriority_SummaryProvider, "Swift TaskPriority summary provider", "Swift.TaskPriority", diff --git a/lldb/test/API/functionalities/data-formatter/swift/bridged-string/Makefile b/lldb/test/API/functionalities/data-formatter/swift/bridged-string/Makefile new file mode 100644 index 0000000000000..cca30b939e652 --- /dev/null +++ b/lldb/test/API/functionalities/data-formatter/swift/bridged-string/Makefile @@ -0,0 +1,3 @@ +SWIFT_SOURCES := main.swift +SWIFTFLAGS_EXTRAS := -parse-as-library +include Makefile.rules diff --git a/lldb/test/API/functionalities/data-formatter/swift/bridged-string/TestSwiftBridgedStringFormatters.py b/lldb/test/API/functionalities/data-formatter/swift/bridged-string/TestSwiftBridgedStringFormatters.py new file mode 100644 index 0000000000000..e80460afd060b --- /dev/null +++ b/lldb/test/API/functionalities/data-formatter/swift/bridged-string/TestSwiftBridgedStringFormatters.py @@ -0,0 +1,16 @@ +import lldb +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * +import lldbsuite.test.lldbutil as lldbutil + + +class TestCase(TestBase): + + @swiftTest + @skipUnlessFoundation + def test(self): + self.build() + lldbutil.run_to_source_breakpoint( + self, "break here", lldb.SBFileSpec("main.swift") + ) + self.expect("v d[0].value", substrs=['value = "one.2.three"']) diff --git a/lldb/test/API/functionalities/data-formatter/swift/bridged-string/main.swift b/lldb/test/API/functionalities/data-formatter/swift/bridged-string/main.swift new file mode 100644 index 0000000000000..b43b59eb56f47 --- /dev/null +++ b/lldb/test/API/functionalities/data-formatter/swift/bridged-string/main.swift @@ -0,0 +1,10 @@ +import Foundation + +@main struct Entry { + static func main() { + let s = "one.two.three" + let d = NSMutableDictionary() + d["key"] = s.replacingOccurrences(of: "two", with: "2") + print("break here") + } +}