Skip to content

Commit 19a3035

Browse files
committed
[lldb] Add Foundation._NSSwiftTimeZone support
`_NSSwiftTimeZone` is the new Swift implementation of `NSTimeZone`. (cherry picked from commit 666003e)
1 parent 6e5a4b5 commit 19a3035

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

lldb/source/Plugins/Language/ObjC/Cocoa.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,16 @@ bool lldb_private::formatters::NSTimeZoneSummaryProvider(
131131
stream.Printf("%s", summary_stream.GetData());
132132
return true;
133133
}
134+
} else if (class_name == "_NSSwiftTimeZone") {
135+
llvm::ArrayRef<llvm::StringRef> identifier_path = {"timeZone", "_timeZone",
136+
"some", "identifier"};
137+
if (auto identifier_sp = valobj.GetChildAtNamePath(identifier_path)) {
138+
std::string desc;
139+
if (identifier_sp->GetSummaryAsCString(desc, options)) {
140+
stream.PutCString(desc);
141+
return true;
142+
}
143+
}
134144
}
135145

136146
return false;

lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,11 @@ LoadFoundationValueTypesFormatters(lldb::TypeCategoryImplSP swift_category_sp) {
635635
"Decimal summary provider", ConstString("Foundation.Decimal"),
636636
TypeSummaryImpl::Flags(summary_flags).SetDontShowChildren(true));
637637

638+
lldb_private::formatters::AddCXXSummary(
639+
swift_category_sp, lldb_private::formatters::NSTimeZoneSummaryProvider,
640+
"NSTimeZone summary provider", ConstString("Foundation._NSSwiftTimeZone"),
641+
TypeSummaryImpl::Flags(summary_flags).SetDontShowChildren(true));
642+
638643
lldb_private::formatters::AddCXXSynthetic(
639644
swift_category_sp,
640645
lldb_private::formatters::swift::URLComponentsSyntheticFrontEndCreator,

0 commit comments

Comments
 (0)