[cfe-users] libclang: Spelling on typedefs lacks namespaces
Michael via cfe-users
cfe-users at lists.llvm.org
Tue Sep 27 05:55:31 PDT 2016
Nobody? Wrong list? Any insight in this would be greatly appreciated.
Thanks
Michael
On 08/30/2016 07:00 PM, Michael via cfe-users wrote:
> Hi
>
> Hope I picked the right place for this kind of problem, if not please
> let me know.
>
> I'm using libclang to parse header files and generate code from them.
> I found that clang_getTypeSpelling() usually includes the namespace(s)
> a type was declared in. However with the exception being typedefs (and
> same for "using A = B"). Not sure if this is a bug or intended
> behavior, but it seems at least inconsistent. I also couldn't really
> find a good workaround for this. I'd have to manually figure out all
> typedefs (not just pure typedefs, they could also be template
> parameters or whatever) and then their originating namespaces. This
> sounds a bit cumbersome and not really straight forward.
>
> Minimal example:
>
> namespace foo {
> class Bar {
> };
> typedef Bar BarDef;
> }
>
> clang_getTypeSpelling on "Bar" (kind "Record") gives: "foo::Bar"
> clang_getTypeSpelling on "BarDef" (kind "Typedef") gives: "BarDef"
> (<== missing "foo::")
>
> Any idea how to solve this problem? Am I missing something?
>
> Thanks
>
> Michael
> _______________________________________________
> cfe-users mailing list
> cfe-users at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
More information about the cfe-users
mailing list