Skip to content

implied-bounds and normalization #141

Closed
@lcnr

Description

@lcnr

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, matches old solver behavior now)
    • 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

Metadata

Metadata

Type

No type

Projects

Status

done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions