diff --git a/src/generics.rs b/src/generics.rs
index afcf9a4..78c447f 100644
--- a/src/generics.rs
+++ b/src/generics.rs
@@ -490,19 +490,13 @@
 
     impl Parse for Generics {
         fn parse(input: ParseStream) -> Result<Self> {
-            let mut params = Punctuated::new();
-
             if !input.peek(Token![<]) {
-                return Ok(Generics {
-                    lt_token: None,
-                    params: params,
-                    gt_token: None,
-                    where_clause: None,
-                });
+                return Ok(Generics::default());
             }
 
             let lt_token: Token![<] = input.parse()?;
 
+            let mut params = Punctuated::new();
             let mut has_type_param = false;
             loop {
                 if input.peek(Token![>]) {
diff --git a/src/item.rs b/src/item.rs
index 39bd3cb..a851560 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -1719,7 +1719,19 @@
             let defaultness: Option<Token![default]> = input.parse()?;
             let unsafety: Option<Token![unsafe]> = input.parse()?;
             let impl_token: Token![impl ] = input.parse()?;
-            let generics: Generics = input.parse()?;
+
+            let has_generics = input.peek(Token![<])
+                && (input.peek2(Token![>])
+                    || input.peek2(Token![#])
+                    || (input.peek2(Ident) || input.peek2(Lifetime))
+                        && (input.peek3(Token![:]) || input.peek3(Token![,]) || input.peek3(Token![>]))
+                );
+            let generics: Generics = if has_generics {
+                input.parse()?
+            } else {
+                Generics::default()
+            };
+
             let trait_ = {
                 let ahead = input.fork();
                 if ahead.parse::<Option<Token![!]>>().is_ok()
