Rollup merge of #36757 - KiChjang:E0025-format, r=jonathandturner
Update E0025 to new error format Part of #35233. Fixes #35198. r? @jonathandturner
This commit is contained in:
commit
224e882878
|
@ -675,14 +675,14 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
|
|||
for &Spanned { node: ref field, span } in fields {
|
||||
let field_ty = match used_fields.entry(field.name) {
|
||||
Occupied(occupied) => {
|
||||
let mut err = struct_span_err!(tcx.sess, span, E0025,
|
||||
struct_span_err!(tcx.sess, span, E0025,
|
||||
"field `{}` bound multiple times \
|
||||
in the pattern",
|
||||
field.name);
|
||||
span_note!(&mut err, *occupied.get(),
|
||||
"field `{}` previously bound here",
|
||||
field.name);
|
||||
err.emit();
|
||||
field.name)
|
||||
.span_label(span,
|
||||
&format!("multiple uses of `{}` in pattern", field.name))
|
||||
.span_label(*occupied.get(), &format!("first use of `{}`", field.name))
|
||||
.emit();
|
||||
tcx.types.err
|
||||
}
|
||||
Vacant(vacant) => {
|
||||
|
|
|
@ -15,5 +15,8 @@ struct Foo {
|
|||
|
||||
fn main() {
|
||||
let x = Foo { a:1, b:2 };
|
||||
let Foo { a: x, a: y, b: 0 } = x; //~ ERROR E0025
|
||||
let Foo { a: x, a: y, b: 0 } = x;
|
||||
//~^ ERROR field `a` bound multiple times in the pattern
|
||||
//~| NOTE multiple uses of `a` in pattern
|
||||
//~| NOTE first use of `a`
|
||||
}
|
||||
|
|
|
@ -14,19 +14,28 @@ struct Foo {
|
|||
|
||||
fn main() {
|
||||
let Foo {
|
||||
a: _, //~ NOTE field `a` previously bound here
|
||||
a: _ //~ ERROR field `a` bound multiple times in the pattern
|
||||
a: _, //~ NOTE first use of `a`
|
||||
a: _
|
||||
//~^ ERROR field `a` bound multiple times in the pattern
|
||||
//~| NOTE multiple uses of `a` in pattern
|
||||
} = Foo { a: 29 };
|
||||
|
||||
let Foo {
|
||||
a, //~ NOTE field `a` previously bound here
|
||||
a: _ //~ ERROR field `a` bound multiple times in the pattern
|
||||
a, //~ NOTE first use of `a`
|
||||
a: _
|
||||
//~^ ERROR field `a` bound multiple times in the pattern
|
||||
//~| NOTE multiple uses of `a` in pattern
|
||||
} = Foo { a: 29 };
|
||||
|
||||
let Foo {
|
||||
a, //~ NOTE field `a` previously bound here
|
||||
//~^ NOTE field `a` previously bound here
|
||||
a: _, //~ ERROR field `a` bound multiple times in the pattern
|
||||
a: x //~ ERROR field `a` bound multiple times in the pattern
|
||||
a,
|
||||
//~^ NOTE first use of `a`
|
||||
//~| NOTE first use of `a`
|
||||
a: _,
|
||||
//~^ ERROR field `a` bound multiple times in the pattern
|
||||
//~| NOTE multiple uses of `a` in pattern
|
||||
a: x
|
||||
//~^ ERROR field `a` bound multiple times in the pattern
|
||||
//~| NOTE multiple uses of `a` in pattern
|
||||
} = Foo { a: 29 };
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue