@@ -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