diff options
| author | Chayim Refael Friedman <chayimfr@gmail.com> | 2025-09-10 03:32:06 +0300 |
|---|---|---|
| committer | Chayim Refael Friedman <chayimfr@gmail.com> | 2025-09-10 03:32:06 +0300 |
| commit | 4a4b77f1c75e48944507fd69e75db36a1658f800 (patch) | |
| tree | 5b0e5758c999792e8b53151dda3c0f9e82030313 /tests/rustdoc-js-std/parser-errors.js | |
| parent | 1acb4c2c1621578ea787afb698ed8718cbdf3d4f (diff) | |
| download | rust-4a4b77f1c75e48944507fd69e75db36a1658f800.tar.gz rust-4a4b77f1c75e48944507fd69e75db36a1658f800.zip | |
Properly handle normalization
Previously normalization was broken, which caused a lot of fake errors. This fix most type mismatches of the new solver, and it also reverts many test regressions. The downside is that now `chalk_ir::TyKind::AssociatedType`/`chalk_ir::TyKind::Alias` cannot be trusted anymore with their roles, namely: `AssociatedType` is always fully normalized and `Alias` only if it can possibly be normalized further. That seems okay as the new solver does not have this distinction at all (due to it being a lazy normalizer), so this will only hold for the migration time. This does mean we have to change some APIs, notably `hir::Type::walk()` and `TyFingerprint`, to treat `Alias` the same as `AssociatedType`. Another small thing this commit does is to isolate processing of user-written types (currently involving replacing error types and normalizing, but in the future validation will also be needed) to separate functions.
Diffstat (limited to 'tests/rustdoc-js-std/parser-errors.js')
0 files changed, 0 insertions, 0 deletions
