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(),
         },
