diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index bd3aac83..38408e9f 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -26,9 +26,9 @@ pub fn expand_derive_deserialize(input: &mut syn::DeriveInput) -> syn::Result cont, - None => return Err(ctxt.check().unwrap_err()), + let Some(cont) = Container::from_ast(&ctxt, input, Derive::Deserialize, &private.ident()) + else { + return Err(ctxt.check().unwrap_err()); }; precondition(&ctxt, &cont); ctxt.check()?; diff --git a/serde_derive/src/internals/attr.rs b/serde_derive/src/internals/attr.rs index dbc14f6a..df0f3390 100644 --- a/serde_derive/src/internals/attr.rs +++ b/serde_derive/src/internals/attr.rs @@ -1457,9 +1457,8 @@ fn parse_lit_into_path( attr_name: Symbol, meta: &ParseNestedMeta, ) -> syn::Result> { - let string = match get_lit_str(cx, attr_name, meta)? { - Some(string) => string, - None => return Ok(None), + let Some(string) = get_lit_str(cx, attr_name, meta)? else { + return Ok(None); }; Ok(match string.parse() { @@ -1479,9 +1478,8 @@ fn parse_lit_into_expr_path( attr_name: Symbol, meta: &ParseNestedMeta, ) -> syn::Result> { - let string = match get_lit_str(cx, attr_name, meta)? { - Some(string) => string, - None => return Ok(None), + let Some(string) = get_lit_str(cx, attr_name, meta)? else { + return Ok(None); }; Ok(match string.parse() { @@ -1502,9 +1500,8 @@ fn parse_lit_into_where( meta_item_name: Symbol, meta: &ParseNestedMeta, ) -> syn::Result> { - let string = match get_lit_str2(cx, attr_name, meta_item_name, meta)? { - Some(string) => string, - None => return Ok(Vec::new()), + let Some(string) = get_lit_str2(cx, attr_name, meta_item_name, meta)? else { + return Ok(Vec::new()); }; Ok( @@ -1523,9 +1520,8 @@ fn parse_lit_into_ty( attr_name: Symbol, meta: &ParseNestedMeta, ) -> syn::Result> { - let string = match get_lit_str(cx, attr_name, meta)? { - Some(string) => string, - None => return Ok(None), + let Some(string) = get_lit_str(cx, attr_name, meta)? else { + return Ok(None); }; Ok(match string.parse() { @@ -1546,9 +1542,8 @@ fn parse_lit_into_lifetimes( cx: &Ctxt, meta: &ParseNestedMeta, ) -> syn::Result> { - let string = match get_lit_str(cx, BORROW, meta)? { - Some(string) => string, - None => return Ok(BTreeSet::new()), + let Some(string) = get_lit_str(cx, BORROW, meta)? else { + return Ok(BTreeSet::new()); }; if let Ok(lifetimes) = string.parse_with(|input: ParseStream| { @@ -1618,11 +1613,8 @@ fn is_cow(ty: &syn::Type, elem: fn(&syn::Type) -> bool) -> bool { return false; } }; - let seg = match path.segments.last() { - Some(seg) => seg, - None => { - return false; - } + let Some(seg) = path.segments.last() else { + return false; }; let args = match &seg.arguments { syn::PathArguments::AngleBracketed(bracketed) => &bracketed.args, @@ -1645,11 +1637,8 @@ fn is_option(ty: &syn::Type, elem: fn(&syn::Type) -> bool) -> bool { return false; } }; - let seg = match path.segments.last() { - Some(seg) => seg, - None => { - return false; - } + let Some(seg) = path.segments.last() else { + return false; }; let args = match &seg.arguments { syn::PathArguments::AngleBracketed(bracketed) => &bracketed.args, diff --git a/serde_derive/src/internals/ctxt.rs b/serde_derive/src/internals/ctxt.rs index a47bfa41..45ec93d7 100644 --- a/serde_derive/src/internals/ctxt.rs +++ b/serde_derive/src/internals/ctxt.rs @@ -46,9 +46,8 @@ impl Ctxt { pub fn check(self) -> syn::Result<()> { let mut errors = self.errors.borrow_mut().take().unwrap().into_iter(); - let mut combined = match errors.next() { - Some(first) => first, - None => return Ok(()), + let Some(mut combined) = errors.next() else { + return Ok(()); }; for rest in errors { diff --git a/serde_derive/src/ser.rs b/serde_derive/src/ser.rs index ad1fb174..6cec87cf 100644 --- a/serde_derive/src/ser.rs +++ b/serde_derive/src/ser.rs @@ -13,9 +13,8 @@ pub fn expand_derive_serialize(input: &mut syn::DeriveInput) -> syn::Result cont, - None => return Err(ctxt.check().unwrap_err()), + let Some(cont) = Container::from_ast(&ctxt, input, Derive::Serialize, &private.ident()) else { + return Err(ctxt.check().unwrap_err()); }; precondition(&ctxt, &cont); ctxt.check()?;