Skip to content

Commit

Permalink
Rollup merge of rust-lang#36125 - gavinb:error_msgs_p1, r=jonathandtu…
Browse files Browse the repository at this point in the history
…rner

Update Error format for E0164, E0165, E0184

Part of rust-lang#35233

r? @jonathandturner
  • Loading branch information
GuillaumeGomez committed Aug 30, 2016
2 parents 21e2155 + 2967dcc commit 2217fc5
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 4 deletions.
5 changes: 4 additions & 1 deletion src/librustc_const_eval/check_match.rs
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,10 @@ fn check_arms(cx: &MatchCheckCtxt,
let &(ref first_arm_pats, _) = &arms[0];
let first_pat = &first_arm_pats[0];
let span = first_pat.span;
span_err!(cx.tcx.sess, span, E0165, "irrefutable while-let pattern");
struct_span_err!(cx.tcx.sess, span, E0165,
"irrefutable while-let pattern")
.span_label(span, &format!("irrefutable pattern"))
.emit();
},

hir::MatchSource::ForLoopDesugar => {
Expand Down
3 changes: 2 additions & 1 deletion src/librustc_typeck/check/_match.rs
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,8 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
tcx.sess.add_lint(lint::builtin::MATCH_OF_UNIT_VARIANT_VIA_PAREN_DOTDOT,
pat.id, pat.span, msg);
} else {
span_err!(tcx.sess, pat.span, E0164, "{}", msg);
struct_span_err!(tcx.sess, pat.span, E0164, "{}", msg)
.span_label(pat.span, &format!("not a tuple variant or struct")).emit();
on_error();
}
};
Expand Down
6 changes: 4 additions & 2 deletions src/librustc_typeck/coherence/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -348,9 +348,11 @@ impl<'a, 'gcx, 'tcx> CoherenceChecker<'a, 'gcx, 'tcx> {
.emit();
}
Err(CopyImplementationError::HasDestructor) => {
span_err!(tcx.sess, span, E0184,
struct_span_err!(tcx.sess, span, E0184,
"the trait `Copy` may not be implemented for this type; \
the type has a destructor");
the type has a destructor")
.span_label(span, &format!("Copy not allowed on types with destructors"))
.emit();
}
}
});
Expand Down
1 change: 1 addition & 0 deletions src/test/compile-fail/E0164.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ enum Foo { B { i: u32 } }
fn bar(foo: Foo) -> u32 {
match foo {
Foo::B(i) => i, //~ ERROR E0164
//~| NOTE not a tuple variant or struct
}
}

Expand Down
1 change: 1 addition & 0 deletions src/test/compile-fail/E0165.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ struct Irrefutable(i32);
fn main() {
let irr = Irrefutable(0);
while let Irrefutable(x) = irr { //~ ERROR E0165
//~| irrefutable pattern
// ...
}
}
2 changes: 2 additions & 0 deletions src/test/compile-fail/E0184.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
// except according to those terms.

#[derive(Copy)] //~ ERROR E0184
//~| NOTE Copy not allowed on types with destructors
//~| NOTE in this expansion of #[derive(Copy)]
struct Foo;

impl Drop for Foo {
Expand Down

0 comments on commit 2217fc5

Please sign in to comment.