You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The underlying bug of #8387 is the lack of full qualification of the argument types of function types: with
namespaceN {
structS {};
using Func_t = int(S*);
}
TClass::GetClass("vector<Func_t>")should fully qualify the name to "vector<int(N::S*)>" but instead leaves it at "vector<int(S*)>": cling/lib/Utils/AST.cpp's GetPartiallyDesugaredTypeImpl() checks whether the type is a TemplateSpecializationType and iterates over the template args, but it doesn't check whether it's a FunctionProtoType to iterate over the argument types.
That's a bug which might be relevant for cases like this:
Axel-Naumann
changed the title
Name normalization (fully-qualified) fails for function types / argument types
Full type name qualification fails for function types / argument types
Jun 17, 2021
The underlying bug of #8387 is the lack of full qualification of the argument types of function types: with
TClass::GetClass("vector<Func_t>")
should fully qualify the name to"vector<int(N::S*)>"
but instead leaves it at"vector<int(S*)>"
:cling/lib/Utils/AST.cpp
'sGetPartiallyDesugaredTypeImpl()
checks whether the type is aTemplateSpecializationType
and iterates over the template args, but it doesn't check whether it's aFunctionProtoType
to iterate over the argument types.That's a bug which might be relevant for cases like this:
Note: this relates (was discovered through) #8387
The text was updated successfully, but these errors were encountered: