diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index e2f09affd4fea..ac0bde7856ab2 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -3956,7 +3956,7 @@ impl<'a> Parser<'a> {
);
err.emit();
}
- self.bump(); // `..` || `...`:w
+ self.bump(); // `..` || `...`
if self.token == token::CloseDelim(token::Brace) {
etc_span = Some(etc_sp);
@@ -3976,7 +3976,7 @@ impl<'a> Parser<'a> {
ate_comma = true;
}
- etc_span = Some(etc_sp);
+ etc_span = Some(etc_sp.until(self.span));
if self.token == token::CloseDelim(token::Brace) {
// If the struct looks otherwise well formed, recover and continue.
if let Some(sp) = comma_sp {
diff --git a/src/test/ui/issues/issue-49257.stderr b/src/test/ui/issues/issue-49257.stderr
index 40179832b49b2..644df1f56b426 100644
--- a/src/test/ui/issues/issue-49257.stderr
+++ b/src/test/ui/issues/issue-49257.stderr
@@ -8,8 +8,8 @@ LL | let Point { .., y, } = p; //~ ERROR expected `}`, found `,`
| `..` must be at the end and cannot have a trailing comma
help: move the `..` to the end of the field list
|
-LL | let Point { y, .. } = p; //~ ERROR expected `}`, found `,`
- | -- ^^^^
+LL | let Point { y, .. } = p; //~ ERROR expected `}`, found `,`
+ | -- ^^^^
error: expected `}`, found `,`
--> $DIR/issue-49257.rs:21:19
@@ -21,8 +21,8 @@ LL | let Point { .., y } = p; //~ ERROR expected `}`, found `,`
| `..` must be at the end and cannot have a trailing comma
help: move the `..` to the end of the field list
|
-LL | let Point { y , .. } = p; //~ ERROR expected `}`, found `,`
- | -- ^^^^^^
+LL | let Point { y , .. } = p; //~ ERROR expected `}`, found `,`
+ | -- ^^^^^^
error: expected `}`, found `,`
--> $DIR/issue-49257.rs:22:19