Skip to content

Don't use AsyncFnOnce::CallOnceFuture bounds for signature deduction - #134017

Merged
bors merged 1 commit into
rust-lang:masterfrom
compiler-errors:call-once-deduction
Dec 10, 2024
Merged

Don't use AsyncFnOnce::CallOnceFuture bounds for signature deduction#134017
bors merged 1 commit into
rust-lang:masterfrom
compiler-errors:call-once-deduction

Conversation

@compiler-errors

@compiler-errorscompiler-errors commented Dec 8, 2024

Copy link
Copy Markdown
Contributor

We shouldn't be using AsyncFnOnce::CallOnceFuture projection bounds to deduce anything about the return type of an async closure, onlyAsyncFnOnce::Output. This was accidental b/c all we were looking at was the def id of the trait, rather than the projection. This PR fixes that.

This doesn't affect stable code, since CallOnceFuture bounds cannot be written on stable.

Fixes#134015

@rustbot

Copy link
Copy Markdown
Collaborator

r? @pnkfelix

rustbot has assigned @pnkfelix.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Dec 8, 2024
@compiler-errors

Copy link
Copy Markdown
ContributorAuthor

I think Felix might be taking a break from Rust stuff, so

r? compiler

@rustbotrustbot assigned jieyouxu and unassigned pnkfelixDec 8, 2024

@jieyouxujieyouxu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to me, thanks

@jieyouxu

Copy link
Copy Markdown
Member

@bors r+ rollup

@bors

