Skip to content

Commit 4aa97f0

Browse files
committed
remove TokenStream from the bridge
1 parent 1500f0f commit 4aa97f0

16 files changed

Lines changed: 437 additions & 588 deletions

File tree

compiler/rustc_expand/src/proc_macro.rs

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

3737
let proc_macro_backtrace = ecx.ecfg.proc_macro_backtrace;
3838
let strategy = exec_strategy(ecx.sess);
39-
let server = proc_macro_server::Rustc::new(ecx);
40-
self.client.run(&strategy, server, input, proc_macro_backtrace).map_err(|e| {
41-
ecx.dcx().emit_err(errors::ProcMacroPanicked {
39+
let mut server = proc_macro_server::Rustc::new(ecx);
40+
let input = server.ts_rustc_to_pm(input);
41+
let output = self.client.run(&strategy, &mut server, input, proc_macro_backtrace);
42+
43+
match output {
44+
Ok(stream) => Ok(server.ts_pm_to_rustc(stream)),
45+
Err(e) => Err(ecx.dcx().emit_err(errors::ProcMacroPanicked {
4246
span,
4347
message: e
4448
.as_str()
4549
.map(|message| errors::ProcMacroPanickedHelp { message: message.into() }),
46-
})
47-
})
50+
})),
51+
}
4852
}
4953
}
5054

@@ -67,17 +71,20 @@ impl base::AttrProcMacro for AttrProcMacro {
6771

6872
let proc_macro_backtrace = ecx.ecfg.proc_macro_backtrace;
6973
let strategy = exec_strategy(ecx.sess);
70-
let server = proc_macro_server::Rustc::new(ecx);
71-
self.client.run(&strategy, server, annotation, annotated, proc_macro_backtrace).map_err(
72-
|e| {
73-
ecx.dcx().emit_err(errors::CustomAttributePanicked {
74-
span,
75-
message: e.as_str().map(|message| errors::CustomAttributePanickedHelp {
76-
message: message.into(),
77-
}),
78-
})
79-
},
80-
)
74+
let mut server = proc_macro_server::Rustc::new(ecx);
75+
let annotation = server.ts_rustc_to_pm(annotation);
76+
let annotated = server.ts_rustc_to_pm(annotated);
77+
let output =
78+
self.client.run(&strategy, &mut server, annotation, annotated, proc_macro_backtrace);
79+
match output {
80+
Ok(stream) => Ok(server.ts_pm_to_rustc(stream)),
81+
Err(e) => Err(ecx.dcx().emit_err(errors::CustomAttributePanicked {
82+
span,
83+
message: e
84+
.as_str()
85+
.map(|message| errors::CustomAttributePanickedHelp { message: message.into() }),
86+
})),
87+
}
8188
}
8289
}
8390

@@ -195,10 +202,11 @@ fn expand_derive_macro(
195202

196203
let proc_macro_backtrace = ecx.ecfg.proc_macro_backtrace;
197204
let strategy = exec_strategy(ecx.sess);
198-
let server = proc_macro_server::Rustc::new(ecx);
205+
let mut server = proc_macro_server::Rustc::new(ecx);
206+
let input = server.ts_rustc_to_pm(input);
199207

200-
match client.run(&strategy, server, input, proc_macro_backtrace) {
201-
Ok(stream) => Ok(stream),
208+
match client.run(&strategy, &mut server, input, proc_macro_backtrace) {
209+
Ok(stream) => Ok(server.ts_pm_to_rustc(stream)),
202210
Err(e) => {
203211
let invoc_expn_data = invoc_id.expn_data();
204212
let span = invoc_expn_data.call_site;

0 commit comments

Comments
 (0)