Skip to content

Commit 666003e

Browse files
committed
[lldb] Add Foundation._NSSwiftTimeZone support
`_NSSwiftTimeZone` is the new Swift implementation of `NSTimeZone`.
1 parent b4e30b7 commit 666003e

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,20 @@ bool lldb_private::formatters::NSTimeZoneSummaryProvider(
132132
stream.Printf("%s", summary_stream.GetData());
133133
return true;
134134
}
135+
} else if (class_name == "_NSSwiftTimeZone") {
136+
llvm::ArrayRef<ConstString> identifier_path = {
137+
ConstString("timeZone"),
138+
ConstString("_timeZone"),
139+
ConstString("some"),
140+
ConstString("identifier"),
141+
};
142+
if (auto identifier_sp = valobj.GetChildAtNamePath(identifier_path)) {
143+
std::string desc;
144+
if (identifier_sp->GetSummaryAsCString(desc, options)) {
145+
stream.PutCString(desc);
146+
return true;
147+
}
148+
}
135149
}
136150

137151
return false;

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

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

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

0 commit comments

Comments
 (0)