Skip to content

Commit

Permalink
Rollup merge of rust-lang#61627 - davidtwco:ice-async-fn-lint, r=alex…
Browse files Browse the repository at this point in the history
…crichton

Add regression test for rust-lang#61452.

Fixes rust-lang#61452.

Turns out this ICE had already been fixed, so this PR only adds a regression test.
  • Loading branch information
Centril committed Jun 7, 2019
2 parents 86f392c + 5604d9a commit 08b6bce
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/test/ui/async-await/issue-61452.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// edition:2018
#![feature(async_await)]

pub async fn f(x: Option<usize>) {
x.take();
//~^ ERROR cannot borrow `x` as mutable, as it is not declared as mutable [E0596]
}

pub async fn g(x: usize) {
x += 1;
//~^ ERROR cannot assign twice to immutable variable `x` [E0384]
}

fn main() {}
23 changes: 23 additions & 0 deletions src/test/ui/async-await/issue-61452.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
--> $DIR/issue-61452.rs:5:5
|
LL | pub async fn f(x: Option<usize>) {
| - help: consider changing this to be mutable: `mut x`
LL | x.take();
| ^ cannot borrow as mutable

error[E0384]: cannot assign twice to immutable variable `x`
--> $DIR/issue-61452.rs:10:5
|
LL | pub async fn g(x: usize) {
| -
| |
| first assignment to `x`
| help: make this binding mutable: `mut x`
LL | x += 1;
| ^^^^^^ cannot assign twice to immutable variable

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0384, E0596.
For more information about an error, try `rustc --explain E0384`.

0 comments on commit 08b6bce

Please sign in to comment.