Commit graph

1825 commits

Author SHA1 Message Date
Shoyu Vanilla (Flint)
84e87d5bba
Merge pull request #20738 from jackh726/next-trait-solver-next4
Some checks are pending
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
Remove non-ns version of impl_self_ty and impl_trait
2025-09-25 10:30:54 +00:00
The rustc-josh-sync Cronjob Bot
f69f3a6e01 Merge ref 'caccb4d0368b' from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: caccb4d0368bd918ef6668af8e13834d07040417
Filtered ref: 0f345ed05d
Upstream diff: 21a19c297d...caccb4d036

This merge was created using https://github.com/rust-lang/josh-sync.
2025-09-25 04:16:26 +00:00
Shoyu Vanilla
fbfb2617ad Switch next-solver related rustc dependencies of r-a to crates.io ones 2025-09-24 21:28:50 +09:00
jackh726
6a458880fd Remove non-ns version of impl_self_ty and impl_trait 2025-09-24 05:45:12 +00: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
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
jackh726
839645b4de Use ns versions of with_diagnostics queries 2025-09-22 21:50:12 +00:00
Chayim Refael Friedman
cd31e11f94
Merge pull request #20664 from ChayimFriedman2/coerce-ns
Some checks are pending
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
fix: Port a bunch of stuff from rustc and fix a bunch of type mismatches/diagnostics
2025-09-18 00:19:30 +00: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
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
Shoyu Vanilla (Flint)
db0420c278
Merge pull request #20642 from ChayimFriedman2/wasm-safe
Some checks failed
metrics / build_metrics (push) Has been cancelled
rustdoc / rustdoc (push) Has been cancelled
metrics / other_metrics (diesel-1.4.8) (push) Has been cancelled
metrics / other_metrics (hyper-0.14.18) (push) Has been cancelled
metrics / other_metrics (ripgrep-13.0.0) (push) Has been cancelled
metrics / other_metrics (self) (push) Has been cancelled
metrics / other_metrics (webrender-2022) (push) Has been cancelled
metrics / generate_final_metrics (push) Has been cancelled
fix: Make `#[target_feature]` always safe on WASM
2025-09-11 05:09:26 +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
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
Wilfred Hughes
bca5d59627 Remove support for register_attr
This was removed in rustc in 2022: https://github.com/rust-lang/rust/pull/101123

Closes #20525.
2025-09-08 15:56:56 +01:00
Chayim Refael Friedman
b78574cd62 Upgrade rustc crates
The main changes are (there are some other small changes):

 - Using a specific type for trait IDs in the new solver, allowing us to simplify a lot of code.
 - Add `BoundConst` similar to `BoundTy` and `BoundRegion` (previously consts used `BoundVar` directly), due to a new trait requirement.
2025-09-04 22:36:31 +03:00
Chayim Refael Friedman
41611b19e5 Make sense of the mess that were (are) different kind of generics in the solver
To the extent possible.

Previously they were confused. Sometimes generic params were treated as `Param` and sometimes as `Placeholder`. A completely redundant (in the new solver) mapping of salsa::Id to ints to intern some info where we could just store it uninterned (not in Chalk though, for some weird reason).

