Parse crate in paths
diff --git a/src/ident.rs b/src/ident.rs
index 4af78e6..5d55957 100644
--- a/src/ident.rs
+++ b/src/ident.rs
@@ -165,6 +165,12 @@
     }
 }
 
+impl From<Token![crate]> for Ident {
+    fn from(tok: Token![crate]) -> Self {
+        Ident::new(Term::intern("crate"), tok.0)
+    }
+}
+
 impl<'a> From<Cow<'a, str>> for Ident {
     fn from(s: Cow<'a, str>) -> Self {
         Ident::new(Term::intern(&s), Span::default())
diff --git a/src/ty.rs b/src/ty.rs
index b2d9046..fee6326 100644
--- a/src/ty.rs
+++ b/src/ty.rs
@@ -755,6 +755,8 @@
             keyword!(self) => { Into::into }
             |
             keyword!(Self) => { Into::into }
+            |
+            keyword!(crate) => { Into::into }
         )
     ));
 
diff --git a/tests/common/mod.rs b/tests/common/mod.rs
index e5e874c..4e5fc47 100644
--- a/tests/common/mod.rs
+++ b/tests/common/mod.rs
@@ -95,12 +95,6 @@
         //
         //      Box<'foo + Bar>
         "tests/rust/src/test/run-pass/trait-object-lifetime-first.rs" |
-        // TODO feature(crate_in_paths)
-        //
-        //      use crate as root;
-        //      pub(in crate::m) struct S;
-        //      ::crate::f();
-        "tests/rust/src/test/run-pass/rfc-2126-crate-paths/crate-path-absolute.rs" |
         // TODO feature(use_nested_groups)
         //
         //      use a::{B, D::{self, *, g::H}};