Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs8
-rw-r--r--crates/proc-macro-srv/src/server_impl/token_id.rs8
-rw-r--r--crates/proc-macro-srv/src/server_impl/token_stream.rs2
3 files changed, 15 insertions, 3 deletions
diff --git a/crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs b/crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs
index 552d99f51b..bfc3ea5d03 100644
--- a/crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs
+++ b/crates/proc-macro-srv/src/server_impl/rust_analyzer_span.rs
@@ -142,7 +142,13 @@ impl server::TokenStream for RaSpanServer {
stream.is_empty()
}
fn from_str(&mut self, src: &str) -> Self::TokenStream {
- Self::TokenStream::from_str(src, self.call_site).expect("cannot parse string")
+ Self::TokenStream::from_str(src, self.call_site).unwrap_or_else(|e| {
+ Self::TokenStream::from_str(
+ &format!("compile_error!(\"failed to parse str to token stream: {e}\")"),
+ self.call_site,
+ )
+ .unwrap()
+ })
}
fn to_string(&mut self, stream: &Self::TokenStream) -> String {
stream.to_string()
diff --git a/crates/proc-macro-srv/src/server_impl/token_id.rs b/crates/proc-macro-srv/src/server_impl/token_id.rs
index 7720c6d83c..e478b1c853 100644
--- a/crates/proc-macro-srv/src/server_impl/token_id.rs
+++ b/crates/proc-macro-srv/src/server_impl/token_id.rs
@@ -131,7 +131,13 @@ impl server::TokenStream for TokenIdServer {
stream.is_empty()
}
fn from_str(&mut self, src: &str) -> Self::TokenStream {
- Self::TokenStream::from_str(src, self.call_site).expect("cannot parse string")
+ Self::TokenStream::from_str(src, self.call_site).unwrap_or_else(|e| {
+ Self::TokenStream::from_str(
+ &format!("compile_error!(\"failed to parse str to token stream: {e}\")"),
+ self.call_site,
+ )
+ .unwrap()
+ })
}
fn to_string(&mut self, stream: &Self::TokenStream) -> String {
stream.to_string()
diff --git a/crates/proc-macro-srv/src/server_impl/token_stream.rs b/crates/proc-macro-srv/src/server_impl/token_stream.rs
index 4d8d496418..dbcb5a3143 100644
--- a/crates/proc-macro-srv/src/server_impl/token_stream.rs
+++ b/crates/proc-macro-srv/src/server_impl/token_stream.rs
@@ -131,7 +131,7 @@ pub(super) mod token_stream {
call_site,
src,
)
- .ok_or("lexing error")?;
+ .ok_or_else(|| format!("lexing error: {src}"))?;
Ok(TokenStream::with_subtree(subtree))
}