Plus fix a cute bug in closure substitution that was caught by the assertions of Chalk but the next solver did not have such assertions. Do we need more assertions?
2025-09-02 06:39:32 +03:00
Chayim Refael Friedman
1efff4677e In highlight_related, when on an unsafe block, don't highlight unsafe operations of other unsafe blocks 2025-08-26 21:46:04 +03:00
Shoyu Vanilla (Flint)
becf04b67a
Merge pull request #20442 from ChayimFriedman2/unqualify
fix: Only import the item in "Unqualify method call" if needed
2025-08-18 06:24:35 +00:00
jackh726
84388ceb0e Remove a bunch of stuff from chalk_db 2025-08-17 16:04:50 +00:00
jackh726
766e6b58ad Use impl_trait_ns in Impl::trait_ref 2025-08-17 16:04:50 +00:00
jackh726
e979349978 Switch TraitRef in hir::TraitRef to next solver 2025-08-17 16:04:50 +00:00
jackh726
7f0ec8b69f Replace layout_of_ty with layout_of_ty_ns 2025-08-17 16:04:50 +00:00
jackh726
f9d2d2dd87 Switch associated_type_shorthand_candidates to lower_nextsolver 2025-08-17 16:04:50 +00:00
jackh726
496f5f9e96 Cleanup assoc_type_shorthand_candidates 2025-08-17 16:04:50 +00:00
jackh726
aa890b49ff Change direct_super_traits to use generic_predicates_for_param_ns 2025-08-17 16:04:50 +00:00
jackh726
9912b803bc Deduplicate layout_of_adt 2025-08-17 16:04:50 +00:00
jackh726
eeaefa4b9d impl HirDisplay for next_solver::Ty 2025-08-17 16:04:49 +00:00
jackh726
8228f6f9f7 Convert some of dyn_compatibility to next-solver and remove generic_predicates_without_parent_query 2025-08-17 16:02:59 +00:00
Deadbeef
82f174fbd9 Merge Trait and TraitAlias handling 2025-08-13 15:28:08 +08:00
Chayim Refael Friedman
8c1c689977 Only import the item in "Unqualify method call" if needed 2025-08-13 05:23:58 +03:00
jackh726
9418a3f2df Implement next trait solver 2025-08-09 16:08:58 +00:00
Chayim Refael Friedman
ea140ef0a8 Do not remove the original token when descending into derives
This caused rename to remove both, because it couldn't rename the derive-expanded one.

I spent some time trying to create a test for this, before giving up. But I checked manually that this works.
2025-08-05 01:04:21 +03:00
Lukas Wirth
8ce30264c8 cargo clippy --fix 2025-07-31 10:55:10 +02:00
Chayim Refael Friedman
963a1317e7 Remove ExpressionStoreDiagnostics::MacroError, instead recreate it from the MacroCallId
This simplifies the code and also makes us report parse error in macros too.
2025-07-23 16:27:07 +03:00
Shoyu Vanilla
e587367b4d fix: Apply adjusts to pats and exprs when doing pat analysis 2025-07-22 01:18:48 +09:00
Chayim Refael Friedman
4b29a9d6ea
Merge pull request #20219 from ChayimFriedman2/expr-store-mem
Some checks are pending
metrics / build_metrics (push) Waiting to run
metrics / generate_final_metrics (push) Blocked by required conditions
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
perf: Put the expression stuff in the expression store behind an `Option<Box>`
2025-07-11 14:25:39 +00:00
Shoyu Vanilla (Flint)
e9968fc555
Merge pull request #20210 from ChayimFriedman2/naked-asm-safe
fix: Inline asm fixes
2025-07-10 06:28:49 +00:00
Chayim Refael Friedman
ad708fdbd1 Put the expression stuff in the expression store behind an Option<Box>
And leave only the type stuff without it.

This is because most expression stores don't have anything but types (e.g. generics, fields, signatures) so this saves a lot of memory.

This saves 58mb on `analysis-stats .`.
2025-07-10 05:18:43 +03:00
Chayim Refael Friedman
95c04c4503 Make global_asm!() work
Because apparently, we were not accepting inline asm in item position, completely breaking it.
2025-07-09 18:55:27 +03:00
Chayim Refael Friedman
bd8087e86e Differentiate between asm!(), global_asm!() and naked_asm!(), and make only asm!() unsafe 2025-07-09 17:37:27 +03:00
David Barsky
5bae4f5c81
Merge pull request #20185 from ChayimFriedman2/variant-symbols
feat: Include enum variants in world symbols
2025-07-07 15:15:27 +00:00
Chayim Refael Friedman
b34e5b7fe4 Include enum variants in world symbols
I opted to not include enum variant imports, only under the enum, and to not gate this behind a setting.
2025-07-06 14:52:10 +03:00