#! [allow(clippy::needless_lifetimes, clippy::uninlined_format_args)]
#[ macro_use]
mod macros;
use syn::{parse_quote, TraitItemFn};
#[ test]
fn test_by_value() {
let TraitItemFn { sig, .. } = parse_quote! {
fn by_value(self : Self );
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
colon_token: Some,
ty: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
},
})
"#);
}
#[ test]
fn test_by_mut_value() {
let TraitItemFn { sig, .. } = parse_quote! {
fn by_mut(mut self : Self );
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
mutability: Some,
colon_token: Some,
ty: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
},
})
"#);
}
#[ test]
fn test_by_ref() {
let TraitItemFn { sig, .. } = parse_quote! {
fn by_ref(self : &Self );
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
colon_token: Some,
ty: Type ::Reference {
elem: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
},
},
})
"#);
}
#[ test]
fn test_by_box() {
let TraitItemFn { sig, .. } = parse_quote! {
fn by_box(self : Box <Self >);
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
colon_token: Some,
ty: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Box" ,
arguments: PathArguments::AngleBracketed {
args: [
GenericArgument::Type (Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
}),
],
},
},
],
},
},
})
"#);
}
#[ test]
fn test_by_pin() {
let TraitItemFn { sig, .. } = parse_quote! {
fn by_pin(self : Pin<Self >);
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
colon_token: Some,
ty: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Pin" ,
arguments: PathArguments::AngleBracketed {
args: [
GenericArgument::Type (Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
}),
],
},
},
],
},
},
})
"#);
}
#[ test]
fn test_explicit_type() {
let TraitItemFn { sig, .. } = parse_quote! {
fn explicit_type(self : Pin<MyType>);
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
colon_token: Some,
ty: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Pin" ,
arguments: PathArguments::AngleBracketed {
args: [
GenericArgument::Type (Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "MyType" ,
},
],
},
}),
],
},
},
],
},
},
})
"#);
}
#[ test]
fn test_value_shorthand() {
let TraitItemFn { sig, .. } = parse_quote! {
fn value_shorthand(self );
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
ty: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
},
})
"#);
}
#[ test]
fn test_mut_value_shorthand() {
let TraitItemFn { sig, .. } = parse_quote! {
fn mut_value_shorthand(mut self );
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
mutability: Some,
ty: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
},
})
"#);
}
#[ test]
fn test_ref_shorthand() {
let TraitItemFn { sig, .. } = parse_quote! {
fn ref_shorthand(&self );
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
reference: Some(None),
ty: Type ::Reference {
elem: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
},
},
})
"#);
}
#[ test]
fn test_ref_shorthand_with_lifetime() {
let TraitItemFn { sig, .. } = parse_quote! {
fn ref_shorthand(&'a self);
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
reference: Some(Some(Lifetime {
ident: "a" ,
})),
ty: Type ::Reference {
lifetime: Some(Lifetime {
ident: "a" ,
}),
elem: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
},
},
})
"#);
}
#[ test]
fn test_ref_mut_shorthand() {
let TraitItemFn { sig, .. } = parse_quote! {
fn ref_mut_shorthand(&mut self );
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
reference: Some(None),
mutability: Some,
ty: Type ::Reference {
mutability: Some,
elem: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
},
},
})
"#);
}
#[ test]
fn test_ref_mut_shorthand_with_lifetime() {
let TraitItemFn { sig, .. } = parse_quote! {
fn ref_mut_shorthand(&'a mut self);
};
snapshot!(&sig.inputs[0 ], @r#"
FnArg::Receiver(Receiver {
reference: Some(Some(Lifetime {
ident: "a" ,
})),
mutability: Some,
ty: Type ::Reference {
lifetime: Some(Lifetime {
ident: "a" ,
}),
mutability: Some,
elem: Type ::Path {
path: Path {
segments: [
PathSegment {
ident: "Self" ,
},
],
},
},
},
})
"#);
}
Messung V0.5 in Prozent C=73 H=93 G=83
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-19)
¤
*© Formatika GbR, Deutschland