-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clang 16 fixes #472
Clang 16 fixes #472
Conversation
5f56b8a
to
6725562
Compare
ref: https://reviews.llvm.org/D112374 Co-Authored-By: James Wrigley <JamesWrigley@users.noreply.github.com>
I pushed a similar fix in bcab1c7. The following chunk of code basically reads:
Clang.jl/src/generator/resolve_deps.jl Lines 24 to 28 in e1a96ae
Lines 270 to 287 in e1a96ae
so, the old |
I suspect the documentation failure is related to the following contents. The range of the source code and comments are somehow miss-calculated for "elaborated" cursors.
|
This makes it a little easier to use from different directories.
6725562
to
08b1ad2
Compare
Neat, thanks ❤️ I think I figured out the documentation issue too, looks like we're hitting this bug: JuliaLang/julia#52986 |
Sorry. 😓 I did a rebase merge. Could you rebase this onto the master branch? |
No worries, will do :) |
This is a speculative attempt to fix Clang 16 compatibility. My understanding of the problem (helped by the folks on the LLVM Discourse) is that Clang 16 represents way more types as ElaboratedType's than before: llvm/llvm-project@15f3cd6
This PR fixes that by looking at the named type instead in most places. It's probably worth testing this on some bigger projects because I'm not fully confident that it's doing the right thing (it's also a little hideous to normalize the types everywhere☹️ ).
I haven't figured out how to do it yet, but I think what we really want to do is determine whether an ElaboratedType has any elaboration and then desugar it if so. That seems like the 'right' thing to do compared to blindly desugaring for everything but enums.
EDIT: two odd things: