about summary refs log tree commit diff
path: root/editors/code/src
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-07-13 10:35:20 +0000
committerGitHub <noreply@github.com>2021-07-13 10:35:20 +0000
commit62622c6940b3a794b9709e5e6cc2b78019a8fe08 (patch)
tree22dc8252a379b2041da2a1dbfea9ec9e4e2d5cb3 /editors/code/src
parent7988c80dd5c77970986081a6405ce742570ba8db (diff)
parente240eb67a86bb4deff2762e3c46f47278ccd975c (diff)
downloadrust-62622c6940b3a794b9709e5e6cc2b78019a8fe08.tar.gz
rust-62622c6940b3a794b9709e5e6cc2b78019a8fe08.zip
Merge #9550
9550: Proc macro multi abi proof of concept r=matklad a=alexjg

#8925 was irritating me so I thought I would have a bash at fixing it. What I've done here is copy the `crates/proc_macro_srv/src/proc_macro` code (which is copied from `<RUST>/library/proc_macro`) to `crates/proc_macro_srv/src/proc_macro_nightly` and the modified the nightly version to include the changes from https://github.com/rust-analyzer/rust-analyzer/pull/9047 and https://github.com/yotamofek/rust-analyzer/commit/aeb7b183a2302af968f1110fb3cbd00c76a34974

This gives us the code to support both stable and nightly ABIs. Then we use the `proc_macro_api::version::read_dylib_info` to determine which version of the ABI to load when creating a `ProcMacroLibraryLibLoading` (which is now an enum). 

This seems to work for me.  The code could be cleaned up but I wanted to see if the approach makes sense before I spend more time on it.

I've split the change into two commits, the first is just copying and modifying the `proc_macro` crate, the second contains most of the interesting work around figuring out which ABI to use.

Co-authored-by: Alex Good <alex@memoryandthought.me>
Co-authored-by: alexjg <alex@memoryandthought.me>
Diffstat (limited to 'editors/code/src')
0 files changed, 0 insertions, 0 deletions