Chayim Refael Friedman
cd31e11f94
Merge pull request #20664 from ChayimFriedman2/coerce-ns
...
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
...
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
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
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
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
1c8a07cfd6
Cache trait solving across queries in the same revision
...
Caching trait solving can do a lot to speed. Unfortunately it also consume a huge amount of memory. Therefore, as part of the migration to the new solver Jack Huey disabled caching of trait solving (he made the query transparent).
The PR proposes a middle ground: do cache trait solving, but only for the same revision. This allows us to be safe because during a revision the inputs cannot change.
The result is hopefully much better performance to features that tend to do a bulk of trait solving, and also repeat the same query (e.g. inference then IDE features).
There is another limitation: results are only cached in the same thread, to remove the need for synchronization which will be expensive. More measurements are required to check whether it's better to use a synchronized global cache, or maybe stay with a thread-local cache but batch multiple feature requests (highlighting, inlay hints etc.) of the same file to the same thread.
Alongside the actual cache we store the revision, because we need to verify it (we can't eagerly clear caches when incrementing the revision), and also the address of the db to prevent multiple dbs from interleaving (this is mostly relevant in tests, although injected highlighting also uses a new db, therefore maybe it's better to move it to a separate thread).
This "games" analysis-stats to both be way faster and use way more memory; the former is because analysis-stats doesn't increment revisions, therefore all queries share the cache and hit ratio is way too good, the latter is because analysis-stats doesn't increment revisions and therefore the cache isn't cleared. Both are not representative of a typical IDE scenario.
2025-08-25 17:17:31 +03:00
Shoyu Vanilla
15ac6a21dd
fix: Make lang items query properly filter out overwritten/excluded sysroots
2025-08-17 22:28:04 +09:00
Deadbeef
d9f67325ab
fix errors after rebase
2025-08-13 15:33:08 +08:00
Deadbeef
82f174fbd9
Merge Trait and TraitAlias handling
2025-08-13 15:28:08 +08:00
jackh726
9418a3f2df
Implement next trait solver
2025-08-09 16:08:58 +00:00
Lukas Wirth
8ce30264c8
cargo clippy --fix
2025-07-31 10:55:10 +02:00
Lukas Wirth
97593ea9c6
Merge pull request #20289 from ChayimFriedman2/expr-store-diags-macros
...
internal: Remove `ExpressionStoreDiagnostics::MacroError`, instead recreate it from the `MacroCallId`
2025-07-23 13:58:10 +00: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
Chayim Refael Friedman
c7ceb39f67
Parse for<'a> [const]
...
And also refactor parsing of HRTB.
2025-07-22 16:24:42 +03:00
John Paul Adrian Glaubitz
25122d9289
hir-def: Don't apply x86_64-specific asserts on x32
...
This fixes the rustc build on x32 for which struct sizes differ.
2025-07-21 17:03:07 +02:00
Chayim Refael Friedman
b1914e420f
Support cfg_select!
2025-07-20 11:56:45 +03:00
Andrey Nikolaev
2b861a7410
remove now useless [allow(unused_lifetimes)]
2025-07-13 05:43:05 -04:00
Chayim Refael Friedman
4b29a9d6ea
Merge pull request #20219 from ChayimFriedman2/expr-store-mem
...
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
Chayim Refael Friedman
edb804a100
Don't hash the SyntaxKind in the ast id
...
There is no need to, it's already stored in the `kind`.
2025-07-09 17:21:45 +03:00
Chayim Refael Friedman
87cddda2d8
Always bump in the parser in err_and_bump()
...
Even when at curly braces, otherwise the parser can get stuck.
This has happened in the past in #18625 , but it was just worked around instead of handling the root of the problem. Now this happened again in #20171 . IMO we can't let `err_and_bump()` not bump, that's too confusing and invites errors. We can (as I did) workaround the worse recovery instead.
2025-07-06 03:21:43 +03:00
Lukas Wirth
638e49b0fc
Skip unnecessary eq work in BodySourceMap
2025-07-04 11:36:06 +02:00
Chayim Refael Friedman
9c4a7705b1
Fix some things with builtin derives
...
1. Err on unions on derive where it's required.
2. Err on `#[derive(Default)]` on enums without `#[default]` variant.
3. Don't add where bounds `T: Default` when expanding `Default` on enums (structs need that, enums not).
Also, because I was annoyed by that, in minicore, add a way to filter on multiple flags in the line-filter (`// :`). This is required for the `Debug` and `Hash` derives, because the derive should be in the prelude but the trait not.
2025-07-03 23:05:56 +03:00
Lukas Wirth
8029c731ed
Bump salsa
2025-07-03 10:05:16 +02:00
Chayim Refael Friedman
a6c1fa01d9
Merge pull request #20100 from ShoyuVanilla/ignore-sized-hierarchy
...
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
Backport new sized-hierarchy trait bounds in old ways
2025-06-26 20:37:18 +00:00
Shoyu Vanilla
953e9d1c36
Backport new sized-hierarchy trait bounds in old ways
2025-06-26 23:22:26 +09:00
Lukas Wirth
468726178f
Bring back the firewall query
2025-06-26 14:12:57 +02:00
Lukas Wirth
889d84a1be
Salsa idiomize VariantFields query
2025-06-26 12:55:55 +02:00
Lukas Wirth
ad3a2d7280
Merge pull request #20088 from Veykril/push-qrslvzzlqqoz
...
De-arc trait items query
2025-06-25 08:19:32 +00:00
Lukas Wirth
f25912c6f9
De-arc trait items query
2025-06-25 10:09:21 +02:00
Lukas Wirth
c43e7c71de
Short circuit a couple hir-ty/lower queries
2025-06-24 20:04:43 +02:00
Lukas Wirth
95dce2be51
Merge pull request #20062 from ChayimFriedman2/doctests
...
minor: Don't run doctests
2025-06-24 06:47:24 +00:00
Shoyu Vanilla
254c6ec8e1
fix: Use ROOT hygiene for args inside new format_args! expansion
2025-06-24 01:10:32 +09:00
Chayim Refael Friedman
de312d0c71
Don't run doctests
2025-06-23 00:50:22 +03:00
Shoyu Vanilla
4f8767d790
Minic rustc's new format_args! expansion
2025-06-22 13:22:28 +09:00
Lukas Wirth
6301c35cf3
Revert "Turn BlockId into a #[salsa::tracked]"
...
This reverts commit 8643a858db .
2025-06-19 07:40:01 +02:00
Chayim Refael Friedman
a207299344
Merge pull request #20000 from tadeokondrak/lifetime-repeat-macro
...
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
autopublish / publish (push) Has been cancelled
release / dist (aarch64-apple-darwin) (push) Has been cancelled
release / dist (x86_64-apple-darwin) (push) Has been cancelled
release / dist (aarch64-unknown-linux-gnu) (push) Has been cancelled
release / dist (arm-unknown-linux-gnueabihf) (push) Has been cancelled
release / dist (x86_64-unknown-linux-gnu) (push) Has been cancelled
release / dist (aarch64-pc-windows-msvc) (push) Has been cancelled
release / dist (x86_64-pc-windows-msvc) (push) Has been cancelled
release / dist (i686-pc-windows-msvc) (push) Has been cancelled
release / dist (x86_64-unknown-linux-musl) (push) Has been cancelled
release / publish (push) Has been cancelled
Allow lifetime repeats in macros: $($x)'a*
2025-06-15 16:34:42 +00:00
Tadeo Kondrak
2070e9a8f3
Use is_any_identifier in pretty_print_macro_expansion
2025-06-15 18:23:18 +02:00
Tadeo Kondrak
12226b704a
Fix spacing for LIFETIME_IDENT near keywords and literals in test output
2025-06-15 17:43:45 +02:00
Lukas Wirth
b3768cdc0e
Optimize private visibility resolution
2025-06-15 10:25:45 +02:00
Lukas Wirth
e129cdc202
Optimize pub(crate) visibility resolution
2025-06-15 10:25:45 +02:00
Lukas Wirth
4b38ea5abd
Unify assoc item visibility queries
2025-06-15 10:01:34 +02:00
Lukas Wirth
bceeb6a3c7
Idiomatic salsa use for extern block abi query
2025-06-15 10:01:04 +02:00
Lukas Wirth
4e392f82cb
Idiomatic salsa use for impl items query
2025-06-15 09:40:02 +02:00