Do not use Ident to represent Lifetime
diff --git a/tests/test_expr.rs b/tests/test_expr.rs
index 749d50f..0e4b574 100644
--- a/tests/test_expr.rs
+++ b/tests/test_expr.rs
@@ -88,9 +88,9 @@
 
     let actual = raw.parse::<Crate>().unwrap();
 
-    assert_eq!(&actual.items[0].ident, "catch");
-
-    assert_let!(ItemKind::Struct(..) = actual.items[0].node);
+    assert_let!(ItemKind::Struct(ItemStruct { ref ident, .. }) = actual.items[0].node; {
+        assert_eq!(ident, "catch");
+    });
 
     assert_let!(Item { node: ItemKind::Fn(ItemFn { ref block, .. }), .. } = actual.items[1]; {
         assert_let!(Stmt::Local(ref local) = block.stmts[0]; {
diff --git a/tests/test_generics.rs b/tests/test_generics.rs
index 6c37035..8bb6171 100644
--- a/tests/test_generics.rs
+++ b/tests/test_generics.rs
@@ -15,14 +15,14 @@
         lifetimes: vec![
             LifetimeDef {
                 attrs: Default::default(),
-                lifetime: Lifetime::new("'a"),
+                lifetime: Lifetime::new("'a".into(), Span::default()),
                 bounds: Default::default(),
                 colon_token: None,
             },
             LifetimeDef {
                 attrs: Default::default(),
-                lifetime: Lifetime::new("'b"),
-                bounds: vec![Lifetime::new("'a")].into(),
+                lifetime: Lifetime::new("'b".into(), Span::default()),
+                bounds: vec![Lifetime::new("'a".into(), Span::default())].into(),
                 colon_token: Some(tokens::Colon::default()),
             },
         ].into(),
@@ -37,7 +37,7 @@
                     is_sugared_doc: false,
                 }],
                 ident: "T".into(),
-                bounds: vec![TyParamBound::Region(Lifetime::new("'a"))].into(),
+                bounds: vec![TyParamBound::Region(Lifetime::new("'a".into(), Span::default()))].into(),
                 default: Some(TyTup {
                     tys: Default::default(),
                     lone_comma: None,
@@ -92,7 +92,7 @@
 #[test]
 fn test_ty_param_bound() {
     let tokens = quote!('a);
-    let expected = TyParamBound::Region(Lifetime::new("'a"));
+    let expected = TyParamBound::Region(Lifetime::new("'a".into(), Span::default()));
     assert_eq!(expected, tokens.to_string().parse().unwrap());
 
     let tokens = quote!(Debug);
diff --git a/tests/test_macro_input.rs b/tests/test_macro_input.rs
index bddf52e..5c2715c 100644
--- a/tests/test_macro_input.rs
+++ b/tests/test_macro_input.rs
@@ -115,20 +115,20 @@
                         qself: None,
                         path: Path {
                             leading_colon: None,
-                            global: false,
                             segments: vec![
                                 PathSegment {
                                     ident: "Vec".into(),
                                     parameters: PathParameters::AngleBracketed(
                                         AngleBracketedParameterData {
-                                            gt_token: Some(Default::default()),
-                                            lt_token: Some(Default::default()),
+                                            turbofish: None,
+                                            lt_token: Default::default(),
                                             lifetimes: Default::default(),
                                             types: vec![Ty::from(TyPath {
                                                 qself: None,
                                                 path: "Attribute".into(),
                                             })].into(),
                                             bindings: Default::default(),
+                                            gt_token: Default::default(),
                                         },
                                     ),
                                 }
@@ -347,7 +347,6 @@
             pound_token: Default::default(),
             style: AttrStyle::Outer,
             path: Path {
-                global: true,
                 leading_colon: Some(Default::default()),
                 segments: vec![
                     PathSegment::from("attr_args"),
@@ -402,7 +401,6 @@
             pound_token: Default::default(),
             style: AttrStyle::Outer,
             path: Path {
-                global: false,
                 leading_colon: None,
                 segments: vec![
                     PathSegment::from("inert"),
@@ -445,7 +443,6 @@
             pound_token: Default::default(),
             style: AttrStyle::Outer,
             path: Path {
-                global: false,
                 leading_colon: None,
                 segments: vec![
                     PathSegment::from("foo"),
@@ -492,7 +489,6 @@
                 ident: None,
                 vis: Visibility::Restricted(VisRestricted {
                     path: Box::new(Path {
-                        global: false,
                         leading_colon: None,
                         segments: vec![
                             PathSegment::from("m"),