Unnamed repository; edit this file 'description' to name the repository.
Use rustc_proc_macro in rust-analyzer-proc-macro-srv
This fixes stage1 builds when the proc-macro bridge api changed.
The rustc_proc_macro crate is identical to the proc_macro that would end
up in the sysroot of the rustc compiler rustc_proc_macro is linked into.
| -rw-r--r-- | crates/proc-macro-srv/src/bridge.rs | 2 | ||||
| -rw-r--r-- | crates/proc-macro-srv/src/dylib.rs | 2 | ||||
| -rw-r--r-- | crates/proc-macro-srv/src/dylib/proc_macros.rs | 2 | ||||
| -rw-r--r-- | crates/proc-macro-srv/src/lib.rs | 8 | ||||
| -rw-r--r-- | crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs | 2 | ||||
| -rw-r--r-- | crates/proc-macro-srv/src/server_impl/token_id.rs | 2 | ||||
| -rw-r--r-- | crates/proc-macro-srv/src/token_stream.rs | 42 |
7 files changed, 31 insertions, 29 deletions
diff --git a/crates/proc-macro-srv/src/bridge.rs b/crates/proc-macro-srv/src/bridge.rs index fc063a07b5..fc62f9413a 100644 --- a/crates/proc-macro-srv/src/bridge.rs +++ b/crates/proc-macro-srv/src/bridge.rs @@ -1,6 +1,6 @@ //! `proc_macro::bridge` newtypes.
-use proc_macro::bridge as pm_bridge;
+use rustc_proc_macro::bridge as pm_bridge;
pub use pm_bridge::{DelimSpan, Diagnostic, ExpnGlobals, LitKind};
diff --git a/crates/proc-macro-srv/src/dylib.rs b/crates/proc-macro-srv/src/dylib.rs index 02bdcc50d3..8680e9180e 100644 --- a/crates/proc-macro-srv/src/dylib.rs +++ b/crates/proc-macro-srv/src/dylib.rs @@ -3,7 +3,7 @@ mod proc_macros; mod version; -use proc_macro::bridge; +use rustc_proc_macro::bridge; use std::{fmt, fs, io, time::SystemTime}; use temp_dir::TempDir; diff --git a/crates/proc-macro-srv/src/dylib/proc_macros.rs b/crates/proc-macro-srv/src/dylib/proc_macros.rs index c763301135..76c5097101 100644 --- a/crates/proc-macro-srv/src/dylib/proc_macros.rs +++ b/crates/proc-macro-srv/src/dylib/proc_macros.rs @@ -1,6 +1,6 @@ //! Proc macro ABI use crate::{ProcMacroClientHandle, ProcMacroKind, ProcMacroSrvSpan, token_stream::TokenStream}; -use proc_macro::bridge; +use rustc_proc_macro::bridge; #[repr(transparent)] pub(crate) struct ProcMacros([bridge::client::ProcMacro]); diff --git a/crates/proc-macro-srv/src/lib.rs b/crates/proc-macro-srv/src/lib.rs index f2d1dfbba4..920d58b4e9 100644 --- a/crates/proc-macro-srv/src/lib.rs +++ b/crates/proc-macro-srv/src/lib.rs @@ -22,9 +22,9 @@ )] #![deny(deprecated_safe, clippy::undocumented_unsafe_blocks)] -extern crate proc_macro; #[cfg(feature = "in-rust-tree")] extern crate rustc_driver as _; +extern crate rustc_proc_macro; #[cfg(not(feature = "in-rust-tree"))] extern crate ra_ap_rustc_lexer as rustc_lexer; @@ -52,7 +52,7 @@ use temp_dir::TempDir; pub use crate::server_impl::token_id::SpanId; -pub use proc_macro::Delimiter; +pub use rustc_proc_macro::Delimiter; pub use span; pub use crate::bridge::*; @@ -181,7 +181,9 @@ impl ProcMacroSrv<'_> { } pub trait ProcMacroSrvSpan: Copy + Send + Sync { - type Server<'a>: proc_macro::bridge::server::Server<TokenStream = crate::token_stream::TokenStream<Self>>; + type Server<'a>: rustc_proc_macro::bridge::server::Server< + TokenStream = crate::token_stream::TokenStream<Self>, + >; fn make_server<'a>( call_site: Self, def_site: Self, diff --git a/crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs b/crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs index 32725afc55..1845de75dd 100644 --- a/crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs +++ b/crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs @@ -10,7 +10,7 @@ use std::{ }; use intern::Symbol; -use proc_macro::bridge::server; +use rustc_proc_macro::bridge::server; use span::{FIXUP_ERASED_FILE_AST_ID_MARKER, Span, TextRange, TextSize}; use crate::{ diff --git a/crates/proc-macro-srv/src/server_impl/token_id.rs b/crates/proc-macro-srv/src/server_impl/token_id.rs index a968ea4cd2..8b1e3c0d8d 100644 --- a/crates/proc-macro-srv/src/server_impl/token_id.rs +++ b/crates/proc-macro-srv/src/server_impl/token_id.rs @@ -6,7 +6,7 @@ use std::{ }; use intern::Symbol; -use proc_macro::bridge::server; +use rustc_proc_macro::bridge::server; use crate::{ ProcMacroClientHandle, diff --git a/crates/proc-macro-srv/src/token_stream.rs b/crates/proc-macro-srv/src/token_stream.rs index 36827d2561..2358f6963c 100644 --- a/crates/proc-macro-srv/src/token_stream.rs +++ b/crates/proc-macro-srv/src/token_stream.rs @@ -4,8 +4,8 @@ use core::fmt; use std::{mem, sync::Arc};
use intern::Symbol;
-use proc_macro::Delimiter;
use rustc_lexer::{DocStyle, LiteralKind};
+use rustc_proc_macro::Delimiter;
use crate::bridge::{DelimSpan, Group, Ident, LitKind, Literal, Punct, TokenTree};
@@ -52,7 +52,7 @@ impl<S> TokenStream<S> { S: SpanLike + Copy,
{
let mut groups = Vec::new();
- groups.push((proc_macro::Delimiter::None, 0..0, vec![]));
+ groups.push((rustc_proc_macro::Delimiter::None, 0..0, vec![]));
let mut offset = 0;
let mut tokens = rustc_lexer::tokenize(s, rustc_lexer::FrontmatterAllowed::No).peekable();
while let Some(token) = tokens.next() {
@@ -102,7 +102,7 @@ impl<S> TokenStream<S> { };
match token.kind {
rustc_lexer::TokenKind::OpenParen => {
- groups.push((proc_macro::Delimiter::Parenthesis, range, vec![]))
+ groups.push((rustc_proc_macro::Delimiter::Parenthesis, range, vec![]))
}
rustc_lexer::TokenKind::CloseParen if *open_delim != Delimiter::Parenthesis => {
return if *open_delim == Delimiter::None {
@@ -130,7 +130,7 @@ impl<S> TokenStream<S> { );
}
rustc_lexer::TokenKind::OpenBrace => {
- groups.push((proc_macro::Delimiter::Brace, range, vec![]))
+ groups.push((rustc_proc_macro::Delimiter::Brace, range, vec![]))
}
rustc_lexer::TokenKind::CloseBrace if *open_delim != Delimiter::Brace => {
return if *open_delim == Delimiter::None {
@@ -158,7 +158,7 @@ impl<S> TokenStream<S> { );
}
rustc_lexer::TokenKind::OpenBracket => {
- groups.push((proc_macro::Delimiter::Bracket, range, vec![]))
+ groups.push((rustc_proc_macro::Delimiter::Bracket, range, vec![]))
}
rustc_lexer::TokenKind::CloseBracket if *open_delim != Delimiter::Bracket => {
return if *open_delim == Delimiter::None {
@@ -460,10 +460,10 @@ fn display_token_tree<S>( f,
"{}",
match delimiter {
- proc_macro::Delimiter::Parenthesis => "(",
- proc_macro::Delimiter::Brace => "{",
- proc_macro::Delimiter::Bracket => "[",
- proc_macro::Delimiter::None => "",
+ rustc_proc_macro::Delimiter::Parenthesis => "(",
+ rustc_proc_macro::Delimiter::Brace => "{",
+ rustc_proc_macro::Delimiter::Bracket => "[",
+ rustc_proc_macro::Delimiter::None => "",
}
)?;
if let Some(stream) = stream {
@@ -473,10 +473,10 @@ fn display_token_tree<S>( f,
"{}",
match delimiter {
- proc_macro::Delimiter::Parenthesis => ")",
- proc_macro::Delimiter::Brace => "}",
- proc_macro::Delimiter::Bracket => "]",
- proc_macro::Delimiter::None => "",
+ rustc_proc_macro::Delimiter::Parenthesis => ")",
+ rustc_proc_macro::Delimiter::Brace => "}",
+ rustc_proc_macro::Delimiter::Bracket => "]",
+ rustc_proc_macro::Delimiter::None => "",
}
)?;
}
@@ -587,16 +587,16 @@ fn debug_token_tree<S: fmt::Debug>( f,
"GROUP {}{} {:#?} {:#?} {:#?}",
match delimiter {
- proc_macro::Delimiter::Parenthesis => "(",
- proc_macro::Delimiter::Brace => "{",
- proc_macro::Delimiter::Bracket => "[",
- proc_macro::Delimiter::None => "$",
+ rustc_proc_macro::Delimiter::Parenthesis => "(",
+ rustc_proc_macro::Delimiter::Brace => "{",
+ rustc_proc_macro::Delimiter::Bracket => "[",
+ rustc_proc_macro::Delimiter::None => "$",
},
match delimiter {
- proc_macro::Delimiter::Parenthesis => ")",
- proc_macro::Delimiter::Brace => "}",
- proc_macro::Delimiter::Bracket => "]",
- proc_macro::Delimiter::None => "$",
+ rustc_proc_macro::Delimiter::Parenthesis => ")",
+ rustc_proc_macro::Delimiter::Brace => "}",
+ rustc_proc_macro::Delimiter::Bracket => "]",
+ rustc_proc_macro::Delimiter::None => "$",
},
span.open,
span.close,
|