about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-09-28 05:37:52 +0200
committerGitHub <noreply@github.com>2019-09-28 05:37:52 +0200
commitfc53088a5cc72e7276dfc4acfef3c405c36c783a (patch)
treee0692ab14ba17e4fae92698dd921be3b87e74d34
parent2d4c101af51395c9453ca3c5b5f9d79dc290cc3c (diff)
parent9ef6edb04ad059242551f134077dab88a36bdd61 (diff)
downloadrust-fc53088a5cc72e7276dfc4acfef3c405c36c783a.tar.gz
rust-fc53088a5cc72e7276dfc4acfef3c405c36c783a.zip
Rollup merge of #64830 - Centril:thou-shallt-not-abort, r=estebank
Thou shallt not `.abort_if_errors()`

r? @estebank
-rw-r--r--src/librustc/hir/lowering/expr.rs3
-rw-r--r--src/test/ui/generator/no-parameters-on-generators.rs1
-rw-r--r--src/test/ui/generator/no-parameters-on-generators.stderr15
3 files changed, 16 insertions, 3 deletions
diff --git a/src/librustc/hir/lowering/expr.rs b/src/librustc/hir/lowering/expr.rs
index caecc162c78..50fceacaa44 100644
--- a/src/librustc/hir/lowering/expr.rs
+++ b/src/librustc/hir/lowering/expr.rs
@@ -705,7 +705,6 @@ impl LoweringContext<'_> {
                         E0628,
                         "generators cannot have explicit parameters"
                     );
-                    self.sess.abort_if_errors();
                 }
                 Some(match movability {
                     Movability::Movable => hir::GeneratorMovability::Movable,
@@ -998,7 +997,7 @@ impl LoweringContext<'_> {
                     E0727,
                     "`async` generators are not yet supported",
                 );
-                self.sess.abort_if_errors();
+                return hir::ExprKind::Err;
             },
             None => self.generator_kind = Some(hir::GeneratorKind::Gen),
         }
diff --git a/src/test/ui/generator/no-parameters-on-generators.rs b/src/test/ui/generator/no-parameters-on-generators.rs
index a2632a4bd7d..6b5a5579339 100644
--- a/src/test/ui/generator/no-parameters-on-generators.rs
+++ b/src/test/ui/generator/no-parameters-on-generators.rs
@@ -2,6 +2,7 @@
 
 fn main() {
     let gen = |start| { //~ ERROR generators cannot have explicit parameters
+        //~^ ERROR type inside generator must be known in this context
         yield;
     };
 }
diff --git a/src/test/ui/generator/no-parameters-on-generators.stderr b/src/test/ui/generator/no-parameters-on-generators.stderr
index 41862f2b070..5e8e043a391 100644
--- a/src/test/ui/generator/no-parameters-on-generators.stderr
+++ b/src/test/ui/generator/no-parameters-on-generators.stderr
@@ -4,5 +4,18 @@ error[E0628]: generators cannot have explicit parameters
 LL |     let gen = |start| {
    |               ^^^^^^^
 
-error: aborting due to previous error
+error[E0698]: type inside generator must be known in this context
+  --> $DIR/no-parameters-on-generators.rs:4:16
+   |
+LL |     let gen = |start| {
+   |                ^^^^^ cannot infer type
+   |
+note: the type is part of the generator because of this `yield`
+  --> $DIR/no-parameters-on-generators.rs:6:9
+   |
+LL |         yield;
+   |         ^^^^^
+
+error: aborting due to 2 previous errors
 
+For more information about this error, try `rustc --explain E0698`.