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/group.rs b/src/group.rs
index 7a6556c..272e435 100644
--- a/src/group.rs
+++ b/src/group.rs
@@ -74,9 +74,13 @@
 fn parse_delimited(input: ParseStream, delimiter: Delimiter) -> Result<(Span, ParseBuffer)> {
     input.step(|cursor| {
         if let Some((content, span, rest)) = cursor.group(delimiter) {
-            let unexpected = private::get_unexpected(input);
+            #[cfg(procmacro2_semver_exempt)]
+            let scope = private::close_span_of_group(*cursor);
+            #[cfg(not(procmacro2_semver_exempt))]
+            let scope = span;
             let nested = private::advance_step_cursor(cursor, content);
-            let content = private::new_parse_buffer(span, nested, unexpected);
+            let unexpected = private::get_unexpected(input);
+            let content = private::new_parse_buffer(scope, nested, unexpected);
             Ok(((span, content), rest))
         } else {
             let message = match delimiter {