diff options
| author | Jonathan Turner <jonathandturner@users.noreply.github.com> | 2016-08-11 06:33:59 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-11 06:33:59 -0700 |
| commit | c7513d79a1046df028a458e011d27c86de6fc8e2 (patch) | |
| tree | 7e2b8586697b5796f4fe4e2c55607f0c4b4c7d73 | |
| parent | 02834435226768257f7f71b416c6a347fc6e1613 (diff) | |
| parent | aa40ec7f1155dc63bac19d218a56aec8109ac8e2 (diff) | |
| download | rust-c7513d79a1046df028a458e011d27c86de6fc8e2.tar.gz rust-c7513d79a1046df028a458e011d27c86de6fc8e2.zip | |
Rollup merge of #35530 - srdja:master, r=jonathandturner
Update E0008 and E0007 to new format Part of #35233 A fix for #35496 r? @jonathandturner
| -rw-r--r-- | src/librustc_const_eval/check_match.rs | 10 | ||||
| -rw-r--r-- | src/test/compile-fail/E0007.rs | 6 | ||||
| -rw-r--r-- | src/test/compile-fail/E0008.rs | 4 |
3 files changed, 15 insertions, 5 deletions
diff --git a/src/librustc_const_eval/check_match.rs b/src/librustc_const_eval/check_match.rs index 366b58e06c4..b34949d7a4f 100644 --- a/src/librustc_const_eval/check_match.rs +++ b/src/librustc_const_eval/check_match.rs @@ -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"); diff --git a/src/test/compile-fail/E0007.rs b/src/test/compile-fail/E0007.rs index bfc0f1afe3a..4be115b8afd 100644 --- a/src/test/compile-fail/E0007.rs +++ b/src/test/compile-fail/E0007.rs @@ -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 => {}, } } diff --git a/src/test/compile-fail/E0008.rs b/src/test/compile-fail/E0008.rs index 97dd0f368bd..20cc1cbd223 100644 --- a/src/test/compile-fail/E0008.rs +++ b/src/test/compile-fail/E0008.rs @@ -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 _ => {}, } } |
