mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 02:57:37 +00:00
Rollup merge of #35530 - srdja:master, r=jonathandturner
Update E0008 and E0007 to new format Part of #35233 A fix for #35496 r? @jonathandturner
This commit is contained in:
commit
c7513d79a1
@ -1115,9 +1115,15 @@ fn check_legality_of_move_bindings(cx: &MatchCheckCtxt,
|
||||
|
||||
// x @ Foo(..) is legal, but x @ Foo(y) isn't.
|
||||
if sub.map_or(false, |p| pat_contains_bindings(&p)) {
|
||||
span_err!(cx.tcx.sess, p.span, E0007, "cannot bind by-move with sub-bindings");
|
||||
struct_span_err!(cx.tcx.sess, p.span, E0007,
|
||||
"cannot bind by-move with sub-bindings")
|
||||
.span_label(p.span, &format!("binds an already bound by-move value by moving it"))
|
||||
.emit();
|
||||
} else if has_guard {
|
||||
span_err!(cx.tcx.sess, p.span, E0008, "cannot bind by-move into a pattern guard");
|
||||
struct_span_err!(cx.tcx.sess, p.span, E0008,
|
||||
"cannot bind by-move into a pattern guard")
|
||||
.span_label(p.span, &format!("moves value into pattern guard"))
|
||||
.emit();
|
||||
} else if by_ref_span.is_some() {
|
||||
let mut err = struct_span_err!(cx.tcx.sess, p.span, E0009,
|
||||
"cannot bind by-move and by-ref in the same pattern");
|
||||
|
@ -11,8 +11,10 @@
|
||||
fn main() {
|
||||
let x = Some("s".to_string());
|
||||
match x {
|
||||
op_string @ Some(s) => {}, //~ ERROR E0007
|
||||
//~| ERROR E0303
|
||||
op_string @ Some(s) => {},
|
||||
//~^ ERROR E0007
|
||||
//~| NOTE binds an already bound by-move value by moving it
|
||||
//~| ERROR E0303
|
||||
None => {},
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,9 @@
|
||||
|
||||
fn main() {
|
||||
match Some("hi".to_string()) {
|
||||
Some(s) if s.len() == 0 => {}, //~ ERROR E0008
|
||||
Some(s) if s.len() == 0 => {},
|
||||
//~^ ERROR E0008
|
||||
//~| NOTE moves value into pattern guard
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user