@@ -28,7 +28,14 @@ use syn::spanned::Spanned;
28
28
#[ proc_macro_attribute]
29
29
pub fn main ( attr : TokenStream , item : TokenStream ) -> TokenStream {
30
30
let rt = if attr. is_empty ( ) {
31
- syn:: parse_str ( "runtime::native::Native" ) . unwrap ( )
31
+ if cfg ! ( feature = "native" ) {
32
+ syn:: parse_str ( "runtime::native::Native" ) . unwrap ( )
33
+ } else {
34
+ let tokens = quote_spanned ! { proc_macro2:: Span :: call_site( ) =>
35
+ compile_error!( "async runtime needs to be specified if no default runtime is set" ) ;
36
+ } ;
37
+ return TokenStream :: from ( tokens) ;
38
+ }
32
39
} else {
33
40
syn:: parse_macro_input!( attr as syn:: Expr )
34
41
} ;
@@ -86,7 +93,14 @@ pub fn main(attr: TokenStream, item: TokenStream) -> TokenStream {
86
93
#[ proc_macro_attribute]
87
94
pub fn test ( attr : TokenStream , item : TokenStream ) -> TokenStream {
88
95
let rt = if attr. is_empty ( ) {
89
- syn:: parse_str ( "runtime::native::Native" ) . unwrap ( )
96
+ if cfg ! ( feature = "native" ) {
97
+ syn:: parse_str ( "runtime::native::Native" ) . unwrap ( )
98
+ } else {
99
+ let tokens = quote_spanned ! { proc_macro2:: Span :: call_site( ) =>
100
+ compile_error!( "async runtime needs to be specified if no default runtime is set" ) ;
101
+ } ;
102
+ return TokenStream :: from ( tokens) ;
103
+ }
90
104
} else {
91
105
syn:: parse_macro_input!( attr as syn:: Expr )
92
106
} ;
@@ -132,7 +146,14 @@ pub fn test(attr: TokenStream, item: TokenStream) -> TokenStream {
132
146
#[ proc_macro_attribute]
133
147
pub fn bench ( attr : TokenStream , item : TokenStream ) -> TokenStream {
134
148
let rt = if attr. is_empty ( ) {
135
- syn:: parse_str ( "runtime::native::Native" ) . unwrap ( )
149
+ if cfg ! ( feature = "native" ) {
150
+ syn:: parse_str ( "runtime::native::Native" ) . unwrap ( )
151
+ } else {
152
+ let tokens = quote_spanned ! { proc_macro2:: Span :: call_site( ) =>
153
+ compile_error!( "async runtime needs to be specified if no default runtime is set" ) ;
154
+ } ;
155
+ return TokenStream :: from ( tokens) ;
156
+ }
136
157
} else {
137
158
syn:: parse_macro_input!( attr as syn:: Expr )
138
159
} ;
0 commit comments