No need to consume Error in to_compile_error
diff --git a/src/error.rs b/src/error.rs
index 16e568e..05826c4 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -85,7 +85,7 @@
     ///
     /// [`compile_error!`]: https://doc.rust-lang.org/std/macro.compile_error.html
     /// [`parse_macro_input!`]: ../macro.parse_macro_input.html
-    pub fn into_compile_error(self) -> TokenStream {
+    pub fn to_compile_error(&self) -> TokenStream {
         // compile_error!($message)
         TokenStream::from_iter(vec![
             TokenTree::Ident(Ident::new("compile_error", self.span)),
diff --git a/src/lib.rs b/src/lib.rs
index d3b7359..ed04e7c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -808,7 +808,7 @@
         match $crate::parse::<$ty>($tokenstream) {
             $crate::export::Ok(data) => data,
             $crate::export::Err(err) => {
-                return $crate::export::TokenStream::from(err.into_compile_error());
+                return $crate::export::TokenStream::from(err.to_compile_error());
             }
         };
     };