Skip to content

Future compat warning with .awaiting a BoxFuture #62312

@Centril

Description

@Centril

The code is the same as in #62284:

#![feature(async_await)] use std::future::Future; use std::pin::Pin; type BoxFuture = Pin<Box<dyn Future<Output = ()>>>; async fn foo() -> BoxFuture { Box::pin(bar()) as _ } async fn bar() { let _ = foo().await; }

This results in:

warning[E0381]: use of possibly uninitialized variable: `_` --> src/lib.rs:17:13 | 17 | let _ = foo().await; | ^^^^^^^^^^^ use of possibly uninitialized value | = warning: this error has been downgraded to a warning for backwards compatibility with previous releases = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future = note: for more information, try `rustc --explain E0729` 

Metadata

Metadata

Assignees

Labels

A-MIRArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlA-async-awaitArea: Async & AwaitAsyncAwait-PolishAsync-await issues that are part of the "polish" areaC-bugCategory: This is a bug.I-unsoundIssue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/SoundnessP-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions