22206 Commits

Author SHA1 Message Date
Chayim Refael Friedman
547c124c05 Fix variance
This one does need fixpoint.
2025-04-22 15:20:07 +03:00
Chayim Refael Friedman
57c019a3c5 Adapt for new cycle handling changing in Salsa 2025-04-22 15:20:05 +03:00
Chayim Refael Friedman
db72e2ff41 Adjust for salsa::Id::from_u32() being unsafe
This impacts our manual `salsa::Id` wrappers. I refactored them a bit to improve safety.
2025-04-22 15:19:35 +03:00
Chayim Refael Friedman
2bba385dda Adjust for new Salsa not implementing Debug by default 2025-04-22 15:19:35 +03:00
Lukas Wirth
9632b386d1
Merge pull request #19479 from ChayimFriedman2/generic-mismatch
feat: Add two new diagnostics: one for mismatch in generic arguments count, and another for mismatch in their kind
2025-04-22 12:06:28 +00:00
Chayim Refael Friedman
7b8200ba8d The new diagnostic has found a bug lurking in minicore
It's cute, isn't it?
2025-04-22 14:55:43 +03:00
Chayim Refael Friedman
99ce53b1d7 Add two new diagnostics: one for mismatch in generic arguments count, and another for mismatch in their kind
Also known as E0747 and E0107.

And by the way, rewrite how we lower generic arguments and deduplicate it between paths and method calls. The new version is taken almost straight from rustc.

This commit also changes the binders of `generic_defaults()`, to only include the binders of the arguments up to (and not including) the current argument. This make it easier to handle it in the rewritten lowering of generic args. It's also how rustc does it.
2025-04-22 14:55:43 +03:00
Lukas Wirth
669a30852b
Merge pull request #19622 from A4-Tacks/raw-string-suffix
Fix ide-assists raw_string suffix fail
2025-04-22 11:43:17 +00:00
Lukas Wirth
2b4b483af1
Merge pull request #19662 from Veykril/push-lqqvmnonlwrx
minor: Fix outdated comment in hir-ty/generics.rs
2025-04-22 11:26:56 +00:00
Lukas Wirth
a6b24f47c1 minor: Fix outdated comment in hir-ty/generics.rs 2025-04-22 13:15:56 +02:00
Lukas Wirth
9a9f4e7f63
Merge pull request #19624 from jackh726/chalk-update
Update chalk
2025-04-22 10:58:31 +00:00
Lukas Wirth
cb6ddbedb0 refactor: Fold hygiene map into bindings themselves
`HygieneId` fits into `Binding`'s padding.
2025-04-21 16:53:06 +02:00
Lukas Wirth
34e7d60e30
Merge pull request #19644 from ChayimFriedman2/const-syms
internal: Make predefined symbols `const` instead of `static`
2025-04-21 12:34:59 +00:00
Lukas Wirth
a5540bd98d
Merge pull request #19604 from WtzLAS/fix-issue-19601
Add semicolon to use
2025-04-21 12:34:07 +00:00
Lukas Wirth
00887db152
Merge pull request #19629 from jyn514/unset-env
allow using `null` to unset an environment variable
2025-04-21 12:22:26 +00:00
Lukas Wirth
e3f7d18458
Merge pull request #19643 from ChayimFriedman2/generic-const-items
feat: Parse generic consts
2025-04-21 12:17:08 +00:00
Lukas Wirth
5195f9d176
Merge pull request #19653 from Veykril/push-lmrprywtztzt
feat: parse `super let`
2025-04-21 11:58:36 +00:00
Lukas Wirth
5004778384
Merge pull request #19651 from roife/enhance-notable-trait-render
minor: simplify and enhance notable traits rendering
2025-04-21 11:48:43 +00:00
Lukas Wirth
1b6948e88a feat: parse super let 2025-04-21 13:47:42 +02:00
roifewu
06cf9ca521 minor: simplify and enhance notable traits rendering 2025-04-21 19:03:35 +08:00
Lukas Wirth
d16b862ea5 fix: Support unstable UnsafePinned struct in type layout calc 2025-04-21 09:35:30 +02:00
Lukas Wirth
5680911972 fix: Fix completion_snippets_custom config always erroring 2025-04-21 08:18:11 +02:00
Lukas Wirth
af301a88ec Back out "When changing the config, do not emit an error if a field is missing"
This backs out commit 8497fc321cad420b923e15f600106f8e22324930.
2025-04-21 08:10:00 +02:00
Chayim Refael Friedman
0f325c7ff8 Remove unnecessary predefined symbol clones
Now that they're const it's no longer needed.

