about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-08-06 17:24:39 -0700
committerEsteban Küber <esteban@kuber.com.ar>2019-08-09 07:18:05 -0700
commit799b13ada59d0663e98a02744d21d2c3b08501ce (patch)
tree188faf77fb18bd59b4ca1eb0414e3a66e941d99b
parentc076392143e483f60429d148ac58522e423eea9e (diff)
downloadrust-799b13ada59d0663e98a02744d21d2c3b08501ce.tar.gz
rust-799b13ada59d0663e98a02744d21d2c3b08501ce.zip
Do not suggest using ! with break
-rw-r--r--src/librustc_typeck/check/expr.rs1
-rw-r--r--src/test/ui/loops/loop-break-value.stderr5
2 files changed, 2 insertions, 4 deletions
diff --git a/src/librustc_typeck/check/expr.rs b/src/librustc_typeck/check/expr.rs
index c567741be39..5c859b9fd32 100644
--- a/src/librustc_typeck/check/expr.rs
+++ b/src/librustc_typeck/check/expr.rs
@@ -559,6 +559,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
                             ty::Char => "'a'",
                             ty::Int(_) | ty::Uint(_) => "42",
                             ty::Float(_) => "3.14159",
+                            ty::Error | ty::Never => return,
                             _ => "value",
                         });
                         err.span_suggestion(expr.span, msg, sugg, Applicability::HasPlaceholders);
diff --git a/src/test/ui/loops/loop-break-value.stderr b/src/test/ui/loops/loop-break-value.stderr
index 7310790b880..fef5b587306 100644
--- a/src/test/ui/loops/loop-break-value.stderr
+++ b/src/test/ui/loops/loop-break-value.stderr
@@ -90,10 +90,7 @@ error[E0308]: mismatched types
   --> $DIR/loop-break-value.rs:4:31
    |
 LL |     let val: ! = loop { break break; };
-   |                               ^^^^^
-   |                               |
-   |                               expected !, found ()
-   |                               help: give it a value of the expected type: `break value`
+   |                               ^^^^^ expected !, found ()
    |
    = note: expected type `!`
               found type `()`