Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions interpreter/cling/lib/Utils/AST.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1722,6 +1722,14 @@ namespace utils {
}
QT = etype_input->getNamedType();
}

// We don't consider the alias introduced by `using a::X` as a new type.
// The qualified name is still a::X.
if (const auto* UT = QT->getAs<UsingType>()) {
QT = Ctx.getQualifiedType(UT->getUnderlyingType(), prefix_qualifiers);
return GetFullyQualifiedType(QT, Ctx);
}

if (prefix == nullptr) {
// Create a nested name specifier if needed (i.e. if the decl context
// is not the global scope.
Expand Down
2 changes: 1 addition & 1 deletion roottest/root/meta/naming/execResolveTypedef.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ int execResolveTypedef()

testing("unsigned int", TClassEdit::ResolveTypedef("SG::sgkey_t"));
testing("unsigned int", TClass::GetClass("PackedParameters")->GetDataMember("m_sgkey")->GetTrueTypeName());
testing("SG::sgkey_t", TClass::GetClass("PackedParameters")->GetDataMember("m_sgkey")->GetFullTypeName());
testing("uint32_t", TClass::GetClass("PackedParameters")->GetDataMember("m_sgkey")->GetFullTypeName());
testing("RT::EX::ClusterSize", TClassEdit::ResolveTypedef("RT::EX::ClusterSize_t"));
return 0;
}
2 changes: 1 addition & 1 deletion roottest/root/meta/naming/execResolveTypedef.ref
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,6 @@ Test 82 The result is correct: ::SomeTypedefName_tSF
Test 83 The result is correct: ::int
Test 84 The result is correct: unsigned int
Test 85 The result is correct: unsigned int
Test 86 The result is correct: SG::sgkey_t
Test 86 The result is correct: uint32_t
Test 87 The result is correct: RT::EX::ClusterSize
(int) 0
Loading