Fix test_derive_input
diff --git a/tests/test_derive_input.rs b/tests/test_derive_input.rs
index 553871b..6e64d20 100644
--- a/tests/test_derive_input.rs
+++ b/tests/test_derive_input.rs
@@ -12,8 +12,7 @@
extern crate syn;
use proc_macro2::Delimiter::{Brace, Parenthesis};
-use proc_macro2::Group;
-use proc_macro2::{Delimiter, Literal, Op, Spacing, Span, Term, TokenStream, TokenTree};
+use proc_macro2::*;
use syn::*;
use std::iter::FromIterator;
@@ -22,15 +21,19 @@
mod macros;
fn op(c: char) -> TokenTree {
- Op::new(c, Spacing::Alone).into()
+ Punct::new(c, Spacing::Alone).into()
}
fn lit<T: Into<Literal>>(t: T) -> TokenTree {
t.into().into()
}
+fn ident(sym: &str) -> Ident {
+ Ident::new(sym, Span::call_site())
+}
+
fn word(sym: &str) -> TokenTree {
- Term::new(sym, Span::call_site()).into()
+ ident(sym).into()
}
fn delimited(delim: Delimiter, tokens: Vec<TokenTree>) -> TokenTree {
@@ -42,7 +45,7 @@
let raw = "struct Unit;";
let expected = DeriveInput {
- ident: "Unit".into(),
+ ident: ident("Unit"),
vis: Visibility::Inherited,
attrs: Vec::new(),
generics: Generics::default(),
@@ -67,7 +70,7 @@
";
let expected = DeriveInput {
- ident: "Item".into(),
+ ident: ident("Item"),
vis: Visibility::Public(VisPublic {
pub_token: Default::default(),
}),
@@ -75,7 +78,7 @@
bracket_token: Default::default(),
pound_token: Default::default(),
style: AttrStyle::Outer,
- path: "derive".into(),
+ path: ident("derive").into(),
tts: TokenStream::from_iter(vec![delimited(
Parenthesis,
vec![word("Debug"), op(','), word("Clone")],
@@ -90,7 +93,7 @@
brace_token: Default::default(),
named: punctuated![
Field {
- ident: Some("ident".into()),
+ ident: Some(ident("ident")),
colon_token: Some(Default::default()),
vis: Visibility::Public(VisPublic {
pub_token: Default::default(),
@@ -98,11 +101,11 @@
attrs: Vec::new(),
ty: TypePath {
qself: None,
- path: "Ident".into(),
+ path: ident("Ident").into(),
}.into(),
},
Field {
- ident: Some("attrs".into()),
+ ident: Some(ident("attrs")),
colon_token: Some(Default::default()),
vis: Visibility::Public(VisPublic {
pub_token: Default::default(),
@@ -113,7 +116,7 @@
path: Path {
leading_colon: None,
segments: punctuated![PathSegment {
- ident: "Vec".into(),
+ ident: ident("Vec"),
arguments: PathArguments::AngleBracketed(
AngleBracketedGenericArguments {
colon2_token: None,
@@ -121,7 +124,7 @@
args: punctuated![GenericArgument::Type(Type::from(
TypePath {
qself: None,
- path: "Attribute".into(),
+ path: ident("Attribute").into(),
}
)),],
gt_token: Default::default(),
@@ -141,11 +144,11 @@
assert_eq!(expected, actual);
let expected_meta_item: Meta = MetaList {
- ident: "derive".into(),
+ ident: ident("derive"),
paren_token: Default::default(),
nested: punctuated![
- NestedMeta::Meta(Meta::Word("Debug".into())),
- NestedMeta::Meta(Meta::Word("Clone".into())),
+ NestedMeta::Meta(Meta::Word(ident("Debug"))),
+ NestedMeta::Meta(Meta::Word(ident("Clone"))),
],
}.into();
@@ -173,7 +176,7 @@
"#;
let expected = DeriveInput {
- ident: "Result".into(),
+ ident: ident("Result"),
vis: Visibility::Public(VisPublic {
pub_token: Default::default(),
}),
@@ -182,7 +185,7 @@
bracket_token: Default::default(),
pound_token: Default::default(),
style: AttrStyle::Outer,
- path: "doc".into(),
+ path: ident("doc").into(),
tts: TokenStream::from_iter(vec![
op('='),
lit(Literal::string(
@@ -195,7 +198,7 @@
bracket_token: Default::default(),
pound_token: Default::default(),
style: AttrStyle::Outer,
- path: "must_use".into(),
+ path: ident("must_use").into(),
tts: TokenStream::empty(),
is_sugared_doc: false,
},
@@ -205,7 +208,7 @@
params: punctuated![
GenericParam::Type(TypeParam {
attrs: Vec::new(),
- ident: "T".into(),
+ ident: ident("T"),
bounds: Default::default(),
default: None,
colon_token: None,
@@ -213,7 +216,7 @@
}),
GenericParam::Type(TypeParam {
attrs: Vec::new(),
- ident: "E".into(),
+ ident: ident("E"),
bounds: Default::default(),
colon_token: None,
eq_token: None,
@@ -226,7 +229,7 @@
data: Data::Enum(DataEnum {
variants: punctuated![
Variant {
- ident: "Ok".into(),
+ ident: ident("Ok"),
attrs: Vec::new(),
fields: Fields::Unnamed(FieldsUnnamed {
paren_token: Default::default(),
@@ -237,14 +240,14 @@
attrs: Vec::new(),
ty: TypePath {
qself: None,
- path: "T".into(),
+ path: ident("T").into(),
}.into(),
},],
}),
discriminant: None,
},
Variant {
- ident: "Err".into(),
+ ident: ident("Err"),
attrs: Vec::new(),
fields: Fields::Unnamed(FieldsUnnamed {
paren_token: Default::default(),
@@ -255,14 +258,14 @@
attrs: Vec::new(),
ty: TypePath {
qself: None,
- path: "E".into(),
+ path: ident("E").into(),
}.into(),
},],
}),
discriminant: None,
},
Variant {
- ident: "Surprise".into(),
+ ident: ident("Surprise"),
attrs: Vec::new(),
fields: Fields::Unit,
discriminant: Some((
@@ -274,7 +277,7 @@
)),
},
Variant {
- ident: "ProcMacroHack".into(),
+ ident: ident("ProcMacroHack"),
attrs: Vec::new(),
fields: Fields::Unit,
discriminant: Some((
@@ -319,14 +322,14 @@
let expected_meta_items = vec![
MetaNameValue {
- ident: "doc".into(),
+ ident: ident("doc"),
eq_token: Default::default(),
lit: Lit::Str(LitStr::new(
" See the std::result module documentation for details.",
Span::call_site(),
)),
}.into(),
- Meta::Word("must_use".into()),
+ Meta::Word(ident("must_use")),
];
let actual_meta_items: Vec<_> = actual
@@ -347,7 +350,7 @@
"#;
let expected = DeriveInput {
- ident: "Dummy".into(),
+ ident: ident("Dummy"),
vis: Visibility::Inherited,
attrs: vec![Attribute {
bracket_token: Default::default(),
@@ -356,8 +359,8 @@
path: Path {
leading_colon: Some(Default::default()),
segments: punctuated![
- PathSegment::from("attr_args"),
- PathSegment::from("identity"),
+ PathSegment::from(ident("attr_args")),
+ PathSegment::from(ident("identity")),
],
},
tts: TokenStream::from_iter(vec![
@@ -407,7 +410,7 @@
"#;
let expected = DeriveInput {
- ident: "S".into(),
+ ident: ident("S"),
vis: Visibility::Inherited,
attrs: vec![Attribute {
bracket_token: Default::default(),
@@ -415,7 +418,7 @@
style: AttrStyle::Outer,
path: Path {
leading_colon: None,
- segments: punctuated![PathSegment::from("inert")],
+ segments: punctuated![PathSegment::from(ident("inert"))],
},
tts: TokenStream::from_iter(vec![op('<'), word("T"), op('>')]),
is_sugared_doc: false,
@@ -443,7 +446,7 @@
"#;
let expected = DeriveInput {
- ident: "S".into(),
+ ident: ident("S"),
vis: Visibility::Inherited,
attrs: vec![Attribute {
bracket_token: Default::default(),
@@ -451,7 +454,10 @@
style: AttrStyle::Outer,
path: Path {
leading_colon: None,
- segments: punctuated![PathSegment::from("foo"), PathSegment::from("self")],
+ segments: punctuated![
+ PathSegment::from(ident("foo")),
+ PathSegment::from(ident("self")),
+ ],
},
tts: TokenStream::empty(),
is_sugared_doc: false,
@@ -479,9 +485,9 @@
"#;
let expected = DeriveInput {
- ident: "Z".into(),
+ ident: ident("Z"),
vis: Visibility::Restricted(VisRestricted {
- path: Box::new("m".into()),
+ path: Box::new(ident("m").into()),
in_token: Some(Default::default()),
paren_token: Default::default(),
pub_token: Default::default(),
@@ -496,7 +502,10 @@
vis: Visibility::Restricted(VisRestricted {
path: Box::new(Path {
leading_colon: None,
- segments: punctuated![PathSegment::from("m"), PathSegment::from("n")],
+ segments: punctuated![
+ PathSegment::from(ident("m")),
+ PathSegment::from(ident("n")),
+ ],
}),
in_token: Some(Default::default()),
paren_token: Default::default(),
@@ -506,7 +515,7 @@
attrs: vec![],
ty: TypePath {
qself: None,
- path: "u8".into(),
+ path: ident("u8").into(),
}.into(),
},],
}),
@@ -527,7 +536,7 @@
"#;
let expected = DeriveInput {
- ident: "S".into(),
+ ident: ident("S"),
vis: Visibility::Crate(VisCrate {
crate_token: Default::default(),
}),
@@ -552,12 +561,12 @@
"#;
let expected = DeriveInput {
- ident: "S".into(),
+ ident: ident("S"),
vis: Visibility::Restricted(VisRestricted {
pub_token: Default::default(),
paren_token: Default::default(),
in_token: None,
- path: Box::new("crate".into()),
+ path: Box::new(ident("crate").into()),
}),
attrs: vec![],
generics: Generics::default(),
@@ -580,9 +589,9 @@
"#;
let expected = DeriveInput {
- ident: "S".into(),
+ ident: ident("S"),
vis: Visibility::Restricted(VisRestricted {
- path: Box::new("super".into()),
+ path: Box::new(ident("super").into()),
in_token: None,
paren_token: Default::default(),
pub_token: Default::default(),
@@ -608,9 +617,9 @@
"#;
let expected = DeriveInput {
- ident: "S".into(),
+ ident: ident("S"),
vis: Visibility::Restricted(VisRestricted {
- path: Box::new("super".into()),
+ path: Box::new(ident("super").into()),
in_token: Some(Default::default()),
paren_token: Default::default(),
pub_token: Default::default(),
@@ -655,7 +664,7 @@
Field {
attrs: vec![],
vis: Visibility::Inherited,
- ident: Some(Ident::from("foo")),
+ ident: Some(ident("foo")),
colon_token: Some(Default::default()),
ty: syn::parse_str("i32").unwrap(),
},
@@ -664,7 +673,7 @@
vis: Visibility::Public(VisPublic {
pub_token: Default::default(),
}),
- ident: Some(Ident::from("bar")),
+ ident: Some(ident("bar")),
colon_token: Some(Default::default()),
ty: syn::parse_str("String").unwrap(),
},