Skip to content

Commit c0b76ea

Browse files
committed
[lldb] Desugar unlimited levels when calculating type name
1 parent 1bcbf02 commit c0b76ea

File tree

3 files changed

+6
-13
lines changed

3 files changed

+6
-13
lines changed

lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5569,7 +5569,7 @@ ConstString SwiftASTContext::GetTypeName(opaque_compiler_type_t type) {
55695569
swift::Type swift_type(GetSwiftType(type));
55705570

55715571
swift::Type normalized_type =
5572-
swift_type.transform([](swift::Type type) -> swift::Type {
5572+
swift_type.transformRec([](swift::Type type) -> swift::Type {
55735573
if (swift::SyntaxSugarType *syntax_sugar_type =
55745574
swift::dyn_cast<swift::SyntaxSugarType>(type.getPointer())) {
55755575
return syntax_sugar_type->getSinglyDesugaredType();

lldb/source/Plugins/TypeSystem/Swift/TypeSystemSwiftTypeRef.cpp

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -905,7 +905,7 @@ TypeSystemSwiftTypeRef::GetSwiftified(swift::Demangle::Demangler &dem,
905905

906906
swift::Demangle::NodePointer TypeSystemSwiftTypeRef::GetNodeForPrintingImpl(
907907
swift::Demangle::Demangler &dem, swift::Demangle::NodePointer node,
908-
bool resolve_objc_module, bool desugar) {
908+
bool resolve_objc_module) {
909909
using namespace swift::Demangle;
910910
return Transform(dem, node, [&](NodePointer node) {
911911
NodePointer canonical = node;
@@ -957,26 +957,19 @@ swift::Demangle::NodePointer TypeSystemSwiftTypeRef::GetNodeForPrintingImpl(
957957
}
958958

959959
case Node::Kind::SugaredOptional:
960-
// This is particularly silly. The outermost sugared Optional is
961-
// desugared. See SwiftASTContext::GetTypeName() and remove it there, too!
962-
if (desugar && node->getNumChildren() == 1) {
963-
desugar = false;
960+
if (node->getNumChildren() == 1) {
964961
return Desugar(dem, node, Node::Kind::BoundGenericEnum,
965962
Node::Kind::Enum, "Optional");
966963
}
967964
return node;
968965
case Node::Kind::SugaredArray:
969-
// See comment on SugaredOptional.
970-
if (desugar && node->getNumChildren() == 1) {
971-
desugar = false;
966+
if (node->getNumChildren() == 1) {
972967
return Desugar(dem, node, Node::Kind::BoundGenericStructure,
973968
Node::Kind::Structure, "Array");
974969
}
975970
return node;
976971
case Node::Kind::SugaredDictionary:
977-
// See comment on SugaredOptional.
978-
if (desugar && node->getNumChildren() == 1) {
979-
desugar = false;
972+
if (node->getNumChildren() == 1) {
980973
return Desugar(dem, node, Node::Kind::BoundGenericStructure,
981974
Node::Kind::Structure, "Dictionary");
982975
}

lldb/source/Plugins/TypeSystem/Swift/TypeSystemSwiftTypeRef.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ class TypeSystemSwiftTypeRef : public TypeSystemSwift {
331331
swift::Demangle::NodePointer
332332
GetNodeForPrintingImpl(swift::Demangle::Demangler &dem,
333333
swift::Demangle::NodePointer node,
334-
bool resolve_objc_module, bool desugar = true);
334+
bool resolve_objc_module);
335335

336336
/// Return the demangle tree representation with all "__C" module
337337
/// names with their actual Clang module names.

0 commit comments

Comments
 (0)