@@ -113,16 +113,17 @@ fn query_decls(route: &Route) -> Option<TokenStream> {
113
113
"{_err}"
114
114
) ; } }
115
115
) ;
116
+ let __e = #resolve_error!( __e) ;
116
117
:: rocket:: trace:: info!(
117
118
target: concat!( "rocket::codegen::route::" , module_path!( ) ) ,
118
- error_type = :: std :: any :: type_name_of_val ( & __e) ,
119
+ error_type = __e. name ( ) ,
119
120
"Forwarding error"
120
121
) ;
121
122
122
123
return #Outcome :: Forward ( (
123
124
#__data,
124
125
#Status :: UnprocessableEntity ,
125
- #resolve_error! ( __e)
126
+ __e. val
126
127
) ) ;
127
128
}
128
129
@@ -134,7 +135,7 @@ fn query_decls(route: &Route) -> Option<TokenStream> {
134
135
fn request_guard_decl ( guard : & Guard ) -> TokenStream {
135
136
let ( ident, ty) = ( guard. fn_ident . rocketized ( ) , & guard. ty ) ;
136
137
define_spanned_export ! ( ty. span( ) =>
137
- __req, __data, _request, display_hack, FromRequest , Outcome , resolve_error
138
+ __req, __data, _request, display_hack, FromRequest , Outcome , resolve_error, _None
138
139
) ;
139
140
140
141
quote_spanned ! { ty. span( ) =>
@@ -150,21 +151,22 @@ fn request_guard_decl(guard: &Guard) -> TokenStream {
150
151
"request guard forwarding"
151
152
) ;
152
153
153
- return #Outcome :: Forward ( ( #__data, __e, #resolve_error! ( ) ) ) ;
154
+ return #Outcome :: Forward ( ( #__data, __e, #_None ) ) ;
154
155
} ,
155
156
#[ allow( unreachable_code) ]
156
157
#Outcome :: Error ( ( __c, __e) ) => {
158
+ let __err = #resolve_error!( __e) ;
157
159
:: rocket:: trace:: info!(
158
160
name: "failure" ,
159
161
target: concat!( "rocket::codegen::route::" , module_path!( ) ) ,
160
162
parameter = stringify!( #ident) ,
161
163
type_name = stringify!( #ty) ,
162
- reason = %#display_hack!( & __e) ,
163
- error_type = :: std :: any :: type_name_of_val ( & __e ) ,
164
+ // reason = %#display_hack!(&__e),
165
+ error_type = __err . name ,
164
166
"request guard failed"
165
167
) ;
166
168
167
- return #Outcome :: Error ( ( __c, #resolve_error! ( __e ) ) ) ;
169
+ return #Outcome :: Error ( ( __c, __err . val ) ) ;
168
170
}
169
171
} ;
170
172
}
@@ -179,17 +181,18 @@ fn param_guard_decl(guard: &Guard) -> TokenStream {
179
181
180
182
// Returned when a dynamic parameter fails to parse.
181
183
let parse_error = quote ! ( {
184
+ let __err = #resolve_error!( __error) ;
182
185
:: rocket:: trace:: info!(
183
186
name: "forward" ,
184
187
target: concat!( "rocket::codegen::route::" , module_path!( ) ) ,
185
188
parameter = #name,
186
189
type_name = stringify!( #ty) ,
187
- reason = %#display_hack!( & __error) ,
188
- error_type = :: std :: any :: type_name_of_val ( & __error ) ,
190
+ // reason = %#display_hack!(&__error),
191
+ error_type = __err . name ,
189
192
"path guard forwarding"
190
193
) ;
191
194
192
- #Outcome :: Forward ( ( #__data, #Status :: UnprocessableEntity , #resolve_error! ( __error ) ) )
195
+ #Outcome :: Forward ( ( #__data, #Status :: UnprocessableEntity , __err . val ) )
193
196
} ) ;
194
197
195
198
// All dynamic parameters should be found if this function is being called;
@@ -214,7 +217,7 @@ fn param_guard_decl(guard: &Guard) -> TokenStream {
214
217
return #Outcome :: Forward ( (
215
218
#__data,
216
219
#Status :: InternalServerError ,
217
- #resolve_error! ( )
220
+ #_None
218
221
) ) ;
219
222
}
220
223
}
@@ -235,7 +238,7 @@ fn param_guard_decl(guard: &Guard) -> TokenStream {
235
238
fn data_guard_decl ( guard : & Guard ) -> TokenStream {
236
239
let ( ident, ty) = ( guard. fn_ident . rocketized ( ) , & guard. ty ) ;
237
240
define_spanned_export ! ( ty. span( ) =>
238
- __req, __data, display_hack, FromData , Outcome , resolve_error) ;
241
+ __req, __data, display_hack, FromData , Outcome , resolve_error, _None ) ;
239
242
240
243
quote_spanned ! { ty. span( ) =>
241
244
let #ident: #ty = match <#ty as #FromData >:: from_data( #__req, #__data) . await {
@@ -250,21 +253,22 @@ fn data_guard_decl(guard: &Guard) -> TokenStream {
250
253
"data guard forwarding"
251
254
) ;
252
255
253
- return #Outcome :: Forward ( ( __d, __e, #resolve_error! ( ) ) ) ;
256
+ return #Outcome :: Forward ( ( __d, __e, #_None ) ) ;
254
257
}
255
258
#[ allow( unreachable_code) ]
256
259
#Outcome :: Error ( ( __c, __e) ) => {
260
+ let __e = #resolve_error!( __e) ;
257
261
:: rocket:: trace:: info!(
258
262
name: "failure" ,
259
263
target: concat!( "rocket::codegen::route::" , module_path!( ) ) ,
260
264
parameter = stringify!( #ident) ,
261
265
type_name = stringify!( #ty) ,
262
- reason = %#display_hack!( & __e) ,
263
- error_type = :: std :: any :: type_name_of_val ( & __e) ,
266
+ // reason = %#display_hack!(&__e),
267
+ error_type = __e. name ,
264
268
"data guard failed"
265
269
) ;
266
270
267
- return #Outcome :: Error ( ( __c, #resolve_error! ( __e) ) ) ;
271
+ return #Outcome :: Error ( ( __c, __e. val ) ) ;
268
272
}
269
273
} ;
270
274
}
0 commit comments