Use Group::span_open and span_close in error spans
Macro 1:
input.parse::<Ident>()?;
Before:
error: expected identifier
--> src/main.rs:3:4
|
3 | m!([a]);
| ^^^
After:
error: expected identifier
--> src/main.rs:3:4
|
3 | m!([a]);
| ^
Macro 2:
let content;
bracketed!(content in input);
content.parse::<Ident>()?;
content.parse::<Ident>()?;
Before:
error: unexpected end of input, expected identifier
--> src/main.rs:3:4
|
3 | m!([a]);
| ^^^
After:
error: unexpected end of input, expected identifier
--> src/main.rs:3:6
|
3 | m!([a]);
| ^
diff --git a/src/error.rs b/src/error.rs
index 6a1a200..e07051d 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -10,6 +10,8 @@
#[cfg(feature = "parsing")]
use buffer::Cursor;
+#[cfg(all(procmacro2_semver_exempt, feature = "parsing"))]
+use private;
use thread::ThreadBound;
/// The result of a Syn parser.
@@ -171,7 +173,11 @@
if cursor.eof() {
Error::new(scope, format!("unexpected end of input, {}", message))
} else {
- Error::new(cursor.span(), message)
+ #[cfg(procmacro2_semver_exempt)]
+ let span = private::open_span_of_group(cursor);
+ #[cfg(not(procmacro2_semver_exempt))]
+ let span = cursor.span();
+ Error::new(span, message)
}
}