Lukas Wirth
d2a31acda1
Fix macro expansion expression parenthesis wrapping
2023-12-02 13:03:46 +01:00
Nicholas Nethercote
4375419b24
Rename HandlerInner::delay_span_bug
as HandlerInner::span_delayed_bug
.
...
Because the corresponding `Level` is `DelayedBug` and `span_delayed_bug`
follows the pattern used everywhere else: `span_err`, `span_warning`,
etc.
2023-12-02 09:01:19 +11:00
Lukas Wirth
efa67294ed
Fix eager macro input spans being discarded
2023-12-01 16:29:58 +01:00
Lukas Wirth
0003e568ca
Pass calling span through to builtin macro expansions
2023-12-01 14:11:57 +01:00
bors
c2f133489c
Auto merge of #15912 - Sarrus1:master, r=HKalbasi
...
chore: remove unused `PhantomData`
This PR removes an unused `PhantomData` in `FileItemTreeId`.
*Note:* I am not sure how this should be implemented, maybe as a type instead of a wrapper struct? I'd be happy to do so if needed 👍
2023-12-01 11:07:35 +00:00
Lukas Wirth
7a8c4c001b
Turn macro_expand from query to normal function
2023-11-28 17:23:51 +01:00
Lukas Wirth
b98597f06d
Re-enable proc-macros
2023-11-28 16:28:56 +01:00
Lukas Wirth
98cfdde8ba
Thinner TokenMap
2023-11-28 10:56:25 +01:00
Lukas Wirth
92d447f976
🧹
2023-11-28 10:55:40 +01:00
Lukas Wirth
ab8f12e169
Rename hygiene vars and fields to span_map
2023-11-28 10:55:40 +01:00
Lukas Wirth
c43078f99d
Re-implement InFile wrappers as type aliases over generic InFileWrapper
2023-11-28 10:55:40 +01:00
Lukas Wirth
30093a6d81
spans always come from real file
2023-11-28 10:55:39 +01:00
Lukas Wirth
394d11b0fa
Fix float-split hack not setting up spans correctly
2023-11-28 10:55:39 +01:00
Lukas Wirth
8423893d1c
More incremental tests
2023-11-28 10:55:39 +01:00
Lukas Wirth
05f375eae2
hygiene 2.0
2023-11-28 10:55:39 +01:00
Lukas Wirth
e36b3f7b8c
Proper span representation with syntax context
2023-11-28 10:55:39 +01:00
Lukas Wirth
890eb17b4e
Replace ID based TokenMap with proper relative text-ranges / spans
2023-11-28 10:55:39 +01:00
Laurențiu Nicola
81606ecf68
Merge commit '237712fa314237e428e7ef2ab83b979f928a43a1' into sync-from-ra
2023-11-27 12:40:39 +02:00
Laurențiu Nicola
a54c0dafc8
Remove debugging code in path resolution
2023-11-17 20:58:43 +02:00
Laurențiu Nicola
59f5d51852
Merge commit '141fc695dca1df7cfc3c9803972ec19bb178dcbc' into sync-from-ra
2023-11-16 22:27:35 +02:00
Sarrus1
97dea2c699
remove unused PhantomData
2023-11-16 18:39:36 +01:00
bors
58de0b130a
Auto merge of #15902 - lnicola:bump-deps, r=Veykril
...
internal: Bump deps pt. 1
2023-11-15 19:37:06 +00:00
Laurențiu Nicola
c6fad55c98
Bump bitflags
2023-11-15 21:20:47 +02:00
Lukas Wirth
e8c4007cfc
Fix builtin line! expansion
2023-11-15 14:06:10 +01:00
Laurențiu Nicola
1fc056ec93
Bump indexmap
2023-11-15 13:21:34 +02:00
Laurențiu Nicola
cb8434e594
Bump either
2023-11-15 13:07:36 +02:00
Laurențiu Nicola
f53368dd3f
Bump tracing
2023-11-15 13:00:32 +02:00
Laurențiu Nicola
f66df10f87
Bump itertools
2023-11-15 12:53:56 +02:00
Laurențiu Nicola
6b53c09ef5
Merge branch 'master' into sync-from-rust
2023-11-15 09:46:27 +02:00
Laurențiu Nicola
610eafe009
Merge commit '76633199f4316b9c659d4ec0c102774d693cd940' into sync-from-rust
2023-11-15 09:45:17 +02:00
Lukas Wirth
e21d21a8fb
Diagnose incorrect unsafety for trait impls
2023-11-14 21:05:27 +01:00
Lukas Wirth
e844784d8d
Simplify
2023-11-14 12:53:14 +01:00
Lukas Wirth
74e5444f15
Fix some FIXMEs
2023-11-11 15:49:57 +01:00
Lukas Wirth
ba61766217
Add config for preferring / ignoring prelude modules in find_path
2023-11-11 14:56:38 +01:00
Lukas Wirth
801a887954
Record all import paths per item in ImportMap
2023-11-11 14:48:44 +01:00
Lukas Wirth
2339ba4440
Prepare ImportMap for supportin multiple import paths per item
2023-11-11 14:04:24 +01:00
Laurențiu Nicola
d1d111d09e
Merge commit '3b7c7f97e4a7bb253a8d398ee4f8346f6cf2817b' into sync-from-ra
2023-11-08 08:15:03 +02:00
hkalbasi
1086b294c2
update rustc dependencies
2023-11-08 01:16:47 +03:30
Nicholas Nethercote
6eaf3f8bb2
Remove support for compiler plugins.
...
They've been deprecated for four years.
This commit includes the following changes.
- It eliminates the `rustc_plugin_impl` crate.
- It changes the language used for lints in
`compiler/rustc_driver_impl/src/lib.rs` and
`compiler/rustc_lint/src/context.rs`. External lints are now called
"loaded" lints, rather than "plugins" to avoid confusion with the old
plugins. This only has a tiny effect on the output of `-W help`.
- E0457 and E0498 are no longer used.
- E0463 is narrowed, now only relating to unfound crates, not plugins.
- The `plugin` feature was moved from "active" to "removed".
- It removes the entire plugins chapter from the unstable book.
- It removes quite a few tests, mostly all of those in
`tests/ui-fulldeps/plugin/`.
Closes #29597 .
2023-11-04 08:50:46 +11:00
bors
bd38871a98
Auto merge of #15736 - rmehri01:15678_module_incorrect_case_diagnostics, r=HKalbasi
...
fix: add incorrect case diagnostics for module names
Adds diagnostics for checking both inline and file module names are snake case.
Closes #15678
2023-10-20 16:20:40 +00:00
Lukas Wirth
40acc5250f
Update rustc_abi dependency
2023-10-15 18:57:40 +02:00
Ryan Mehri
36eac9abee
fix: add incorrect case diagnostics for module names
2023-10-09 13:36:39 -07:00
bors
aaa1e8e1b8
Auto merge of #15618 - shogo-nakano-desu:internal/port-anymap, r=Veykril
...
internal: port anymap
## Description
- The anymap crate has been ported. During this process, unnecessary features for rust-analyzer have been removed.
- From the tests that were checking the existing licenses, the anymap license (`BlueOak-1.0.0 OR MIT OR Apache-2.0`) has been removed.
## Requests
- While porting the code this time, I have tried to respect the original author's intentions and have kept the comments/codes as much as possible. Please don't hesitate to tell me if you think the comments/codes also need to be appropriately modified.
- If there are any necessary changes regarding the licensing or anything else, please let me know so I can fix them.
## Issue
https://github.com/rust-lang/rust-analyzer/issues/15500
2023-10-09 08:40:54 +00:00
bors
dca63d1b21
Auto merge of #15713 - Veykril:flyimport-completions-short, r=Veykril
...
Do flyimport completions by prefix search for short paths
Fixes https://github.com/rust-lang/rust-analyzer/issues/15711
2023-10-09 07:56:02 +00:00
Lukas Wirth
88a00bf49d
Shrink PatPtr by swapping its AstPtr and Either wrap order
2023-10-06 12:32:37 +02:00
Lukas Wirth
4af730eb26
Do flyimport completions by prefix search for short paths
2023-10-05 13:21:12 +02:00
Lukas Wirth
fe398163b6
Recognize custom main function as binary entrypoint for runnables
2023-10-04 12:07:41 +02:00
Lukas Wirth
2b9dde14ab
Allocate ast ids for parameters
2023-09-28 13:16:11 +02:00
bors
4a8622c8fa
Auto merge of #15652 - Veykril:format_to, r=lnicola
...
minor: Various small fixes
2023-09-22 09:06:06 +00:00
Lukas Wirth
556f0c6704
Various small fixes
2023-09-22 10:13:51 +02:00
shogo-nakano-desu
f671b0b864
refactor: move implementation inside anymap crate into stdx crate
2023-09-20 09:02:10 +09:00
shogo-nakano-desu
4b3257a365
refactor: port anymap
2023-09-20 09:02:05 +09:00
bors
22b18b9f77
Auto merge of #15616 - HKalbasi:rustc-deps, r=HKalbasi
...
Switch to in-tree rustc dependencies with a cfg flag
We can use this flag to detect and prevent breakages in rustc CI. (see #14846 and #15569 )
~The `IN_RUSTC_REPOSITORY` is just a placeholder. Is there any existing cfg flag that rustc CI sets?~
2023-09-19 17:41:12 +00:00
Laurențiu Nicola
bcfc997eac
Merge commit '258b15c506a2d3ad862fd17ae24eaf272443f477' into sync-from-ra
2023-09-18 12:33:49 +03:00
Laurențiu Nicola
d39b45a58d
Merge branch 'master' into sync-from-rust
2023-09-18 12:04:59 +03:00
hkalbasi
f4704bc8ae
Switch to in-tree rustc dependencies with a cfg flag
2023-09-15 18:10:11 +03:30
Lukas Wirth
e63e323823
Prefer stable paths over unstable ones in import path calculation
2023-09-14 11:03:41 +02:00
Lukas Wirth
cfcef69072
shrink_to_fit body source map
2023-09-09 14:40:56 +02:00
Lukas Wirth
8f5fee4a5a
Diagnose incorrect and private fields in record structs
2023-09-09 10:45:29 +02:00
Lukas Wirth
55c75450fb
Diagnose private fields in record constructor
2023-09-08 23:19:30 +02:00
Andy Caldwell
7e786ea4cf
Rework no_coverage to coverage(off)
2023-09-08 12:46:06 +01:00
Lukas Wirth
10b0cd7047
Replace format-args parser with upstream fork
2023-09-07 11:37:59 +02:00
bors
f29867bd26
Auto merge of #15559 - Veykril:builtin-format-args, r=Veykril
...
Implement builtin#format_args, using rustc's format_args parser
`format_args!` now expands to `builtin#format_args(template, args...)`, the actual expansion now instead happens in lowering where we desugar this expression by using lang paths.
As a bonus, we no longer need to evaluate `format_args` as an eager macro which means less macro expansions overall -> less cache thrashing!
Fixes https://github.com/rust-lang/rust-analyzer/issues/15082
2023-09-06 17:44:33 +00:00
Lukas Wirth
96f19231d3
Fix hir pretty printing emitting trailing whitespace
2023-09-06 19:31:48 +02:00
Lukas Wirth
5046889f43
Don't allocate the format_args template string as an expression
2023-09-06 19:18:12 +02:00
Lukas Wirth
c0e402637e
Emit builtin#format_args in builtin format_args expander
2023-09-06 18:08:20 +02:00
Lukas Wirth
5fdd1e36e3
Remove todo!()
s
2023-09-06 15:30:44 +02:00
Lukas Wirth
e243a03da1
Desugar builtin#format_args
2023-09-06 15:21:41 +02:00
Lukas Wirth
abe8f1ece4
Implement builtin#format_args, using rustc's format_args parser
2023-09-05 19:19:46 +02:00
bors
caeea45999
Auto merge of #15557 - Veykril:builtin-syntax, r=Veykril
...
Parse builtin# syntax and add typechecking for builtin#offset_of expression
Also removes box syntax, fixes https://github.com/rust-lang/rust-analyzer/issues/14504
cc https://github.com/rust-lang/compiler-team/issues/580 https://github.com/rust-lang/rust-analyzer/issues/15082
2023-09-05 12:10:31 +00:00
Lukas Wirth
3431d586e5
Insert builtin#asm into asm! expansion
2023-09-05 14:00:49 +02:00
Lukas Wirth
15048304e3
Implement offset_of in hir-def and hir-ty
2023-09-05 12:27:52 +02:00
Lukas Wirth
9b8eb807a3
Parse builtin# syntax
2023-09-05 10:36:35 +02:00
bors
99686d56a8
Auto merge of #15551 - Veykril:docs, r=Veykril
...
Move doc comment handling into ide-db
2023-09-02 15:28:07 +00:00
Lukas Wirth
81f0108067
Remove markdown module from rust-analyzer crate
2023-09-02 17:27:52 +02:00
Lukas Wirth
b1575528c0
Move doc comment handling into ide-db
2023-09-02 16:27:26 +02:00
cui fliter
056b6b9416
remove the repetitive word
...
Signed-off-by: cui fliter <imcusg@gmail.com>
2023-09-02 14:18:10 +08:00
Lukas Wirth
c09f175d59
Less once_cell
more std
2023-09-01 17:30:59 +02:00
xffxff
204bc2cb60
fix: diagnostics for 'while let' loop with label in condition
2023-08-26 10:41:19 +08:00
hkalbasi
fa76f60cc1
Run cargo fmt on 1.72
2023-08-25 22:24:41 +03:30
Laurențiu Nicola
30d8aa1bec
Merge commit '9b3d03408c66749d56466bb09baf2a7177deb6ce' into sync-from-ra
2023-08-21 12:44:09 +03:00
Jessie Chatham Spencer
37e0e8af10
Implement extern crate completion
2023-08-20 16:36:59 +00:00
Lukas Wirth
eb6244c5f9
Record import aliases in symbol index
2023-08-18 11:46:35 +02:00
Lukas Wirth
637f496a81
fix: Fix auto-import (and completions) importing #[doc(hidden)]
items
2023-08-17 12:30:19 +02:00
bors
49716e681a
Auto merge of #15472 - Veykril:import-ide-support, r=Veykril
...
internal: Record import origins in ItemScope and PerNS
This records the import items definitions come from in the module scope (as well as what an import resolves to in an ItemScope). It does ignore glob imports as thats a lot more work for little to no gain, glob imports act as if the importing items are "inlined" into the scope which suffices for almost all use cases I believe (to my knowledge, attributes on them have little effect).
There is still a lot of work needed to make this available to the IDE layer, but this lays out the ground work for havin IDE layer support.
cc https://github.com/rust-lang/rust-analyzer/issues/14079
2023-08-17 09:56:42 +00:00
Lukas Wirth
a17d73ad36
Thread imports through the resolver
2023-08-17 10:52:13 +02:00
Lukas Wirth
c4e9b5ac64
Add import info to item scope dumps
2023-08-17 09:33:15 +02:00
Lukas Wirth
af8048266c
Prepare ItemScope for IDE import resolution
2023-08-16 11:33:42 +02:00
bors
b771de3fdc
Auto merge of #15179 - ponyii:fix/default-values-of-const-params-are-ignored, r=HKalbasi
...
the "add missing members" assists: implemented substitution of default values of const params
To achieve this, I've made `hir::ConstParamData` store the default values
2023-08-15 10:17:43 +00:00
bors
2fbe69d117
Auto merge of #15438 - Veykril:eager-parser-stuck, r=Veykril
...
fix: Fix parser being stuck in eager macro inputs
Fixes https://github.com/rust-lang/rust-analyzer/issues/15437
2023-08-12 14:30:38 +00:00
Lukas Wirth
9ac88d8d36
Fix parser being stuck in eager macro inputs
2023-08-12 08:27:27 +02:00
Lukas Wirth
9adff006e8
Simplify
2023-08-10 20:10:19 +02:00
Lukas Wirth
bfad781a77
Memoize block_item_tree_query
2023-08-10 19:24:39 +02:00
Lukas Wirth
fde2d9b47c
Deduplicate FileId field in ModuleOrigin
2023-08-10 19:04:46 +02:00
Lukas Wirth
e5b23e3bc1
Derive block attributes from block item tree
2023-08-10 18:52:27 +02:00
bors
05b0612051
Auto merge of #15428 - Veykril:lsp-types-pin, r=Veykril
...
Fix pinned version of lsp-types
lsp-types published a new patch version that breaks semver with the proposed feature set (this is intended and documented), we unfortunately forgot to specify the patch version for the pinned version so this breaks us.
2023-08-09 18:07:44 +00:00
Lukas Wirth
7e04142f25
Fix pinned version of lsp-types
2023-08-09 20:06:08 +02:00
Lukas Wirth
63aba76735
Remove unnecessary ItemTreeId field in ImportSource
2023-08-09 17:06:52 +02:00
Lukas Wirth
c516dd51e9
Simplify
2023-08-09 15:54:10 +02:00
Lukas Wirth
992b928a93
Record import source IDs
2023-08-09 15:20:42 +02:00