Rollup merge of - Roybie:35271-E0166-update-error-format, r=GuillaumeGomez

Update error message for E0166

Fixes  as part of .

r? @jonathandturner
This commit is contained in:
Eduard-Mihai Burtescu 2016-08-06 15:01:20 +03:00 committed by GitHub
commit bb1ff9d850
3 changed files with 10 additions and 4 deletions
src
librustc_typeck/check
test/compile-fail

@ -3415,8 +3415,10 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
if let Some(ref e) = *expr_opt {
self.check_expr(&e);
}
span_err!(tcx.sess, expr.span, E0166,
"`return` in a function declared as diverging");
struct_span_err!(tcx.sess, expr.span, E0166,
"`return` in a function declared as diverging")
.span_label(expr.span, &format!("diverging function cannot return"))
.emit();
}
}
self.write_ty(id, self.next_diverging_ty_var());

@ -8,7 +8,9 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn foo() -> ! { return; } //~ ERROR E0166
fn foo() -> ! { return; }
//~^ ERROR E0166
//~| NOTE diverging function cannot return
fn main() {
}

@ -11,7 +11,9 @@
// Tests that a function with a ! annotation always actually fails
fn bad_bang(i: usize) -> ! {
return 7; //~ ERROR `return` in a function declared as diverging [E0166]
return 7;
//~^ ERROR `return` in a function declared as diverging [E0166]
//~| NOTE diverging function cannot return
}
fn main() { bad_bang(5); }