Skip to content

Conversation

compiler-errors
Copy link
Member

Conceptually, we should probably not fire OPAQUE_HIDDEN_INFERRED_BOUND for methods like:

trait Foo { async fn bar() -> Self; }

Even though we technically cannot prove that Self: Sized, which is one of the item bounds of the Output type in the -> impl Future<Output = Sized> from the async desugaring.

This is somewhat justifiable along the same lines as how we allow regular methods to return -> Self even though Self isn't sized.

Fixes #113538

(side-note: some days i wonder if we should just remove the OPAQUE_HIDDEN_INFERRED_BOUND lint... it does make me sad that we have non-well-formed types in signatures, though.)

@rustbot
Copy link
Collaborator

rustbot commented Jan 26, 2024

r? @estebank

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot 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 Jan 26, 2024
@compiler-errors
Copy link
Member Author

r? lcnr (or re-roll to types if you dont care to review this pr)

@rustbot rustbot assigned lcnr and unassigned estebank Jan 26, 2024
@lcnr
Copy link
Contributor

lcnr commented Jan 26, 2024

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Jan 26, 2024

📌 Commit 2aa7469 has been approved by lcnr

It is now in the queue for this repository.

@bors bors 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 Jan 26, 2024
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 26, 2024
…iaskrgr

Rollup of 9 pull requests

Successful merges:

 - rust-lang#117420 (Make `#![allow_internal_unstable(..)]` work with `stmt_expr_attributes`)
 - rust-lang#117678 (Stabilize `slice_group_by`)
 - rust-lang#119917 (Remove special-case handling of `vec.split_off(0)`)
 - rust-lang#120117 (Update `std::io::Error::downcast` return type)
 - rust-lang#120329 (RFC 3349 precursors)
 - rust-lang#120339 (privacy: Refactor top-level visiting in `NamePrivacyVisitor`)
 - rust-lang#120345 (Clippy subtree update)
 - rust-lang#120360 (Don't fire `OPAQUE_HIDDEN_INFERRED_BOUND` on sized return of AFIT)
 - rust-lang#120372 (Fix outdated comment on Box)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit b4b4835 into rust-lang:master Jan 26, 2024
@rustbot rustbot added this to the 1.77.0 milestone Jan 26, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Jan 26, 2024
Rollup merge of rust-lang#120360 - compiler-errors:afit-sized-lol, r=lcnr

Don't fire `OPAQUE_HIDDEN_INFERRED_BOUND` on sized return of AFIT

Conceptually, we should probably not fire `OPAQUE_HIDDEN_INFERRED_BOUND` for methods like:

```
trait Foo { async fn bar() -> Self; }
```

Even though we technically cannot prove that `Self: Sized`, which is one of the item bounds of the `Output` type in the `-> impl Future<Output = Sized>` from the async desugaring.

This is somewhat justifiable along the same lines as how we allow regular methods to return `-> Self` even though `Self` isn't sized.

Fixes rust-lang#113538

(side-note: some days i wonder if we should just remove the `OPAQUE_HIDDEN_INFERRED_BOUND` lint... it does make me sad that we have non-well-formed types in signatures, though.)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant 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.

[BUG] Stable (warning): Async traits Self return requires type specification
5 participants