While it generates some ugly code I found it easier to simply use the canonical names for all types.   I spent tens of hours fighting this and never found a good way.   <span></span><br><br>On Tuesday, September 27, 2016, Michael via cfe-users <<a href="mailto:cfe-users@lists.llvm.org">cfe-users@lists.llvm.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Nobody? Wrong list? Any insight in this would be greatly appreciated.<br>
<br>
Thanks<br>
<br>
Michael<br>
<br>
On 08/30/2016 07:00 PM, Michael via cfe-users wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi<br>
<br>
Hope I picked the right place for this kind of problem, if not please let me know.<br>
<br>
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.<br>
<br>
Minimal example:<br>
<br>
namespace foo {<br>
class Bar {<br>
};<br>
typedef Bar BarDef;<br>
}<br>
<br>
clang_getTypeSpelling on "Bar" (kind "Record") gives: "foo::Bar"<br>
clang_getTypeSpelling on "BarDef" (kind "Typedef") gives: "BarDef" (<== missing "foo::")<br>
<br>
Any idea how to solve this problem? Am I missing something?<br>
<br>
Thanks<br>
<br>
Michael<br>
______________________________<wbr>_________________<br>
cfe-users mailing list<br>
<a>cfe-users@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-users</a><br>
</blockquote>
<br>
______________________________<wbr>_________________<br>
cfe-users mailing list<br>
<a>cfe-users@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-users</a><br>
</blockquote>