<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 24, 2011, at 12:47 PM, Stefan Seefeld wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On 2011-01-24 13:49, Douglas Gregor wrote:<br><blockquote type="cite">On Jan 21, 2011, at 1:06 PM, Stefan Seefeld wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">I'm trying to access the newly defined type (CXType), as well as the<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">aliased type, starting from a CXCursor of kind CXCursor_TypedefDecl.<br></blockquote></blockquote><blockquote type="cite">There isn't an API to access just the aliased type as it was written. You can use clang_getCanonicalType() to get down to the canonical form of the type. I'd be fine with adding some kind of clang_getDesugaredType() operation to desugar a given type by one step.<br></blockquote><br>That might be useful indeed.<br><br><br>Given<br><br>   typedef int const * const &RPInt;<br><br>How can I access the details of the aliased type ? Right now I'm seeing <br>an LValueReference, which I can "unwrap" using clang_getPointeeType <br>multiple times. Is there a way to learn about any involved cv-qualifiers ?<br><br>On a somewhat related note: I can't see any type representing arrays, <br>and no way to retrieve the array size(s).<br>(Array parameters seem to decay to pointer types, which also looks wrong.)<br></div></blockquote></div><br><div>CXType doesn't fully expose the Clang type system, although it could. I'd support the addition of APIs to extract more information from CXTypes.</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>- Doug</div></body></html>