bors commented Dec 9, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit 88669ae has been approved by jieyouxu

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 9, 2024
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Dec 9, 2024
…n, r=jieyouxu
Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction
We shouldn't be using `AsyncFnOnce::CallOnceFuture` projection bounds to deduce anything about the return type of an async closure, **only** `AsyncFnOnce::Output`. This was accidental b/c all we were looking at was the def id of the trait, rather than the projection. This PR fixes that.
This doesn't affect stable code, since `CallOnceFuture` bounds cannot be written on stable.
Fixesrust-lang#134015
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 9, 2024
…llaumeGomez
Rollup of 9 pull requests
Successful merges:
- rust-lang#133184 (wasi/fs: Improve stopping condition for <ReadDir as Iterator>::next)
- rust-lang#133955 (Pass the arch rather than full target name to windows_registry::find_tool)
- rust-lang#133967 ([AIX] Pass -bnoipath when adding rust upstream dynamic crates)
- rust-lang#133970 ([AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX)
- rust-lang#133980 ([AIX] Remove option "-n" from AIX "ln" command)
- rust-lang#133996 (Move most tests for `-l` and `#[link(..)]` into `tests/ui/link-native-libs`)
- rust-lang#134017 (Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction)
- rust-lang#134023 (handle cygwin environment in `install::sanitize_sh`)
- rust-lang#134053 (rustdoc: rename `issue-\d+.rs` tests to have meaningful names (part 10))
r? `@ghost`
`@rustbot` modify labels: rollup
jieyouxu added a commit to jieyouxu/rust that referenced this pull request Dec 9, 2024
…n, r=jieyouxu
Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction
We shouldn't be using `AsyncFnOnce::CallOnceFuture` projection bounds to deduce anything about the return type of an async closure, **only** `AsyncFnOnce::Output`. This was accidental b/c all we were looking at was the def id of the trait, rather than the projection. This PR fixes that.
This doesn't affect stable code, since `CallOnceFuture` bounds cannot be written on stable.
Fixesrust-lang#134015
@jieyouxujieyouxu mentioned this pull request Dec 9, 2024
jieyouxu added a commit to jieyouxu/rust that referenced this pull request Dec 9, 2024
…n, r=jieyouxu
Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction
We shouldn't be using `AsyncFnOnce::CallOnceFuture` projection bounds to deduce anything about the return type of an async closure, **only** `AsyncFnOnce::Output`. This was accidental b/c all we were looking at was the def id of the trait, rather than the projection. This PR fixes that.
This doesn't affect stable code, since `CallOnceFuture` bounds cannot be written on stable.
Fixesrust-lang#134015
@jieyouxujieyouxu mentioned this pull request Dec 9, 2024
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 9, 2024
Rollup of 8 pull requests
Successful merges:
- rust-lang#133184 (wasi/fs: Improve stopping condition for <ReadDir as Iterator>::next)
- rust-lang#133967 ([AIX] Pass -bnoipath when adding rust upstream dynamic crates)
- rust-lang#133970 ([AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX)
- rust-lang#133980 ([AIX] Remove option "-n" from AIX "ln" command)
- rust-lang#133996 (Move most tests for `-l` and `#[link(..)]` into `tests/ui/link-native-libs`)
- rust-lang#134017 (Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction)
- rust-lang#134023 (handle cygwin environment in `install::sanitize_sh`)
- rust-lang#134053 (rustdoc: rename `issue-\d+.rs` tests to have meaningful names (part 10))
r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 9, 2024
Rollup of 8 pull requests
Successful merges:
- rust-lang#133184 (wasi/fs: Improve stopping condition for <ReadDir as Iterator>::next)
- rust-lang#133967 ([AIX] Pass -bnoipath when adding rust upstream dynamic crates)
- rust-lang#133970 ([AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX)
- rust-lang#133980 ([AIX] Remove option "-n" from AIX "ln" command)
- rust-lang#133996 (Move most tests for `-l` and `#[link(..)]` into `tests/ui/link-native-libs`)
- rust-lang#134017 (Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction)
- rust-lang#134023 (handle cygwin environment in `install::sanitize_sh`)
- rust-lang#134053 (rustdoc: rename `issue-\d+.rs` tests to have meaningful names (part 10))
r? `@ghost`
`@rustbot` modify labels: rollup
fmease added a commit to fmease/rust that referenced this pull request Dec 9, 2024
…n, r=jieyouxu
Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction
We shouldn't be using `AsyncFnOnce::CallOnceFuture` projection bounds to deduce anything about the return type of an async closure, **only** `AsyncFnOnce::Output`. This was accidental b/c all we were looking at was the def id of the trait, rather than the projection. This PR fixes that.
This doesn't affect stable code, since `CallOnceFuture` bounds cannot be written on stable.
Fixesrust-lang#134015
@fmeasefmease mentioned this pull request Dec 9, 2024
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 10, 2024
Rollup of 9 pull requests
Successful merges:
- rust-lang#133967 ([AIX] Pass -bnoipath when adding rust upstream dynamic crates)
- rust-lang#133970 ([AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX)
- rust-lang#133980 ([AIX] Remove option "-n" from AIX "ln" command)
- rust-lang#134008 (Make `Copy` unsafe to implement for ADTs with `unsafe` fields)
- rust-lang#134017 (Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction)
- rust-lang#134023 (handle cygwin environment in `install::sanitize_sh`)
- rust-lang#134041 (Use SourceMap to load debugger visualizer files)
- rust-lang#134065 (Move `write_graphviz_results`)
- rust-lang#134070 (Some asm! diagnostic adjustments and a papercut fix)
r? `@ghost`
`@rustbot` modify labels: rollup
fmease added a commit to fmease/rust that referenced this pull request Dec 10, 2024
…n, r=jieyouxu
Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction
We shouldn't be using `AsyncFnOnce::CallOnceFuture` projection bounds to deduce anything about the return type of an async closure, **only** `AsyncFnOnce::Output`. This was accidental b/c all we were looking at was the def id of the trait, rather than the projection. This PR fixes that.
This doesn't affect stable code, since `CallOnceFuture` bounds cannot be written on stable.
Fixesrust-lang#134015
This was referenced Dec 10, 2024
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 10, 2024
Rollup of 11 pull requests
Successful merges:
- rust-lang#133478 (jsondocck: Parse, don't validate commands.)
- rust-lang#133967 ([AIX] Pass -bnoipath when adding rust upstream dynamic crates)
- rust-lang#133970 ([AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX)
- rust-lang#133980 ([AIX] Remove option "-n" from AIX "ln" command)
- rust-lang#134008 (Make `Copy` unsafe to implement for ADTs with `unsafe` fields)
- rust-lang#134017 (Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction)
- rust-lang#134023 (handle cygwin environment in `install::sanitize_sh`)
- rust-lang#134041 (Use SourceMap to load debugger visualizer files)
- rust-lang#134065 (Move `write_graphviz_results`)
- rust-lang#134106 (Add compiler-maintainers who requested to be on review rotation)
- rust-lang#134123 (bootstrap: Forward cargo JSON output to stdout, not stderr)
Failed merges:
- rust-lang#134120 (Remove Felix from ping groups and review rotation)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit 193a95d into rust-lang:masterDec 10, 2024
@rustbotrustbot added this to the 1.85.0 milestone Dec 10, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Dec 10, 2024
Rollup merge of rust-lang#134017 - compiler-errors:call-once-deduction, r=jieyouxu
Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction
We shouldn't be using `AsyncFnOnce::CallOnceFuture` projection bounds to deduce anything about the return type of an async closure, **only** `AsyncFnOnce::Output`. This was accidental b/c all we were looking at was the def id of the trait, rather than the projection. This PR fixes that.
This doesn't affect stable code, since `CallOnceFuture` bounds cannot be written on stable.
Fixesrust-lang#134015
flip1995 pushed a commit to flip1995/rust that referenced this pull request Dec 15, 2024
Rollup of 11 pull requests
Successful merges:
- rust-lang#133478 (jsondocck: Parse, don't validate commands.)
- rust-lang#133967 ([AIX] Pass -bnoipath when adding rust upstream dynamic crates)
- rust-lang#133970 ([AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX)
- rust-lang#133980 ([AIX] Remove option "-n" from AIX "ln" command)
- rust-lang#134008 (Make `Copy` unsafe to implement for ADTs with `unsafe` fields)
- rust-lang#134017 (Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction)
- rust-lang#134023 (handle cygwin environment in `install::sanitize_sh`)
- rust-lang#134041 (Use SourceMap to load debugger visualizer files)
- rust-lang#134065 (Move `write_graphviz_results`)
- rust-lang#134106 (Add compiler-maintainers who requested to be on review rotation)
- rust-lang#134123 (bootstrap: Forward cargo JSON output to stdout, not stderr)
Failed merges:
- rust-lang#134120 (Remove Felix from ping groups and review rotation)
r? `@ghost`
`@rustbot` modify labels: rollup
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bounds on <F as AsyncFnOnce>::CallOnceFuture make the compiler assume CallOnceFuture = () (?)

5 participants

@compiler-errors@rustbot@jieyouxu@bors@pnkfelix