Skip to content

Commit 013859d

Browse files
committed
future-proof FromForm against proc_macro_derive_resolution_fallback error (see rust-lang/rust#50504)
1 parent 18a91c9 commit 013859d

File tree

1 file changed

+7
-16
lines changed

1 file changed

+7
-16
lines changed

core/codegen_next/src/lib.rs

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -71,24 +71,15 @@ fn real_derive_from_form_value(input: TokenStream) -> PResult<TokenStream> {
7171

7272
// Generate the implementation.
7373
Ok(quote! {
74-
mod scope {
75-
extern crate std;
76-
extern crate rocket;
74+
impl<'v> ::rocket::request::FromFormValue<'v> for #name {
75+
type Error = &'v ::rocket::http::RawStr;
7776

78-
use self::std::prelude::v1::*;
79-
use self::rocket::request::FromFormValue;
80-
use self::rocket::http::RawStr;
77+
fn from_form_value(v: &'v ::rocket::http::RawStr) -> Result<Self, Self::Error> {
78+
#(if v.as_uncased_str() == #variant_strs {
79+
return ::std::result::Result::Ok(#names::#variant_idents);
80+
})*
8181

82-
impl<'v> FromFormValue<'v> for #name {
83-
type Error = &'v RawStr;
84-
85-
fn from_form_value(v: &'v RawStr) -> Result<Self, Self::Error> {
86-
#(if v.as_uncased_str() == #variant_strs {
87-
return Ok(#names::#variant_idents);
88-
})*
89-
90-
Err(v)
91-
}
82+
::std::result::Result::Err(v)
9283
}
9384
}
9485
}.into())

0 commit comments

Comments
 (0)