Skip to content

Rust does not normalize opaque types with escaping bound vars #104601

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
compiler-errors opened this issue Nov 19, 2022 · 1 comment · Fixed by #113108
Closed

Rust does not normalize opaque types with escaping bound vars #104601

compiler-errors opened this issue Nov 19, 2022 · 1 comment · Fixed by #113108
Labels
A-impl-trait Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch. F-type_alias_impl_trait `#[feature(type_alias_impl_trait)]` T-types Relevant to the types team, which will review and decide on the PR/issue.

Comments

@compiler-errors
Copy link
Member

compiler-errors commented Nov 19, 2022

Opening this issue to record the fact that we don't normalize opaques with escaping bound vars in Reveal::All mode after #103509.

I am not aware of any impacts of this on regular rustc compilation sessions, at least not without using TAIT in some strange ways. However, this causes rust-lang/miri#2433 to reoccur, and makes me sad theoretically, since we should be revealing all opaques during monomorphization, for example.

Fixing this is not hard (43119d6, #100980), but doing it without incurring major performance penalties (#103423) is difficult.

@compiler-errors compiler-errors added A-impl-trait Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch. T-types Relevant to the types team, which will review and decide on the PR/issue. labels Nov 19, 2022
@compiler-errors compiler-errors changed the title Normalizating Opaques with escaping bound vars Rust does not normalize opaque types with escaping bound vars Nov 19, 2022
@RalfJung RalfJung added the F-type_alias_impl_trait `#[feature(type_alias_impl_trait)]` label Nov 19, 2022
@RalfJung
Copy link
Member

FWIW the Miri ICE also needs type_alias_impl_trait.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
A-impl-trait Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch. F-type_alias_impl_trait `#[feature(type_alias_impl_trait)]` T-types Relevant to the types team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants