Laurențiu Nicola
37f7190b3e
Merge from rust-lang/rust
2024-09-25 09:00:53 +03:00
Chayim Refael Friedman
82124f33b5
Handle lint attributes that are under #[cfg_attr]
2024-09-19 22:21:48 +03:00
bors
990c48cb0d
Auto merge of #18131 - ChayimFriedman2:macro-expand-dollar-crate, r=Veykril
...
fix: Get rid of `$crate` in expansions shown to the user
Be it "Expand Macro Recursively", "Inline macro" or few other things.
We replace it with the crate name, as should've always been.
Probably fixes some issues, but I don't know what they are.
2024-09-18 20:17:21 +00:00
Chayim Refael Friedman
cfb701ac78
Get rid of $crate
in expansions shown to the user
...
Be it "Expand Macro Recursively", "Inline macro" or few other things.
We replace it with the crate name, as should've always been.
2024-09-18 18:30:59 +03:00
Chayim Refael Friedman
35e171aa01
Always cache macro expansions' root node in Semantics
...
Previously some expansions were not cached, but were cached in the expansion cache, which caused panics when later queries tried to lookup the node from the expansion cache.
2024-09-17 00:19:39 +03:00
bors
cfe8e376c9
Auto merge of #18080 - Veykril:dedup, r=Veykril
...
Remove crate graph deduplication logic
Fixes https://github.com/rust-lang/rust-analyzer/issues/17748
2024-09-11 11:47:17 +00:00
bors
14a18b4849
Auto merge of #18078 - cuishuang:master, r=Veykril
...
Remove unnecessary symbols and add missing symbols
2024-09-11 11:32:46 +00:00
Lukas Wirth
c2258d8880
Properly set the working directory for proc-macro execution
2024-09-11 12:23:12 +02:00
Lukas Wirth
db04f514f2
Lift out workspace related data into a separate query to preserve crategraph deduplication
2024-09-11 12:16:41 +02:00
Chayim Refael Friedman
7c44d453c8
Correctly escape strings in our quote macro
...
This is a small change, but it was the cause of 90% of the errors in `rust-analyzer diagnostics .` 🫢
With this change and #18085 together, all remaining errors are type errors.
This may mean we can enable more errors, but this is out of scope for this PR.
2024-09-10 19:00:32 +03:00
cuishuang
2f29feab2f
Remove unnecessary symbols and add missing symbols
...
Signed-off-by: cuishuang <imcusg@gmail.com>
2024-09-09 16:36:37 +08:00
Lukas Wirth
3b11ff8c4d
Lower asm expressions
2024-09-05 09:59:08 +02:00
Nadrieril
c304e9b817
Add an internal lint that warns when accessing untracked data
2024-09-03 19:14:19 +02:00
Lukas Wirth
4502a602a7
internal: Lay basic ground work for standalone mbe tests
2024-09-01 12:42:44 +02:00
Lukas Wirth
fa48bc216c
Revert "feat: Implement module_path
macro"
2024-08-27 08:19:09 +02:00
bors
33c1f57a1a
Auto merge of #17936 - Veykril:module_path, r=Veykril
...
feat: Implement `module_path` macro
Turns out this is a pain to implement because of our hir-def hir-expand split :)
2024-08-23 09:32:27 +00:00
Lukas Wirth
ada65feaa1
Improve proc-macro panic message and workspace loading failure diagnostic
2024-08-22 18:46:23 +02:00
Lukas Wirth
c2a07e21f5
Thread file id through descension API for semantic highlighting
2024-08-22 16:45:37 +02:00
Lukas Wirth
f979667fb5
Remove DescendPreference::SameText
2024-08-22 12:34:20 +02:00
Lukas Wirth
d44a3ab30c
internal: Implement module_path
macro
2024-08-21 13:50:05 +02:00
Chayim Refael Friedman
9d3368f2c2
Properly account for editions in names
...
This PR touches a lot of parts. But the main changes are changing
`hir_expand::Name` to be raw edition-dependently and only when necessary
(unrelated to how the user originally wrote the identifier),
and changing `is_keyword()` and `is_raw_identifier()` to be edition-aware
(this was done in #17896 , but the FIXMEs were fixed here).
It is possible that I missed some cases, but most IDE parts should properly
escape (or not escape) identifiers now.
The rules of thumb are:
- If we show the identifier to the user, its rawness should be determined
by the edition of the edited crate. This is nice for IDE features,
but really important for changes we insert to the source code.
- For tests, I chose `Edition::CURRENT` (so we only have to (maybe) update
tests when an edition becomes stable, to avoid churn).
- For debugging tools (helper methods and logs), I used `Edition::LATEST`.
2024-08-16 16:46:24 +03:00
Lukas Wirth
f90bdfc13d
internal: Properly check the edition for edition dependent syntax kinds
2024-08-15 15:57:47 +02:00
Vincent Esche
7dec7e92ea
Replace [package.repository] = "…"
of published crates with [package.repository.workspace] = true
2024-08-06 00:26:42 +02:00
Vincent Esche
6f329e6d5b
Add repository URL for published crates' missing [package.repository]
fields
2024-08-06 00:25:02 +02:00
Vincent Esche
b5b0f4bc5a
Replace "TBD"
with more helpful desciptions in published crates' [package.description]
fields
2024-08-06 00:25:02 +02:00
bors
fbed308ebe
Auto merge of #17799 - Veykril:syntax-bridge, r=Veykril
...
Split out syntax-bridge into a separate crate
This functionality is not really tied to mbe macros, so imo it has no place in that crate.
2024-08-05 12:31:45 +00:00
Lukas Wirth
d2dd4f6d5f
Split out syntax-bridge into a separate crate
2024-08-05 13:45:00 +02:00
Lukas Wirth
fcb88832de
Simplify FileDelegate
2024-08-05 13:03:03 +02:00
Lukas Wirth
ad71abb9ad
fix: Fix builtin includes rejecting raw string literals
2024-07-30 08:19:32 +02:00
Lukas Wirth
fab30c45cb
Add missing doc string
2024-07-29 16:05:21 +02:00
Lukas Wirth
d46060b168
Fix error spans for include! and compile_error!
2024-07-29 15:57:01 +02:00
Lukas Wirth
ae9c553902
Make basic use of spans for macro expansion errors
2024-07-29 14:52:40 +02:00
Lukas Wirth
7beac14cba
Internal: Cleanup proc-macro error handling
2024-07-26 14:38:19 +02:00
Lukas Wirth
df15b6f668
fix: Fix includes not working with expr fragment inputs
2024-07-26 10:12:06 +02:00
Lukas Wirth
bd359b32b0
LRU body_with_source_map
query
2024-07-22 16:34:59 +02:00
Lukas Wirth
1141c35a4b
Make CfgExpr
slimmer
2024-07-21 14:50:44 +02:00
bors
b333f85a9d
Auto merge of #17639 - Veykril:salsa-perf, r=Veykril
...
Some more small salsa memory improvements
This does limit our lru limits to 2^16 but if you want to set them higher than that you might as well not set them at all. Also makes `LRU` opt-in per query now, allowing us to drop all the unnecessary LRU stuff for most queries
2024-07-19 18:45:16 +00:00
Lukas Wirth
92f5e806f1
Fix edition used for include macro parsing
2024-07-19 20:29:53 +02:00
Lukas Wirth
6d4989b3c7
Make LRU opt-in
2024-07-19 18:38:08 +02:00
Lukas Wirth
546eb6b530
Test macros doing edition dependent parsing
2024-07-19 16:43:58 +02:00
Lukas Wirth
5264f86242
Encode edition within FileId in the hir layer
2024-07-18 08:49:10 +02:00
Lukas Wirth
7011094685
Add always disabled gen parse support
2024-07-17 10:49:12 +02:00
Lukas Wirth
e75dbe52a1
Don't call macro_arg directly in ExpandDatabase::syntax_context
2024-07-16 22:10:42 +02:00
Lukas Wirth
2346a80ab4
Remove Name::to_smol_str
2024-07-16 12:43:58 +02:00
Lukas Wirth
df5f1777b8
More symbol usage
2024-07-16 12:05:16 +02:00
Lukas Wirth
c30bdfcc84
Use symbol in cfg
2024-07-16 10:41:42 +02:00
Lukas Wirth
93024ad411
Switch token trees to use Symbols
2024-07-16 10:11:59 +02:00
Lukas Wirth
05ce57efd5
Fix incorrect encoding of literals in the proc-macro-api on version 4
2024-07-15 14:51:01 +02:00
Lukas Wirth
dcfda55c82
Escape fetched env vars in env! expansion
2024-07-15 13:08:29 +02:00
Lukas Wirth
e846c04fbe
Encode ident rawness and literal kind separately in tt::Leaf
2024-07-15 12:24:40 +02:00