Nothing manual was performed: only a regexp search of `sym::([\w][\w\d]*)\.clone\(\)` and replace by `sym::$1`.
2025-04-21 03:10:13 +03:00
Chayim Refael Friedman
9477e46bec Get rid of static predefined symbols
Make them all `const`.
2025-04-21 03:07:35 +03:00
Chayim Refael Friedman
812a035689 Parse generic consts
A lang team experiment, https://github.com/rust-lang/rust/issues/113521.
2025-04-21 02:11:56 +03:00
Chayim Refael Friedman
8497fc321c When changing the config, do not emit an error if a field is missing 2025-04-20 22:45:25 +03:00
Chayim Refael Friedman
ff62cf63e6 Remove unused macro arm 2025-04-20 22:37:02 +03:00
bbb651
c7cf6bf7c3 doc: Fix dead manual links 2025-04-20 20:28:52 +03:00
bbb651
2ffcb99683 doc: Rework generated configuration to have anchors
Also first line of default code blocks being used as the language instead of json
and fixes a missing `json` language in a doc comment code block.
2025-04-20 19:29:54 +03:00
jackh726
6daa791fab Update chalk 2025-04-20 16:20:08 +00:00
Chayim Refael Friedman
150bb4a00f
Merge pull request #19617 from ChayimFriedman2/more-actual
internal: Make `HirFileId`, `EditionedFileId` and macro files Salsa struct
2025-04-19 19:21:53 +00:00
Chayim Refael Friedman
c58ddafe90 Make HirFileId, EditionedFileId and macro files Salsa struct
And make more queries non-interned.

Also flip the default for queries, now the default is to not intern and to intern a query you need to say `invoke_interned`.
2025-04-19 22:10:52 +03:00
jyn
3b964a7105 allow using null to unset an environment variable
this makes three changes:
- all callsites of `toolchain::command` are changed to use
  `command(path, extra_env)`, instead of manually adding the env after
  the fact.
- all `map<str, str>` are changed to `map<str, option<str>>`.
- `command` checks for None and calls `env_remove` if so.

this caught several places where environment variables weren't being
propagated:
- when running `rustc --print=target-libdir`
- when running `cargo rustc -- --print=target-spec-json`
- when running the custom DiscoverLinkedProjects config. I *think* this
  is for use with non-cargo build systems, so I didn't change it.
2025-04-19 12:15:22 -04:00
jyn
46ce4746e6 don't ignore config values that fail to parse
previously, these would just silently be ignored. now they give a
warning such as:
```
invalid config values: /completion/snippets/custom: invalid type: null, expected a map; /cargo/extraEnv: invalid type: null, expected a string;
```
2025-04-19 10:08:05 -04:00
A4-Tacks
13bdfab6b5
Fix replace_string_with_char escaped char quote 2025-04-19 19:16:44 +08:00
Lukas Wirth
a09a5502c3
Merge pull request #19613 from ChayimFriedman2/subst
fix: Fix a panic when a trait method in an impl declares a lifetime parameter not in the trait declaration
2025-04-18 18:51:14 +00:00
A4-Tacks
9ef1417d45
Support ide-assists raw_string suffix 2025-04-18 22:06:22 +08:00
Chayim Refael Friedman
41227f01d2 Sort notable traits in hover
Previously it was ordered by what accidentally happened to be the crate graph order, which isn't sensible, plus it caused changes when any change was done to salsa IDs.
2025-04-18 12:45:22 +03:00
Lukas Wirth
32052e5054
Merge pull request #19616 from ChayimFriedman2/transparent-diags
internal: Make hir-ty non-diagnostic queries transparent
2025-04-18 08:53:53 +00:00
Chayim Refael Friedman
5e3a914dc2 Make hir-ty non-diagnostic queries transparent
That is, all queries that have a `with_diagnostic` variant.

Them being tracked was (maybe) needed before #19462, because back then diagnostics could refer `AstId`s (for macro types), but now they are no longer needed.
2025-04-18 07:04:13 +03:00
Chayim Refael Friedman
346f2d7559 Fix a panic when a trait method in an impl declares a lifetime parameter not in the trait declaration
Shuffle the code a bit.
2025-04-18 06:28:17 +03:00
Lukas Wirth
71d23b9a6b
Merge pull request #19612 from ChayimFriedman2/parent-generics
fix: Fix a bug with predicate lowering of associated items
2025-04-17 08:17:26 +00:00
Chayim Refael Friedman
e1962d2e22 Fix a bug with predicate lowering of associated items
The essence of the bug is that bounds on `impl Trait` got lowered with incorrect bound vars, as if we were lowering the parent.
2025-04-17 00:19:54 +03:00
Chayim Refael Friedman
0a8f808ebc
Merge pull request #19605 from ChayimFriedman2/fix-sig
minor: Fix signature of libc memory usage function on Linux
2025-04-16 14:08:37 +00:00
Chayim Refael Friedman
1cb9b1cb38 Fix signature of libc memory usage function on Linux
A soundness issue!
2025-04-16 16:56:45 +03:00
Wtz_LASR
c0bc939053 add semicolon to use 2025-04-16 21:13:01 +08:00
Lukas Wirth
1748a84888
Merge pull request #19589 from roife/fix-issue-19138
fix: highlighting for tail expr in labelled blocks
2025-04-16 11:20:05 +00:00
roifewu
cfc28f3148 feat: highlight tail expr when cursor is on label 2025-04-16 19:08:44 +08:00
Lukas Wirth
ea273513ed
Merge pull request #19591 from snprajwal/fix-make-macro
fix: use `ast::TokenTree` in `make::expr_macro`
2025-04-16 07:47:25 +00:00