Update to quote 0.4
diff --git a/tests/test_derive_input.rs b/tests/test_derive_input.rs
index 9079b4a..06997af 100644
--- a/tests/test_derive_input.rs
+++ b/tests/test_derive_input.rs
@@ -12,7 +12,7 @@
 extern crate syn;
 
 use syn::*;
-use proc_macro2::{Delimiter, Literal, Spacing, Term, TokenNode, TokenStream, TokenTree};
+use proc_macro2::{Delimiter, Literal, Spacing, Span, Term, TokenNode, TokenStream, TokenTree};
 use proc_macro2::Delimiter::{Brace, Parenthesis};
 
 use std::iter::FromIterator;
@@ -22,28 +22,28 @@
 
 fn op(c: char) -> TokenTree {
     proc_macro2::TokenTree {
-        span: Default::default(),
+        span: Span::def_site(),
         kind: TokenNode::Op(c, Spacing::Alone),
     }
 }
 
 fn lit<T: Into<Literal>>(t: T) -> TokenTree {
     proc_macro2::TokenTree {
-        span: Default::default(),
+        span: Span::def_site(),
         kind: TokenNode::Literal(t.into()),
     }
 }
 
 fn word(sym: &str) -> TokenTree {
     proc_macro2::TokenTree {
-        span: Default::default(),
+        span: Span::def_site(),
         kind: TokenNode::Term(Term::intern(sym)),
     }
 }
 
 fn delimited(delim: Delimiter, tokens: Vec<TokenTree>) -> TokenTree {
     proc_macro2::TokenTree {
-        span: Default::default(),
+        span: Span::def_site(),
         kind: TokenNode::Group(delim, tokens.into_iter().collect()),
     }
 }
@@ -284,7 +284,7 @@
                         Default::default(),
                         Expr::Lit(ExprLit {
                             attrs: Vec::new(),
-                            lit: Lit::Int(LitInt::new(0, IntSuffix::Isize, Default::default())),
+                            lit: Lit::Int(LitInt::new(0, IntSuffix::Isize, Span::def_site())),
                         }),
                     )),
                 },
@@ -305,19 +305,19 @@
                                         lit: Lit::Int(LitInt::new(
                                             0,
                                             IntSuffix::None,
-                                            Default::default()
+                                            Span::def_site()
                                         )),
                                     }),
                                     Expr::Lit(ExprLit {
                                         attrs: Vec::new(),
-                                        lit: Lit::Str(LitStr::new("data", Default::default())),
+                                        lit: Lit::Str(LitStr::new("data", Span::def_site())),
                                     }),
                                 ],
                             })),
                             dot_token: Default::default(),
                             member: Member::Unnamed(Index {
                                 index: 0,
-                                span: Default::default(),
+                                span: Span::def_site(),
                             }),
                         }),
                     )),
@@ -338,7 +338,7 @@
             eq_token: Default::default(),
             lit: Lit::Str(LitStr::new(
                 "/// See the std::result module documentation for details.",
-                Default::default(),
+                Span::def_site(),
             )),
         }.into(),
         Meta::Word("must_use".into()),
