mirror of
https://github.com/tokio-rs/axum.git
synced 2026-08-28 00:00:20 +02:00
Fix warnings for cloning references in generated code (#1676)
This commit is contained in:
@@ -3,7 +3,7 @@ use quote::quote_spanned;
|
|||||||
use syn::{
|
use syn::{
|
||||||
parse::{Parse, ParseStream},
|
parse::{Parse, ParseStream},
|
||||||
spanned::Spanned,
|
spanned::Spanned,
|
||||||
Field, ItemStruct, Token,
|
Field, ItemStruct, Token, Type,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::attr_parsing::{combine_unary_attribute, parse_attrs, Combine};
|
use crate::attr_parsing::{combine_unary_attribute, parse_attrs, Combine};
|
||||||
@@ -30,7 +30,11 @@ fn expand_field(state: &Ident, idx: usize, field: &Field) -> TokenStream {
|
|||||||
let span = field.ty.span();
|
let span = field.ty.span();
|
||||||
|
|
||||||
let body = if let Some(field_ident) = &field.ident {
|
let body = if let Some(field_ident) = &field.ident {
|
||||||
quote_spanned! {span=> state.#field_ident.clone() }
|
if matches!(field_ty, Type::Reference(_)) {
|
||||||
|
quote_spanned! {span=> state.#field_ident }
|
||||||
|
} else {
|
||||||
|
quote_spanned! {span=> state.#field_ident.clone() }
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
let idx = syn::Index {
|
let idx = syn::Index {
|
||||||
index: idx as _,
|
index: idx as _,
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#![deny(noop_method_call)]
|
||||||
|
|
||||||
|
use axum_macros::FromRef;
|
||||||
|
|
||||||
|
#[derive(FromRef)]
|
||||||
|
struct State {
|
||||||
|
inner: &'static str,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
||||||
Reference in New Issue
Block a user