@@ -60,6 +60,7 @@ enum Value {
60
60
SameAsName ,
61
61
String ( LitStr ) ,
62
62
Env ( LitStr ) ,
63
+ Unsupported ( Expr ) ,
63
64
}
64
65
65
66
impl Parse for Symbol {
@@ -88,13 +89,7 @@ impl Parse for Value {
88
89
}
89
90
_ => { }
90
91
}
91
- Err ( syn:: Error :: new_spanned (
92
- expr,
93
- concat ! (
94
- "unsupported expression for symbol value; implement support for this in " ,
95
- file!( ) ,
96
- ) ,
97
- ) )
92
+ Ok ( Value :: Unsupported ( expr) )
98
93
}
99
94
}
100
95
@@ -223,7 +218,17 @@ fn symbols_with_errors(input: TokenStream) -> (TokenStream, Vec<syn::Error>) {
223
218
let value = match & symbol. value {
224
219
Value :: SameAsName => name. to_string ( ) ,
225
220
Value :: String ( lit) => lit. value ( ) ,
226
- Value :: Env ( _) => continue ,
221
+ Value :: Env ( _) => continue , // in another loop below
222
+ Value :: Unsupported ( expr) => {
223
+ errors. list . push ( syn:: Error :: new_spanned (
224
+ expr,
225
+ concat ! (
226
+ "unsupported expression for symbol value; implement support for this in " ,
227
+ file!( ) ,
228
+ ) ,
229
+ ) ) ;
230
+ continue ;
231
+ }
227
232
} ;
228
233
let idx = entries. insert ( symbol. name . span ( ) , & value, & mut errors) ;
229
234
@@ -249,7 +254,7 @@ fn symbols_with_errors(input: TokenStream) -> (TokenStream, Vec<syn::Error>) {
249
254
for symbol in & input. symbols {
250
255
let env_var = match & symbol. value {
251
256
Value :: Env ( lit) => lit,
252
- _ => continue ,
257
+ Value :: SameAsName | Value :: String ( _ ) | Value :: Unsupported ( _ ) => continue ,
253
258
} ;
254
259
255
260
let value = match proc_macro:: tracked_env:: var ( env_var. value ( ) ) {
0 commit comments