Chayim Refael Friedman
6b133c6b1b
Implement fallback properly
...
fallback.rs was ported straight from rustc (minus the lint parts).
This fixes the `!` regressions.
2025-09-24 20:42:06 +03:00
Chayim Refael Friedman
993db83afd
Merge pull request #20683 from regexident/inference-result-types-iter
...
Expose iterators over an inference result's types
2025-09-24 17:12:33 +00:00
Jack Huey
7a6df720c4
Be sure to instantiate and pass up trait refs in named_associated_type_shorthand_candidates
2025-09-23 16:27:04 -04:00
Jack Huey
ea48563951
Remove all non-ns diagnostics queries, naming consistenly
2025-09-23 16:27:03 -04:00
Jack Huey
cc7c061e34
Use lower_nextsolver::callable_item_signature instead of lower::callable_item_signature
2025-09-23 16:26:46 -04:00
Vincent Esche
7e9abceee7
Expose iterators over an inference result's types
...
(This re-introduces a reduced access to a couple of previously public fields on `InferenceResult`)
2025-09-23 11:39:40 +02:00
Jack Huey
73a401301d
Remove lower::value_ty in favor of lower_nextsolver::value_ty
2025-09-23 03:58:51 -04:00
Jack Huey
3089d23710
Remove lower::ty in favor of lower_nextsolver::ty
2025-09-23 03:58:51 -04:00
Jack Huey
34f773f596
Use ParamEnv in TraitEnvironment
2025-09-23 00:04:57 +00:00
Jack Huey
c2513538cd
Add 'db to TraitEnvironment
2025-09-23 00:04:57 +00:00
jackh726
7b9ad945ec
Make Field::ty return TypeNs
2025-09-23 00:04:56 +00:00
Shoyu Vanilla (Flint)
3249fc76b2
Merge pull request #20725 from ChayimFriedman2/fix-missing-lifetime
...
fix: Fix lifetime elision handling for `Fn`-style trait bounds
2025-09-22 15:21:19 +00:00
Chayim Refael Friedman
7d9af9f6a5
Merge pull request #20717 from ShoyuVanilla/migrate-more
...
internal: Migrate more predicate things to next-solver
2025-09-22 14:55:32 +00:00
Shoyu Vanilla
0a5457a392
internal: Migrate more predicate things to next-solver
2025-09-22 23:44:50 +09:00
Chayim Refael Friedman
ad9422da1a
Fix lifetime elision handling for Fn
-style trait bounds
...
Two fixes were needed:
1. Previously, we enabled elision for the generic args of `Fn` itself, instead of for generic args of paths within it.
2. In lowering in the new solver the `Output` parameter did not have elision set correctly, I don't know why. In the old lowering it was done correctly.
2025-09-22 16:53:20 +03:00
Chayim Refael Friedman
d5f597e726
Another regression test for next solver fixed bug
2025-09-22 10:26:03 +03:00
Laurențiu Nicola
4599670308
Bump rustc crates once more
2025-09-20 09:38:53 +03:00
Shoyu Vanilla (Flint)
2c6f0fc0df
Merge pull request #20697 from Oblarg/fix-negative-const-generic-literals
...
fix negative const generic integer literals
2025-09-19 14:13:54 +00:00
Oblarg
30031b84a8
address review feedback
2025-09-19 10:03:14 -04:00
Shoyu Vanilla
3b4f5fbd73
minor: Get rid of unused deps chalk-solve
and chalk-recursive
2025-09-19 22:35:46 +09:00
Laurențiu Nicola
5a643b8158
Set WithCachedTypeInfo::stable_hash when in-tree
2025-09-19 08:08:23 +03:00
Oblarg
d0bdedde0e
fix negative const generic integer literals
2025-09-18 18:55:13 -04:00
Shoyu Vanilla
a04f5185b1
fix: Fix one more thing in in-rust-tree
2025-09-19 04:20:24 +09:00
Laurențiu Nicola
e6c3152214
Merge pull request #20694 from ShoyuVanilla/bump-rustc
...
minor: Yet another rustc crates bump
2025-09-18 18:38:03 +00:00
Shoyu Vanilla
7dfb1c463e
minor: Yet another rustc crates bump
2025-09-19 03:26:03 +09:00
Shoyu Vanilla
c462f99914
fix: Fix indexmap
with in-rust-tree
2025-09-19 03:04:14 +09:00
Laurențiu Nicola
f289a24d0a
Bump rustc crates again
2025-09-18 19:03:35 +03:00
Shoyu Vanilla
74dda38d54
chore: Update rustc deps
2025-09-18 23:02:42 +09:00
Chayim Refael Friedman
cd31e11f94
Merge pull request #20664 from ChayimFriedman2/coerce-ns
...
fix: Port a bunch of stuff from rustc and fix a bunch of type mismatches/diagnostics
2025-09-18 00:19:30 +00:00
Shoyu Vanilla
0b76080c36
Fix "sync-from-ra" for rust-lang/rust
2025-09-17 03:22:52 +09:00
Lukas Wirth
aecb756876
Merge pull request #20517 from Veykril/veykril/push-wrurmtqppzus
...
fix: Only compute unstable paths on nightly toolchains for IDE features
2025-09-16 07:28:47 +00:00
Lukas Wirth
685f156fa6
fix: Only compute unstable paths on nightly toolchains for IDE features
2025-09-16 09:17:16 +02:00
Shoyu Vanilla
33f7ffe4da
fix: More precise clause filtering for explicit_*_predicates_of
2025-09-16 01:44:00 +09:00
Chayim Refael Friedman
7d1860807e
Port a bunch of stuff from rustc and fix a bunch of type mismatches/diagnostics
...
This started from porting coercion, but ended with porting much more.
2025-09-15 18:56:17 +03:00
Chayim Refael Friedman
b9797aa325
Add Regression Test For The One And The Only Issue #5514
2025-09-15 08:50:41 +03:00
Chayim Refael Friedman
40487c6a60
Add regression tests to some S-blocked-on-new-solver issues
...
That were fixed by the migration.
2025-09-15 08:25:17 +03:00
Shoyu Vanilla
26b8b794fb
fix: Infinite loop while elaborting predicates
2025-09-14 20:08:40 +09:00
Shoyu Vanilla (Flint)
db0420c278
Merge pull request #20642 from ChayimFriedman2/wasm-safe
...
fix: Make `#[target_feature]` always safe on WASM
2025-09-11 05:09:26 +00:00
Shoyu Vanilla (Flint)
d048a477dc
Merge pull request #20649 from ChayimFriedman2/cast-unknown
...
fix: Always coerce in a cast, even when there are unknown types
2025-09-10 02:27:53 +00:00
Chayim Refael Friedman
577203afca
Always coerce in a cast, even when there are unknown types
...
This cause the relationships between inference vars to get recorded.
2025-09-10 04:57:10 +03:00
Shoyu Vanilla (Flint)
cd529a48f7
Merge pull request #20645 from ChayimFriedman2/update-rustc
...
internal: Upgrade rustc crates
2025-09-10 01:45:46 +00:00
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
Chayim Refael Friedman
0f1adf43df
An associated type is not a projection!
...
More correctly, a `TyKind::AssociatedType` is not the same as `TyKind::Projection`.
We used to map next-solver `TyKind::Alias` to Chalk's `TyKind::AssociatedType`. This is very incorrect, as `AssociatedType` is assumed to be fully normalized, and caused a lot of type mismatches.
Unfortunately fixing this causes a lot of stack overflows, because the next solver doesn't have something akin to `AssociatedType` so we normalize again and again. The reason is that is the lazy-normalization nature of the next solver, which means we need to stop normalizing everything. This will be fixed in the next commit.
2025-09-10 00:53:15 +03:00
Chayim Refael Friedman
d03fd874d0
Adopt even more custom types in the new solver
...
A lot of simplification and fun.
2025-09-10 00:48:33 +03:00
Chayim Refael Friedman
9621689e47
Upgrade rustc crates and handle changes to canonicalization
...
They have to do with diagnostics, we could probably not support them but we will also someday want good diagnostics.
The code is mostly copied from rustc.
2025-09-10 00:48:33 +03:00
Shoyu Vanilla
4a8bc8db38
Fix failing tests and fill-in missing details
2025-09-10 01:43:22 +09:00
jackh726
d24e8c1d38
WIP switch inference table to next-solver
2025-09-09 22:45:14 +09:00
Chayim Refael Friedman
fcab4fbabb
Make #[target_feature]
safe always on WASM
...
Even when the feature isn't enabled, as it's not UB to invoke an undefined feature in WASM (just a trap).
2025-09-09 13:49:11 +03:00
Chayim Refael Friedman
6315e315ad
Expand target info to include the architecture
...
And make it easier to expand it more in the future, if needed.
2025-09-09 13:47:26 +03:00
Shoyu Vanilla (Flint)
a53b44412d
Merge pull request #20609 from ChayimFriedman2/update-rustc
...
internal: Upgrade rustc crates
2025-09-05 03:18:14 +00:00