Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
65c1722
add CSE optimization tests for iterating over slice
is57primenumber Dec 16, 2025
eb101b1
Fix(lib/win/thread): Ensure `Sleep`'s usage passes over the requested…
PaulDance Dec 18, 2025
bc0cce1
ptr_aligment_type: add more APIs
GrigorenkoPV Nov 9, 2025
76438f0
Add codegen test for issue 138497
jamie-osec Aug 14, 2025
fdc7cfd
x86 soft-float feature: mark it as forbidden rather than unstable
RalfJung Jan 18, 2026
bed40af
std: avoid tearing `dbg!` prints
joboet Dec 10, 2025
f80c137
update `dbg!` clippy lint
joboet Dec 12, 2025
ee24f22
update UI tests
joboet Dec 13, 2025
764ac2b
relnotes: fix 1.93's `as_mut_array` methods
cuviper Jan 23, 2026
4b25ccd
Rename `DepKindStruct` to `DepKindVTable`
Zalathar Jan 24, 2026
23e5b69
Use rustc_proc_macro in rust-analyzer-proc-macro-srv
bjorn3 Jan 22, 2026
eec5320
Disable proc-macro-srv tests on stage 0
bjorn3 Jan 24, 2026
ef819e4
Remove a couple of unnecessary impls
bjorn3 Oct 3, 2025
dabae7e
Handle FreeFunctions outside with_api_handle_types
bjorn3 Oct 3, 2025
4dc28c5
Expand with_api_handle_types
bjorn3 Oct 3, 2025
2f44019
Move all bridge methods into a single type
bjorn3 Jan 22, 2026
9481890
Various simplifications after moving all bridge methods to a single type
bjorn3 Jan 22, 2026
8a119c3
Merge FreeFunctions trait into Server trait
bjorn3 Jan 22, 2026
d9ec1ae
Get rid of MarkedTypes
bjorn3 Oct 3, 2025
e8c48c6
Fix review comments
bjorn3 Jan 23, 2026
a06fdc1
Fix 'the the' typo in library/core/src/array/iter.rs
vinDelphini Jan 24, 2026
b651be2
Rollup merge of #145393 - clubby789:issue-138497, r=Mark-Simulacrum
matthiaskrgr Jan 25, 2026
2da5959
Rollup merge of #148764 - GrigorenkoPV:aligment_api, r=scottmcm
matthiaskrgr Jan 25, 2026
cc666ba
Rollup merge of #149869 - joboet:torn-dbg, r=Mark-Simulacrum
matthiaskrgr Jan 25, 2026
9dffb21
Rollup merge of #150065 - is57primenumber:add-slice-cse-test, r=Mark-…
matthiaskrgr Jan 25, 2026
3850473
Rollup merge of #150842 - PaulDance:patches/fix-win7-sleep, r=Mark-Si…
matthiaskrgr Jan 25, 2026
996992e
Rollup merge of #151505 - bjorn3:proc_macro_refactors, r=petrochenkov…
matthiaskrgr Jan 25, 2026
93d5b4f
Rollup merge of #151560 - cuviper:relnotes-as_mut_array, r=Mark-Simul…
matthiaskrgr Jan 25, 2026
17ba7f2
Rollup merge of #151317 - RalfJung:x86-soft-float, r=workingjubilee
matthiaskrgr Jan 25, 2026
119eea2
Rollup merge of #151577 - Zalathar:dep-kind-vtable, r=Kivooeo
matthiaskrgr Jan 25, 2026
d83f2eb
Rollup merge of #151620 - vinDelphini:fix-typo-library-core, r=joboet
matthiaskrgr Jan 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
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.
  • Loading branch information
bjorn3 committed Jan 24, 2026
commit 23e5b692d98664f62c7af447a0836def3fb3556d
Original file line number Diff line number Diff line change
@@ -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};

Expand Down
2 changes: 1 addition & 1 deletion src/tools/rust-analyzer/crates/proc-macro-srv/src/dylib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -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]);
Expand Down
8 changes: 5 additions & 3 deletions src/tools/rust-analyzer/crates/proc-macro-srv/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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::*;
Expand Down Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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::{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use std::{
};

use intern::Symbol;
use proc_macro::bridge::server;
use rustc_proc_macro::bridge::server;

use crate::{
ProcMacroClientHandle,
Expand Down
42 changes: 21 additions & 21 deletions src/tools/rust-analyzer/crates/proc-macro-srv/src/token_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};

Expand Down Expand Up @@ -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() {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand All @@ -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 => "",
}
)?;
}
Expand Down Expand Up @@ -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,
Expand Down