diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2016-08-06 15:01:20 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-06 15:01:20 +0300 |
| commit | bb1ff9d8504b96bb62bba0b17998a1ed4b6ec761 (patch) | |
| tree | 4c00c7885eb927c296b3e598101535aa5168f93f | |
| parent | d9cc84b6f99a29b97f8d3c96c17de33e64702186 (diff) | |
| parent | 5eebb92c2fd62c2f20aa6c67d7f58f37ec521586 (diff) | |
Rollup merge of #35288 - Roybie:35271-E0166-update-error-format, r=GuillaumeGomez
Update error message for E0166 Fixes #35271 as part of #35233. r? @jonathandturner
| -rw-r--r-- | src/librustc_typeck/check/mod.rs | 6 | ||||
| -rw-r--r-- | src/test/compile-fail/E0166.rs | 4 | ||||
| -rw-r--r-- | src/test/compile-fail/bad-bang-ann-3.rs | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index 97788c9fb33..536ecab190b 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -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()); diff --git a/src/test/compile-fail/E0166.rs b/src/test/compile-fail/E0166.rs index 9fa41249aa5..f8585d71b40 100644 --- a/src/test/compile-fail/E0166.rs +++ b/src/test/compile-fail/E0166.rs @@ -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() { } diff --git a/src/test/compile-fail/bad-bang-ann-3.rs b/src/test/compile-fail/bad-bang-ann-3.rs index de315a41361..1a5496f0551 100644 --- a/src/test/compile-fail/bad-bang-ann-3.rs +++ b/src/test/compile-fail/bad-bang-ann-3.rs @@ -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); } |
