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

implied-bounds and normalization #141

Open
lcnr opened this issue Jan 21, 2025 · 0 comments
Open

implied-bounds and normalization #141

lcnr opened this issue Jan 21, 2025 · 0 comments

Comments

@lcnr
Copy link
Contributor

lcnr commented Jan 21, 2025

Affected tests:

  • implied bounds for opaques now normalizes opaques, unsound (normalizing opaques while proving implied bounds #159)
    • tests/ui/impl-trait/unactionable_diagnostic.rs
  • now compiles? cc incomplete normalization in implied bounds rust#109799
    • old solver has the nested Projection(<&'x str as IntoIterator>::Item, &'?x str) which gets ignored while new solver has <Vec<&'x str> as Iter>::Item: 'static which gets normalized to &'x str in one step, proving the Projection(<&'x str as IntoIterator>::Item, &'?x str) goal inside of the trait solver
    • tests/ui/implied-bounds/normalization-nested.rs#lifetime
  • computing implied bounds does not normalize correctly (fixed by Properly deeply normalize in the next solver rust#136074)
    • tests/ui/implied-bounds/normalization.rs
    • tests/ui/implied-bounds/gluon_salsa.rs (region identity)
  • implied bounds nyaaaaaaaaaa (properly supporting this needs canonicalization to map regions to universal instead of existential vars)
    • tests/ui/implied-bounds/normalization-preserve-equality.rs

Handling both normalization while computing implied bounds and avoiding implied bounds from normalizing opaques is non-trivial and may require some more significant changes to the current design

@lcnr lcnr moved this to unknown in -Znext-solver=globally Jan 29, 2025
@lcnr lcnr moved this from unknown to todo in -Znext-solver=globally Feb 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

1 participant