Fix parsing `default impl` items
diff --git a/src/item.rs b/src/item.rs
index 3255ed9..e9ccd32 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -161,6 +161,7 @@
         ///
         /// E.g. `impl<A> Foo<A> { .. }` or `impl<A> Trait for Foo<A> { .. }`
         pub Impl(ItemImpl {
+            pub defaultness: Defaultness,
             pub unsafety: Unsafety,
             pub impl_token: tokens::Impl,
             pub generics: Generics,
@@ -1134,6 +1135,7 @@
 
     named!(item_impl -> Item, do_parse!(
         attrs: many0!(call!(Attribute::parse_outer)) >>
+        defaultness: syn!(Defaultness) >>
         unsafety: syn!(Unsafety) >>
         impl_: syn!(Impl) >>
         generics: syn!(Generics) >>
@@ -1153,6 +1155,7 @@
         (Item {
             attrs: attrs,
             node: ItemImpl {
+                defaultness: defaultness,
                 unsafety: unsafety,
                 impl_token: impl_,
                 generics: Generics {
@@ -1470,6 +1473,7 @@
                     item.brace_token.surround(tokens, |_tokens| {});
                 }
                 ItemKind::Impl(ref item) => {
+                    item.defaultness.to_tokens(tokens);
                     item.unsafety.to_tokens(tokens);
                     item.impl_token.to_tokens(tokens);
                     item.generics.to_tokens(tokens);