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