Chayim Refael Friedman 287a6e9482 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.
2025-09-10 03:32:06 +03:00
..
2025-07-31 10:55:10 +02:00
2025-09-10 03:32:06 +03:00
2025-09-08 15:56:56 +01:00
2025-09-10 03:32:06 +03:00
2025-08-09 16:08:58 +00:00
2025-07-31 10:55:10 +02:00
2025-07-31 10:55:10 +02:00
2025-06-23 00:50:22 +03:00
2025-07-31 09:55:07 +02:00
2025-08-09 16:08:58 +00:00
2025-09-04 12:10:39 +03:00
2025-08-13 15:28:08 +08:00
2025-06-23 00:50:22 +03:00
2025-08-09 15:47:01 +08:00
2025-06-23 00:50:22 +03:00
2025-07-31 10:55:10 +02:00
2025-07-03 10:05:16 +02:00
2025-07-31 10:55:10 +02:00