DoDoENT added a comment. > Generally the way to do it, if you want to introspect into the type, its > template parameters, etc, then yes, keeping pointers to the AST or reparsing > the name with Clang as-needed, would be the way to go - or walking the AST > up-front and generating your own data structure (not necessarily a string) > with the data you want in some structured format.
This is precisely what I'm trying to avoid. Source files that include AST-related headers are extremely slow to compile, so I want to build a facade around the code that interacts with clang to keep my build times as low as possible. Thus, I will pay for the slow compilation only in a couple of files. > Sorry, I'm confused - it sounded like you didn't actually want a string, > though - you want the type information to make various semantic-aware choices > in your tool, yes? At the end of the line, I will need a string representation of the type name, at least in my current approach. > Again, I'm not advocating for the printing as-is, I think adding the top > level name that disambiguates would be a good thing - and I think the GCC and > MSVC examples somewhat show why adding all the other layers would be harmful > to readability - there's a lot of text in those messages that doesn't > directly help the user and gets in the way of identifying the important > differences between the type names. I think this is a matter of taste. In the example that you've shown, I personally prefer the verbosity of GCC and don't see it as "less readable", but as "more informative". However, I do understand that some people may prefer the output you suggested. What about making this configurable, i.e. behind some clang flag, so that developers that prefer verbosity can enable that? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134453/new/ https://reviews.llvm.org/D134453 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits