Make Spanned available without procmacro2_semver_exempt
diff --git a/src/lib.rs b/src/lib.rs
index c448a98..7d7c0f8 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -98,7 +98,7 @@
 #[cfg(feature = "parsing")]
 mod tt;
 
-#[cfg(all(procmacro2_semver_exempt, feature = "parsing", feature = "printing"))]
+#[cfg(all(feature = "parsing", feature = "printing"))]
 pub mod spanned;
 
 mod gen {
diff --git a/src/spanned.rs b/src/spanned.rs
index 87d833c..a2fe6d3 100644
--- a/src/spanned.rs
+++ b/src/spanned.rs
@@ -11,6 +11,7 @@
 where
     T: ToTokens,
 {
+    #[cfg(procmacro2_semver_exempt)]
     fn span(&self) -> Span {
         let mut tokens = Tokens::new();
         self.to_tokens(&mut tokens);
@@ -29,4 +30,19 @@
         }
         span
     }
+
+    #[cfg(not(procmacro2_semver_exempt))]
+    fn span(&self) -> Span {
+        let mut tokens = Tokens::new();
+        self.to_tokens(&mut tokens);
+        let token_stream = TokenStream::from(tokens);
+        let mut iter = token_stream.into_iter();
+
+        // We can't join spans without procmacro2_semver_exempt so just grab the
+        // first one.
+        match iter.next() {
+            Some(tt) => tt.span,
+            None => Span::call_site(),
+        }
+    }
 }