diff --git a/tests/test_generics.rs b/tests/test_generics.rs
index 18dd43f..93cb44f 100644
--- a/tests/test_generics.rs
+++ b/tests/test_generics.rs
@@ -32,14 +32,14 @@
         params: punctuated![
             GenericParam::Lifetime(LifetimeDef {
                 attrs: Default::default(),
-                lifetime: Lifetime::new(Term::intern("'a"), Span::default()),
+                lifetime: Lifetime::new(Term::intern("'a"), Span::def_site()),
                 bounds: Default::default(),
                 colon_token: None,
             }),
             GenericParam::Lifetime(LifetimeDef {
                 attrs: Default::default(),
-                lifetime: Lifetime::new(Term::intern("'b"), Span::default()),
-                bounds: punctuated![Lifetime::new(Term::intern("'a"), Span::default())],
+                lifetime: Lifetime::new(Term::intern("'b"), Span::def_site()),
+                bounds: punctuated![Lifetime::new(Term::intern("'a"), Span::def_site())],
                 colon_token: Some(token::Colon::default()),
             }),
             GenericParam::Type(TypeParam {
@@ -55,7 +55,7 @@
                 ],
                 ident: "T".into(),
                 bounds: punctuated![
-                    TypeParamBound::Lifetime(Lifetime::new(Term::intern("'a"), Span::default())),
+                    TypeParamBound::Lifetime(Lifetime::new(Term::intern("'a"), Span::def_site())),
                 ],
                 default: Some(
                     TypeTuple {
@@ -111,7 +111,7 @@
 #[test]
 fn test_ty_param_bound() {
     let tokens = quote!('a);
-    let expected = TypeParamBound::Lifetime(Lifetime::new(Term::intern("'a"), Span::default()));
+    let expected = TypeParamBound::Lifetime(Lifetime::new(Term::intern("'a"), Span::def_site()));
     assert_eq!(
         expected,
         common::parse::syn::<TypeParamBound>(tokens.into())
diff --git a/tests/test_grouping.rs b/tests/test_grouping.rs
index 3e9e8f8..8e00068 100644
--- a/tests/test_grouping.rs
+++ b/tests/test_grouping.rs
@@ -24,7 +24,7 @@
 
 fn tt(k: TokenNode) -> TokenTree {
     TokenTree {
-        span: Span::default(),
+        span: Span::def_site(),
         kind: k,
     }
 }
@@ -36,7 +36,7 @@
 fn lit<T: Into<Literal>>(t: T) -> Expr {
     Expr::Lit(ExprLit {
         attrs: Vec::new(),
-        lit: Lit::new(t.into(), Span::default()),
+        lit: Lit::new(t.into(), Span::def_site()),
     })
 }
 
diff --git a/tests/test_lit.rs b/tests/test_lit.rs
index 1a65c39..ad6f246 100644
--- a/tests/test_lit.rs
+++ b/tests/test_lit.rs
@@ -23,7 +23,7 @@
         .unwrap()
         .kind
     {
-        TokenNode::Literal(lit) => Lit::new(lit, Span::default()),
+        TokenNode::Literal(lit) => Lit::new(lit, Span::def_site()),
         _ => panic!(),
     }
 }
diff --git a/tests/test_meta_item.rs b/tests/test_meta_item.rs
index 8546733..231ba45 100644
--- a/tests/test_meta_item.rs
+++ b/tests/test_meta_item.rs
@@ -13,13 +13,13 @@
 
 use syn::*;
 use syn::buffer::TokenBuffer;
-use proc_macro2::{Literal, TokenStream};
+use proc_macro2::{Literal, Span, TokenStream};
 
 #[macro_use]
 mod macros;
 
 fn lit<T: Into<Literal>>(t: T) -> Lit {
-    Lit::new(t.into(), Default::default())
+    Lit::new(t.into(), Span::def_site())
 }
 
 #[test]
diff --git a/tests/test_token_trees.rs b/tests/test_token_trees.rs
index 10a2caa..398e630 100644
--- a/tests/test_token_trees.rs
+++ b/tests/test_token_trees.rs
@@ -14,33 +14,33 @@
 extern crate syn;
 
 use syn::{AttrStyle, Attribute, Lit};
-use proc_macro2::{Delimiter, Spacing, Term, TokenNode, TokenStream, TokenTree};
+use proc_macro2::{Delimiter, Spacing, Span, Term, TokenNode, TokenStream, TokenTree};
 use proc_macro2::Delimiter::*;
 
 fn alone(c: char) -> TokenTree {
     proc_macro2::TokenTree {
-        span: Default::default(),
+        span: Span::def_site(),
         kind: TokenNode::Op(c, Spacing::Alone),
     }
 }
 
 fn joint(c: char) -> TokenTree {
     proc_macro2::TokenTree {
-        span: Default::default(),
+        span: Span::def_site(),
         kind: TokenNode::Op(c, Spacing::Joint),
     }
 }
 
 fn delimited(delim: Delimiter, tokens: Vec<TokenTree>) -> TokenTree {
     proc_macro2::TokenTree {
-        span: Default::default(),
+        span: Span::def_site(),
         kind: TokenNode::Group(delim, tokens.into_iter().collect()),
     }
 }
 
 fn word(sym: &str) -> TokenTree {
     proc_macro2::TokenTree {
-        span: Default::default(),
+        span: Span::def_site(),
         kind: TokenNode::Term(Term::intern(sym)),
     }
 }