@@ -24,6 +24,8 @@ impl base::ProcMacro for BangProcMacro {
24
24
span : Span ,
25
25
input : TokenStream ,
26
26
) -> Result < TokenStream , ErrorGuaranteed > {
27
+ let _timer =
28
+ ecx. sess . prof . generic_activity_with_arg ( "expand_proc_macro" , ecx. expansion_descr ( ) ) ;
27
29
let proc_macro_backtrace = ecx. ecfg . proc_macro_backtrace ;
28
30
let server = proc_macro_server:: Rustc :: new ( ecx) ;
29
31
self . client . run ( & EXEC_STRATEGY , server, input, proc_macro_backtrace) . map_err ( |e| {
@@ -48,6 +50,8 @@ impl base::AttrProcMacro for AttrProcMacro {
48
50
annotation : TokenStream ,
49
51
annotated : TokenStream ,
50
52
) -> Result < TokenStream , ErrorGuaranteed > {
53
+ let _timer =
54
+ ecx. sess . prof . generic_activity_with_arg ( "expand_proc_macro" , ecx. expansion_descr ( ) ) ;
51
55
let proc_macro_backtrace = ecx. ecfg . proc_macro_backtrace ;
52
56
let server = proc_macro_server:: Rustc :: new ( ecx) ;
53
57
self . client
@@ -97,17 +101,21 @@ impl MultiItemModifier for ProcMacroDerive {
97
101
nt_to_tokenstream ( & item, & ecx. sess . parse_sess , CanSynthesizeMissingTokens :: No )
98
102
} ;
99
103
100
- let proc_macro_backtrace = ecx. ecfg . proc_macro_backtrace ;
101
- let server = proc_macro_server:: Rustc :: new ( ecx) ;
102
- let stream = match self . client . run ( & EXEC_STRATEGY , server, input, proc_macro_backtrace) {
103
- Ok ( stream) => stream,
104
- Err ( e) => {
105
- let mut err = ecx. struct_span_err ( span, "proc-macro derive panicked" ) ;
106
- if let Some ( s) = e. as_str ( ) {
107
- err. help ( & format ! ( "message: {}" , s) ) ;
104
+ let stream = {
105
+ let _timer =
106
+ ecx. sess . prof . generic_activity_with_arg ( "expand_proc_macro" , ecx. expansion_descr ( ) ) ;
107
+ let proc_macro_backtrace = ecx. ecfg . proc_macro_backtrace ;
108
+ let server = proc_macro_server:: Rustc :: new ( ecx) ;
109
+ match self . client . run ( & EXEC_STRATEGY , server, input, proc_macro_backtrace) {
110
+ Ok ( stream) => stream,
111
+ Err ( e) => {
112
+ let mut err = ecx. struct_span_err ( span, "proc-macro derive panicked" ) ;
113
+ if let Some ( s) = e. as_str ( ) {
114
+ err. help ( & format ! ( "message: {}" , s) ) ;
115
+ }
116
+ err. emit ( ) ;
117
+ return ExpandResult :: Ready ( vec ! [ ] ) ;
108
118
}
109
- err. emit ( ) ;
110
- return ExpandResult :: Ready ( vec ! [ ] ) ;
111
119
}
112
120
} ;
113
121
0 commit comments