Skip to content

Commit 51c7151

Browse files
committed
Auto merge of #151830 - cyrgani:pm-opts, r=<try>
remove `TokenStream` from the bridge
2 parents 878374e + 402373c commit 51c7151

9 files changed

Lines changed: 318 additions & 383 deletions

File tree

compiler/rustc_expand/src/proc_macro.rs

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,19 @@ impl base::BangProcMacro for BangProcMacro {
5757

5858
let proc_macro_backtrace = ecx.ecfg.proc_macro_backtrace;
5959
let strategy = exec_strategy(ecx.sess);
60-
let server = proc_macro_server::Rustc::new(ecx);
61-
self.client.run(&strategy, server, input, proc_macro_backtrace).map_err(|e| {
62-
ecx.dcx().emit_err(errors::ProcMacroPanicked {
60+
let mut server = proc_macro_server::Rustc::new(ecx);
61+
let input = server.ts_rustc_to_pm(input);
62+
let output = self.client.run(&strategy, &mut server, input, proc_macro_backtrace);
63+
64+
match output {
65+
Ok(stream) => Ok(server.ts_pm_to_rustc(stream)),
66+
Err(e) => Err(ecx.dcx().emit_err(errors::ProcMacroPanicked {
6367
span,
6468
message: e
6569
.as_str()
6670
.map(|message| errors::ProcMacroPanickedHelp { message: message.into() }),
67-
})
68-
})
71+
})),
72+
}
6973
}
7074
}
7175

@@ -88,17 +92,20 @@ impl base::AttrProcMacro for AttrProcMacro {
8892

8993
let proc_macro_backtrace = ecx.ecfg.proc_macro_backtrace;
9094
let strategy = exec_strategy(ecx.sess);
91-
let server = proc_macro_server::Rustc::new(ecx);
92-
self.client.run(&strategy, server, annotation, annotated, proc_macro_backtrace).map_err(
93-
|e| {
94-
ecx.dcx().emit_err(errors::CustomAttributePanicked {
95-
span,
96-
message: e.as_str().map(|message| errors::CustomAttributePanickedHelp {
97-
message: message.into(),
98-
}),
99-
})
100-
},
101-
)
95+
let mut server = proc_macro_server::Rustc::new(ecx);
96+
let annotation = server.ts_rustc_to_pm(annotation);
97+
let annotated = server.ts_rustc_to_pm(annotated);
98+
let output =
99+
self.client.run(&strategy, &mut server, annotation, annotated, proc_macro_backtrace);
100+
match output {
101+
Ok(stream) => Ok(server.ts_pm_to_rustc(stream)),
102+
Err(e) => Err(ecx.dcx().emit_err(errors::CustomAttributePanicked {
103+
span,
104+
message: e
105+
.as_str()
106+
.map(|message| errors::CustomAttributePanickedHelp { message: message.into() }),
107+
})),
108+
}
102109
}
103110
}
104111

@@ -221,10 +228,11 @@ fn expand_derive_macro(
221228

222229
let proc_macro_backtrace = ecx.ecfg.proc_macro_backtrace;
223230
let strategy = exec_strategy(ecx.sess);
224-
let server = proc_macro_server::Rustc::new(ecx);
231+
let mut server = proc_macro_server::Rustc::new(ecx);
232+
let input = server.ts_rustc_to_pm(input);
225233

226-
match client.run(&strategy, server, input, proc_macro_backtrace) {
227-
Ok(stream) => Ok(stream),
234+
match client.run(&strategy, &mut server, input, proc_macro_backtrace) {
235+
Ok(stream) => Ok(server.ts_pm_to_rustc(stream)),
228236
Err(e) => {
229237
let invoc_expn_data = invoc_id.expn_data();
230238
let span = invoc_expn_data.call_site;

0 commit comments

Comments
 (0)