Rollup merge of #97031 - eholk:drop-tracking-type-error, r=compiler-errors
Drop tracking: handle invalid assignments better Previously this test case was crashing with an index out of bounds error deep in the call to `needs_drop`. We avoid this by detecting clearly invalid assignees in the `mutate` callback and ignoring these.
This commit is contained in:
commit
e239fd2b88
3 changed files with 34 additions and 0 deletions
|
|
@ -0,0 +1,14 @@
|
|||
// edition:2018
|
||||
// compile-flags: -Zdrop-tracking
|
||||
// Regression test for issue #73741
|
||||
// Ensures that we don't emit spurious errors when
|
||||
// a type error ocurrs in an `async fn`
|
||||
|
||||
async fn weird() {
|
||||
1 = 2; //~ ERROR invalid left-hand side
|
||||
|
||||
let mut loop_count = 0;
|
||||
async {}.await
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
error[E0070]: invalid left-hand side of assignment
|
||||
--> $DIR/issue-73741-type-err-drop-tracking.rs:8:7
|
||||
|
|
||||
LL | 1 = 2;
|
||||
| - ^
|
||||
| |
|
||||
| cannot assign to this expression
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0070`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue