summaryrefslogtreecommitdiffstats
path: root/vendor/syn/tests/test_derive_input.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/syn/tests/test_derive_input.rs')
-rw-r--r--vendor/syn/tests/test_derive_input.rs277
1 files changed, 75 insertions, 202 deletions
diff --git a/vendor/syn/tests/test_derive_input.rs b/vendor/syn/tests/test_derive_input.rs
index 1eff01186..3ec6aecbc 100644
--- a/vendor/syn/tests/test_derive_input.rs
+++ b/vendor/syn/tests/test_derive_input.rs
@@ -1,4 +1,9 @@
-#![allow(clippy::assertions_on_result_states, clippy::too_many_lines)]
+#![allow(
+ clippy::assertions_on_result_states,
+ clippy::manual_let_else,
+ clippy::too_many_lines,
+ clippy::uninlined_format_args
+)]
#[macro_use]
mod macros;
@@ -14,11 +19,11 @@ fn test_unit() {
snapshot!(input as DeriveInput, @r###"
DeriveInput {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: "Unit",
generics: Generics,
data: Data::Struct {
- fields: Unit,
+ fields: Fields::Unit,
semi_token: Some,
},
}
@@ -39,16 +44,18 @@ fn test_struct() {
DeriveInput {
attrs: [
Attribute {
- style: Outer,
- path: Path {
- segments: [
- PathSegment {
- ident: "derive",
- arguments: None,
- },
- ],
+ style: AttrStyle::Outer,
+ meta: Meta::List {
+ path: Path {
+ segments: [
+ PathSegment {
+ ident: "derive",
+ },
+ ],
+ },
+ delimiter: MacroDelimiter::Paren,
+ tokens: TokenStream(`Debug , Clone`),
},
- tokens: TokenStream(`(Debug , Clone)`),
},
],
vis: Visibility::Public,
@@ -66,7 +73,6 @@ fn test_struct() {
segments: [
PathSegment {
ident: "Ident",
- arguments: None,
},
],
},
@@ -83,12 +89,11 @@ fn test_struct() {
ident: "Vec",
arguments: PathArguments::AngleBracketed {
args: [
- Type(Type::Path {
+ GenericArgument::Type(Type::Path {
path: Path {
segments: [
PathSegment {
ident: "Attribute",
- arguments: None,
},
],
},
@@ -106,34 +111,17 @@ fn test_struct() {
}
"###);
- snapshot!(input.attrs[0].parse_meta().unwrap(), @r###"
+ snapshot!(&input.attrs[0].meta, @r###"
Meta::List {
path: Path {
segments: [
PathSegment {
ident: "derive",
- arguments: None,
},
],
},
- nested: [
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "Debug",
- arguments: None,
- },
- ],
- })),
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "Clone",
- arguments: None,
- },
- ],
- })),
- ],
+ delimiter: MacroDelimiter::Paren,
+ tokens: TokenStream(`Debug , Clone`),
}
"###);
}
@@ -149,12 +137,12 @@ fn test_union() {
snapshot!(input as DeriveInput, @r###"
DeriveInput {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: "MaybeUninit",
generics: Generics {
lt_token: Some,
params: [
- Type(TypeParam {
+ GenericParam::Type(TypeParam {
ident: "T",
}),
],
@@ -164,13 +152,13 @@ fn test_union() {
fields: FieldsNamed {
named: [
Field {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: Some("uninit"),
colon_token: Some,
ty: Type::Tuple,
},
Field {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: Some("value"),
colon_token: Some,
ty: Type::Path {
@@ -178,7 +166,6 @@ fn test_union() {
segments: [
PathSegment {
ident: "T",
- arguments: None,
},
],
},
@@ -212,28 +199,29 @@ fn test_enum() {
DeriveInput {
attrs: [
Attribute {
- style: Outer,
- path: Path {
- segments: [
- PathSegment {
- ident: "doc",
- arguments: None,
- },
- ],
+ style: AttrStyle::Outer,
+ meta: Meta::NameValue {
+ path: Path {
+ segments: [
+ PathSegment {
+ ident: "doc",
+ },
+ ],
+ },
+ value: Expr::Lit {
+ lit: " See the std::result module documentation for details.",
+ },
},
- tokens: TokenStream(`= r" See the std::result module documentation for details."`),
},
Attribute {
- style: Outer,
- path: Path {
+ style: AttrStyle::Outer,
+ meta: Meta::Path {
segments: [
PathSegment {
ident: "must_use",
- arguments: None,
},
],
},
- tokens: TokenStream(``),
},
],
vis: Visibility::Public,
@@ -241,10 +229,10 @@ fn test_enum() {
generics: Generics {
lt_token: Some,
params: [
- Type(TypeParam {
+ GenericParam::Type(TypeParam {
ident: "T",
}),
- Type(TypeParam {
+ GenericParam::Type(TypeParam {
ident: "E",
}),
],
@@ -257,13 +245,12 @@ fn test_enum() {
fields: Fields::Unnamed {
unnamed: [
Field {
- vis: Inherited,
+ vis: Visibility::Inherited,
ty: Type::Path {
path: Path {
segments: [
PathSegment {
ident: "T",
- arguments: None,
},
],
},
@@ -277,13 +264,12 @@ fn test_enum() {
fields: Fields::Unnamed {
unnamed: [
Field {
- vis: Inherited,
+ vis: Visibility::Inherited,
ty: Type::Path {
path: Path {
segments: [
PathSegment {
ident: "E",
- arguments: None,
},
],
},
@@ -294,14 +280,14 @@ fn test_enum() {
},
Variant {
ident: "Surprise",
- fields: Unit,
+ fields: Fields::Unit,
discriminant: Some(Expr::Lit {
lit: 0isize,
}),
},
Variant {
ident: "ProcMacroHack",
- fields: Unit,
+ fields: Fields::Unit,
discriminant: Some(Expr::Field {
base: Expr::Tuple {
elems: [
@@ -313,7 +299,7 @@ fn test_enum() {
},
],
},
- member: Unnamed(Index {
+ member: Member::Unnamed(Index {
index: 0,
}),
}),
@@ -323,11 +309,7 @@ fn test_enum() {
}
"###);
- let meta_items: Vec<_> = input
- .attrs
- .into_iter()
- .map(|attr| attr.parse_meta().unwrap())
- .collect();
+ let meta_items: Vec<_> = input.attrs.into_iter().map(|attr| attr.meta).collect();
snapshot!(meta_items, @r###"
[
@@ -336,64 +318,22 @@ fn test_enum() {
segments: [
PathSegment {
ident: "doc",
- arguments: None,
},
],
},
- lit: " See the std::result module documentation for details.",
+ value: Expr::Lit {
+ lit: " See the std::result module documentation for details.",
+ },
},
- Path(Path {
+ Meta::Path {
segments: [
PathSegment {
ident: "must_use",
- arguments: None,
},
],
- }),
- ]
- "###);
-}
-
-#[test]
-fn test_attr_with_path() {
- let input = quote! {
- #[::attr_args::identity
- fn main() { assert_eq!(foo(), "Hello, world!"); }]
- struct Dummy;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- attrs: [
- Attribute {
- style: Outer,
- path: Path {
- leading_colon: Some,
- segments: [
- PathSegment {
- ident: "attr_args",
- arguments: None,
- },
- PathSegment {
- ident: "identity",
- arguments: None,
- },
- ],
- },
- tokens: TokenStream(`fn main () { assert_eq ! (foo () , "Hello, world!") ; }`),
- },
- ],
- vis: Inherited,
- ident: "Dummy",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
},
- }
+ ]
"###);
-
- assert!(input.attrs[0].parse_meta().is_err());
}
#[test]
@@ -403,33 +343,7 @@ fn test_attr_with_non_mod_style_path() {
struct S;
};
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- attrs: [
- Attribute {
- style: Outer,
- path: Path {
- segments: [
- PathSegment {
- ident: "inert",
- arguments: None,
- },
- ],
- },
- tokens: TokenStream(`< T >`),
- },
- ],
- vis: Inherited,
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-
- assert!(input.attrs[0].parse_meta().is_err());
+ syn::parse2::<DeriveInput>(input).unwrap_err();
}
#[test]
@@ -443,45 +357,40 @@ fn test_attr_with_mod_style_path_with_self() {
DeriveInput {
attrs: [
Attribute {
- style: Outer,
- path: Path {
+ style: AttrStyle::Outer,
+ meta: Meta::Path {
segments: [
PathSegment {
ident: "foo",
- arguments: None,
},
PathSegment {
ident: "self",
- arguments: None,
},
],
},
- tokens: TokenStream(``),
},
],
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: "S",
generics: Generics,
data: Data::Struct {
- fields: Unit,
+ fields: Fields::Unit,
semi_token: Some,
},
}
"###);
- snapshot!(input.attrs[0].parse_meta().unwrap(), @r###"
- Path(Path {
+ snapshot!(&input.attrs[0].meta, @r###"
+ Meta::Path {
segments: [
PathSegment {
ident: "foo",
- arguments: None,
},
PathSegment {
ident: "self",
- arguments: None,
},
],
- })
+ }
"###);
}
@@ -500,7 +409,6 @@ fn test_pub_restricted() {
segments: [
PathSegment {
ident: "m",
- arguments: None,
},
],
},
@@ -517,11 +425,9 @@ fn test_pub_restricted() {
segments: [
PathSegment {
ident: "m",
- arguments: None,
},
PathSegment {
ident: "n",
- arguments: None,
},
],
},
@@ -531,7 +437,6 @@ fn test_pub_restricted() {
segments: [
PathSegment {
ident: "u8",
- arguments: None,
},
],
},
@@ -546,25 +451,6 @@ fn test_pub_restricted() {
}
#[test]
-fn test_vis_crate() {
- let input = quote! {
- crate struct S;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Visibility::Crate,
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-}
-
-#[test]
fn test_pub_restricted_crate() {
let input = quote! {
pub(crate) struct S;
@@ -577,7 +463,6 @@ fn test_pub_restricted_crate() {
segments: [
PathSegment {
ident: "crate",
- arguments: None,
},
],
},
@@ -585,7 +470,7 @@ fn test_pub_restricted_crate() {
ident: "S",
generics: Generics,
data: Data::Struct {
- fields: Unit,
+ fields: Fields::Unit,
semi_token: Some,
},
}
@@ -605,7 +490,6 @@ fn test_pub_restricted_super() {
segments: [
PathSegment {
ident: "super",
- arguments: None,
},
],
},
@@ -613,7 +497,7 @@ fn test_pub_restricted_super() {
ident: "S",
generics: Generics,
data: Data::Struct {
- fields: Unit,
+ fields: Fields::Unit,
semi_token: Some,
},
}
@@ -634,7 +518,6 @@ fn test_pub_restricted_in_super() {
segments: [
PathSegment {
ident: "super",
- arguments: None,
},
],
},
@@ -642,7 +525,7 @@ fn test_pub_restricted_in_super() {
ident: "S",
generics: Generics,
data: Data::Struct {
- fields: Unit,
+ fields: Fields::Unit,
semi_token: Some,
},
}
@@ -657,11 +540,11 @@ fn test_fields_on_unit_struct() {
snapshot!(input as DeriveInput, @r###"
DeriveInput {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: "S",
generics: Generics,
data: Data::Struct {
- fields: Unit,
+ fields: Fields::Unit,
semi_token: Some,
},
}
@@ -686,14 +569,14 @@ fn test_fields_on_named_struct() {
snapshot!(input as DeriveInput, @r###"
DeriveInput {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: "S",
generics: Generics,
data: Data::Struct {
fields: Fields::Named {
named: [
Field {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: Some("foo"),
colon_token: Some,
ty: Type::Path {
@@ -701,7 +584,6 @@ fn test_fields_on_named_struct() {
segments: [
PathSegment {
ident: "i32",
- arguments: None,
},
],
},
@@ -716,7 +598,6 @@ fn test_fields_on_named_struct() {
segments: [
PathSegment {
ident: "String",
- arguments: None,
},
],
},
@@ -736,7 +617,7 @@ fn test_fields_on_named_struct() {
snapshot!(data.fields.into_iter().collect::<Vec<_>>(), @r###"
[
Field {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: Some("foo"),
colon_token: Some,
ty: Type::Path {
@@ -744,7 +625,6 @@ fn test_fields_on_named_struct() {
segments: [
PathSegment {
ident: "i32",
- arguments: None,
},
],
},
@@ -759,7 +639,6 @@ fn test_fields_on_named_struct() {
segments: [
PathSegment {
ident: "String",
- arguments: None,
},
],
},
@@ -777,20 +656,19 @@ fn test_fields_on_tuple_struct() {
snapshot!(input as DeriveInput, @r###"
DeriveInput {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: "S",
generics: Generics,
data: Data::Struct {
fields: Fields::Unnamed {
unnamed: [
Field {
- vis: Inherited,
+ vis: Visibility::Inherited,
ty: Type::Path {
path: Path {
segments: [
PathSegment {
ident: "i32",
- arguments: None,
},
],
},
@@ -803,7 +681,6 @@ fn test_fields_on_tuple_struct() {
segments: [
PathSegment {
ident: "String",
- arguments: None,
},
],
},
@@ -824,13 +701,12 @@ fn test_fields_on_tuple_struct() {
snapshot!(data.fields.iter().collect::<Vec<_>>(), @r###"
[
Field {
- vis: Inherited,
+ vis: Visibility::Inherited,
ty: Type::Path {
path: Path {
segments: [
PathSegment {
ident: "i32",
- arguments: None,
},
],
},
@@ -843,7 +719,6 @@ fn test_fields_on_tuple_struct() {
segments: [
PathSegment {
ident: "String",
- arguments: None,
},
],
},
@@ -862,24 +737,22 @@ fn test_ambiguous_crate() {
snapshot!(input as DeriveInput, @r###"
DeriveInput {
- vis: Inherited,
+ vis: Visibility::Inherited,
ident: "S",
generics: Generics,
data: Data::Struct {
fields: Fields::Unnamed {
unnamed: [
Field {
- vis: Inherited,
+ vis: Visibility::Inherited,
ty: Type::Path {
path: Path {
segments: [
PathSegment {
ident: "crate",
- arguments: None,
},
PathSegment {
ident: "X",
- arguments: None,
},
],
},