Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

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

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in 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