mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-11 06:24:24 +00:00
forgot a return in drop tracking handle_uninhabited_return
This commit is contained in:
parent
1d12c3cea3
commit
2f5334dff2
@ -233,6 +233,7 @@ impl<'a, 'tcx> DropRangeVisitor<'a, 'tcx> {
|
|||||||
self.tcx()
|
self.tcx()
|
||||||
.sess
|
.sess
|
||||||
.delay_span_bug(expr.span, format!("could not resolve infer vars in `{ty}`"));
|
.delay_span_bug(expr.span, format!("could not resolve infer vars in `{ty}`"));
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
let ty = self.tcx().erase_regions(ty);
|
let ty = self.tcx().erase_regions(ty);
|
||||||
let m = self.tcx().parent_module(expr.hir_id).to_def_id();
|
let m = self.tcx().parent_module(expr.hir_id).to_def_id();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
error[E0277]: `[(); _]` is not a future
|
error[E0277]: `[(); _]` is not a future
|
||||||
--> $DIR/unresolved-ct-var.rs:6:44
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ---------------------------^^^^^^
|
| ---------------------------^^^^^^
|
||||||
@ -13,61 +13,61 @@ LL | let s = std::array::from_fn(|_| ()).await;
|
|||||||
= note: required for `[(); _]` to implement `IntoFuture`
|
= note: required for `[(); _]` to implement `IntoFuture`
|
||||||
|
|
||||||
error[E0698]: type inside `async` block must be known in this context
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
--> $DIR/unresolved-ct-var.rs:6:17
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
|
||||||
note: the type is part of the `async` block because of this `await`
|
note: the type is part of the `async` block because of this `await`
|
||||||
--> $DIR/unresolved-ct-var.rs:6:44
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
||||||
error[E0698]: type inside `async` block must be known in this context
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
--> $DIR/unresolved-ct-var.rs:6:17
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
|
||||||
note: the type is part of the `async` block because of this `await`
|
note: the type is part of the `async` block because of this `await`
|
||||||
--> $DIR/unresolved-ct-var.rs:6:44
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
||||||
error[E0698]: type inside `async` block must be known in this context
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
--> $DIR/unresolved-ct-var.rs:6:17
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
|
||||||
note: the type is part of the `async` block because of this `await`
|
note: the type is part of the `async` block because of this `await`
|
||||||
--> $DIR/unresolved-ct-var.rs:6:44
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
||||||
error[E0698]: type inside `async` block must be known in this context
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
--> $DIR/unresolved-ct-var.rs:6:17
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
|
||||||
note: the type is part of the `async` block because of this `await`
|
note: the type is part of the `async` block because of this `await`
|
||||||
--> $DIR/unresolved-ct-var.rs:6:44
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
||||||
error[E0698]: type inside `async` block must be known in this context
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
--> $DIR/unresolved-ct-var.rs:6:17
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
|
||||||
note: the type is part of the `async` block because of this `await`
|
note: the type is part of the `async` block because of this `await`
|
||||||
--> $DIR/unresolved-ct-var.rs:6:44
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
|
||||||
LL | let s = std::array::from_fn(|_| ()).await;
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
| ^^^^^^
|
| ^^^^^^
|
@ -1,5 +1,7 @@
|
|||||||
// incremental
|
// incremental
|
||||||
// edition:2021
|
// edition:2021
|
||||||
|
// revisions: drop_tracking stock
|
||||||
|
//[drop_tracking] compile-flags: -Zdrop-tracking
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let _ = async {
|
let _ = async {
|
||||||
|
78
src/test/ui/generator/unresolved-ct-var.stock.stderr
Normal file
78
src/test/ui/generator/unresolved-ct-var.stock.stderr
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
error[E0277]: `[(); _]` is not a future
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ---------------------------^^^^^^
|
||||||
|
| | |
|
||||||
|
| | `[(); _]` is not a future
|
||||||
|
| | help: remove the `.await`
|
||||||
|
| this call returns `[(); _]`
|
||||||
|
|
|
||||||
|
= help: the trait `Future` is not implemented for `[(); _]`
|
||||||
|
= note: [(); _] must be a future or must implement `IntoFuture` to be awaited
|
||||||
|
= note: required for `[(); _]` to implement `IntoFuture`
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var.rs:8:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error: aborting due to 6 previous errors
|
||||||
|
|
||||||
|
Some errors have detailed explanations: E0277, E0698.
|
||||||
|
For more information about an error, try `rustc --explain E0277`.
|
Loading…
Reference in New Issue
Block a user