Lukas Wirth
9ba4493918
internal: Improve rooted upmapping
2024-03-12 13:46:58 +01:00
Lukas Wirth
fdc527f096
fix: Fix method resolution snapshotting receiver_ty too early
2024-03-11 15:35:06 +01:00
Young-Flash
562f4a2688
test: update test for unused_variables
2024-03-11 19:36:53 +08:00
Young-Flash
77136575da
feat: add fix for unused_variables
2024-03-11 19:36:53 +08:00
bors
a58f574816
Auto merge of #16762 - wyatt-herkamp:master, r=Veykril
...
Added QuickFix for unresolved field.
Adds an AssistKind::QuickFix for unresolved field.
Currently, Snippets are not available for Diagnostics. So the type defaults to the Unit type if the type is not able to be inferred.
https://github.com/rust-lang/rust-analyzer/assets/11785959/bd4c67bd-f8cb-4254-9a87-641ae80a7a28
Closes https://github.com/rust-lang/rust-analyzer/issues/4563
2024-03-11 09:31:22 +00:00
Laurențiu Nicola
cd2347e132
Skip match diagnostics for partially unknown types
2024-03-07 19:11:23 +02:00
Wyatt Herkamp
4f0bc1a314
Typo
2024-03-06 11:51:45 -05:00
Wyatt Herkamp
255ba692aa
Added tests, added Union Support, and code cleanup
2024-03-06 10:55:47 -05:00
Wyatt Herkamp
6027eae51e
Fix Tests + Fix Warnings
2024-03-05 08:34:52 -05:00
Wyatt Herkamp
b45cfe15b5
Added quickfix for unresolved field.
2024-03-05 08:07:21 -05:00
Lukas Wirth
8844640c6f
fix: Put style lints behind disabled-by-default config
2024-03-05 11:43:23 +01:00
Lukas Wirth
76463eee48
Move lint definition generation into xtask/codegen
2024-03-04 17:14:14 +01:00
Lukas Wirth
0964374274
Move diagnostics docs generation into xtask/codegen
2024-03-04 17:14:14 +01:00
Lukas Wirth
6e802a0b56
minor: Mark remove_unnecessary_else as experimental
2024-03-04 16:35:33 +01:00
bors
a7e9f12bf7
Auto merge of #16748 - Veykril:on-demand-validation-err, r=Veykril
...
internal: Compute syntax validation errors on demand
The LRU cache causes us to re-parse trees quite often, yet we don't use the validation errors at all. With this we push calculating them off to the caller who is interested in them.
2024-03-04 11:19:16 +00:00
Lukas Wirth
c3c9f5ffe1
internal: Compute syntax validation errors on demand
2024-03-04 12:06:15 +01:00
bors
99a1b8f7a8
Auto merge of #16747 - Veykril:cleanup, r=Veykril
...
internal: Clean some stuff up
Just a bunch of small refactorings, mainly from browsing through `hir-def`
2024-03-04 10:30:17 +00:00
Lukas Wirth
4303e741de
Cleanup
2024-03-04 11:10:06 +01:00
Vincent Esche
6112ddfabb
Add prefix file_
to Semantics
's to_module_defs()
/to_module_def()
methods
2024-02-28 10:27:28 +01:00
bors
1d3558bfe1
Auto merge of #16684 - Veykril:synthetic-fmt-args, r=Veykril
...
fix: Don't panic on synthetic syntax in inference diagnostics
Temporary fix for https://github.com/rust-lang/rust-analyzer/issues/16682
We ought to rethink how we attach diagnostics to things, as IDs don't work for `format_args` like that!
2024-02-26 16:47:57 +00:00
Lukas Wirth
3856648b52
fix: Don't panic on synthetic syntax in inference diagnostics
2024-02-26 17:46:03 +01:00
Young-Flash
0978d165f3
add test case
2024-02-23 21:05:55 +08:00
Lukas Wirth
16b15a203e
internal: Attempt to add a timeout to rustc-tests
2024-02-20 18:04:53 +01:00
Lukas Wirth
1e448f84c3
Clippy
2024-02-19 16:26:22 +01:00
Rose Hudson
a492d9d164
feat: add unresolved-ident diagnostic
2024-02-19 14:12:18 +01:00
Rose Hudson
d818b531c9
internal: make check_diagnostics_with_disabled more ergonomic
2024-02-19 14:12:18 +01:00
davidsemakula
7dfeb2cdcc
refactor "unnecessary else" diagnostic test
2024-02-19 15:24:45 +03:00
davidsemakula
ff70310086
fix: only emit "unnecessary else" diagnostic for expr stmts
2024-02-19 15:24:45 +03:00
Shoyu Vanilla
1205853c36
Apply indent fix in #16575
2024-02-19 15:24:45 +03:00
Shoyu Vanilla
8f6e2127c3
Fix the remove unnecessary else action to preserve block tail expr
2024-02-19 15:24:45 +03:00
Shoyu Vanilla
21f4ff0351
Check for let expr ancestors instead of tail expr
2024-02-19 15:24:45 +03:00
Shoyu Vanilla
d14b22863b
Handle cases for else if
2024-02-19 15:19:27 +03:00
Shoyu Vanilla
e9c80a9c25
fix: False positive diagnostic for necessary else
2024-02-19 15:19:27 +03:00
Rose Hudson
5390e4ce9b
feat: add non-exhaustive-let diagnostic
2024-02-19 12:36:30 +01:00
Lukas Wirth
ead369117a
CrateOrigin::Local means local to the project workspace, not cargo workspace
2024-02-16 16:28:17 +01:00
davidsemakula
9ae0f924dd
fix "needless return" for trailing item declarations
2024-02-15 20:07:58 +03:00
bors
cf8733353d
Auto merge of #16540 - Veykril:macro-arg, r=Veykril
...
internal: macro_arg query always returns a TokenTree
2024-02-12 16:32:40 +00:00
Lukas Wirth
2fa57d90bc
internal: macro_arg query always returns a TokenTree
2024-02-12 17:19:41 +01:00
bors
818c30c311
Auto merge of #16092 - kilpkonn:term_search_1, r=Veykril
...
feat: Introduce term search to rust-analyzer
# Introduce term search to `rust-analyzer`
_I've marked this as draft as there might be some shortcomings, please point them out so I can fix them. Otherwise I think it is kind of ready as I think I'll rather introduce extra functionality in follow up PRs._
Term search (or I guess expression search for rust) is a technique to generate code by basically making the types match.
Consider the following program
```rust
fn wrap(arg: i32) -> Option<i32> {
todo!();
}
```
From the types of values in scope and constructors of `Option`, we can produce the expected result of wrapping the argument in `Option`
Dependently typed languages such as `Idris2` and `Agda` have similar tools to help with proofs, but this can be also used in everyday development as a "auto-complete".
# Demo videos
https://github.com/rust-lang/rust-analyzer/assets/19900308/7b68a1b7-7dba-4e31-9221-6c7485e77d88
https://github.com/rust-lang/rust-analyzer/assets/19900308/0fae530a-aabb-4b28-af71-e19f8d3d64b2
# What does it currently do
- It works well with locals, free functions, type constructors and non-static impl methods that take items by value.
- Works with functions/methods that take shared references, but not with unique references (very conservative).
- Can handle projections to struct fields (eg. `foo.bar.baz`) but this might me more conservative than it has to be to avoid conflicting with borrow checker
- Should create only valid programs (no type / borrow checking errors). Tested with `rust-analyzer analysis-stats /path/to/ripgrep/Cargo.toml --run-term-search --validate-term-search` (basically running `cargo check` on all of the generated programs and only error seems to be due to type inference which is more of issue of testing method.
# Performace / fitness
```txt
ripgrep (latest)
Tail Expr syntactic hits: 130/1692 (7%)
Tail Exprs found: 523/1692 (30%)
Term search avg time: 9ms
Term search: 15.64s, 97ginstr, 8mb
rust-analyzer (on this branch)
Tail Expr syntactic hits: 804/13860 (5%)
Tail Exprs found: 6757/13860 (48%)
Term search avg time: 78ms
Term search: 1088.23s, 6765ginstr, 98mb
```
Highly generic code seems to blow up the search space so currently the amount of generics allowed is functions/methods is limited down to 0 (1 didn't give much improvement and 2 is already like 0.5+s search time)
# Plans for the future (not in this PR)
- ``~~Add impl methods that do not take `self` type (should be quite straight forward)~~ Done
- Be smarter (aka less restrictive) about borrow checking - this seems quite hard but since the current approach is rather naive I think some easy improvement is available.
- ``~~See if it works as a autocomplete while typing~~ Done
_Feel free to ask questions / point of shortcoming either here or on Zulip, I'll be happy to address them. I'm doing this as part of my MSc thesis so I'll be working on it till summer anyway 😄 _
2024-02-12 14:47:12 +00:00
Nadrieril
43caf8323a
Prefer debug!
to never!
and add regression test
2024-02-11 23:46:05 +01:00
Tavo Annus
125791386d
Cleanup term search related changes
2024-02-11 14:35:54 +02:00
Tavo Annus
88964c0b6a
Optionally disable term search for autocompletion
2024-02-11 13:33:29 +02:00
Tavo Annus
0b838e3e23
Expand target for autocompletion
2024-02-11 13:33:29 +02:00
Tavo Annus
a946970e2d
Add quantified trees to reduce autocomplete options
2024-02-11 13:33:29 +02:00
Tavo Annus
bdbdd83ec1
Initial version of term_search for autocomplete
2024-02-11 13:33:29 +02:00
Tavo Annus
bb3c7cff60
Introduce term search to rust-analyzer
2024-02-11 13:33:29 +02:00
Lukas Wirth
36fb1409ed
Cleanup visibility.rs
2024-02-10 13:50:45 +01:00
Tetsuharu Ohzeki
d00f1c1b16
ide-diagnostics: Fix warnings about clippy str_to_string
rule
2024-02-10 01:00:40 +09:00
davidsemakula
602acfcb70
fix conflicting "unnecessary else" and "trailing return" diagnostics tests
2024-02-08 19:32:53 +03:00
davidsemakula
a250c2dde0
refactor remove trailing return diagnostic
2024-02-08 19:32:53 +03:00
davidsemakula
98e6f43a2f
remove trailing return in trailing match expression
2024-02-08 19:32:53 +03:00
davidsemakula
cad222ff1b
remove trailing return in trailing if expression
2024-02-08 19:32:53 +03:00
davidsemakula
2987fac76f
diagnostic to remove trailing return
2024-02-08 19:32:53 +03:00
bors
0e5766b0d8
Auto merge of #16477 - davidsemakula:trait-incorrect-case-diagnostic, r=Veykril
...
feat: Add incorrect case diagnostics for traits and their associated items
Updates incorrect case diagnostic to:
- Check traits and their associated items
- Ignore trait implementations except for patterns in associated function bodies
Also cleans up `hir-ty::diagnostics::decl_check` a bit (mostly to make it a bit more DRY and easier to maintain)
Also fixes : #8675 and fixes : #8225
2024-02-08 14:40:16 +00:00
bors
e9d3565cd1
Auto merge of #16502 - davidsemakula:unnecessary-else-diagnostic, r=Veykril
...
feat: Add "unnecessary else" diagnostic and fix
Fixes #9457
2024-02-08 14:25:00 +00:00
Lukas Wirth
545382db25
Fix warnings
2024-02-08 14:54:52 +01:00
Lukas Wirth
91dab4d720
Better error message for when proc-macros have not yet been built
2024-02-08 14:53:12 +01:00
Lukas Wirth
4bf6b160a9
Fix incorrect range uses in missing_fields quick fixes
2024-02-08 14:53:11 +01:00
davidsemakula
d7a03022f7
handle divergence in child if expr for unnecessary else diagnostic fix
2024-02-06 19:00:10 +03:00
davidsemakula
62cc4f9c46
add unnecessary else diagnostic
2024-02-06 19:00:10 +03:00
davidsemakula
b45ee82811
incorrect case diagnostics for param names of trait impl assoc functions
2024-02-05 01:31:28 +03:00
davidsemakula
33b3b6dbf9
refactor: disable "unused" lint using parameter name
2024-02-05 01:07:44 +03:00
davidsemakula
46d79e21b5
add allow and deny attribute tests for incorrect case diagnostics for traits
2024-02-02 17:07:08 +03:00
davidsemakula
080d223dd4
incorrect case diagnostics for type aliases
2024-02-02 17:07:08 +03:00
davidsemakula
0ffc088439
no incorrect case diagnostics for trait impl assoc functions and consts except for pats in fn bodies
2024-02-02 17:07:08 +03:00
davidsemakula
6d2d6323ac
incorrect case diagnostics for trait assoc functions and consts
2024-02-02 17:07:08 +03:00
davidsemakula
5fe3b75677
incorrect case diagnostics for trait name
2024-02-02 17:07:08 +03:00
Lukas Wirth
9e8a0fae0c
Lint debug prints and disallowed types with clippy
2024-02-01 17:57:27 +01:00
bors
355c9444e1
Auto merge of #16448 - Young-Flash:typos, r=lnicola
...
minor: correct typos
I use [crate-ci/typos](https://github.com/crate-ci/typos ) to check typos in codebase, if it's ok with you, I'd like to add a typo check CI using [typos](https://github.com/crate-ci/typos ) (with Apache-2.0, MIT licenses).
BTW, we can add a [_typos.toml](https://github.com/crate-ci/typos/blob/master/docs/reference.md ) as white list for some intentional typos
2024-01-31 13:29:55 +00:00
Lukas Wirth
604479c373
internal: Use improved adjusted_display_range for all diagnostics
2024-01-31 09:16:30 +01:00
David Barsky
e1ea7c8844
internal: switch to tracing
from log
...
This commit also adds `tracing` to NotificationDispatcher/RequestDispatcher,
bumps `rust-analyzer-salsa` to 0.17.0-pre.6, `always-assert` to 0.2, and
removes the homegrown `hprof` implementation in favor of a vendored
tracing-span-tree.
2024-01-30 12:27:31 -05:00
Young-Flash
db9fd370ee
minor: correct typos
2024-01-30 21:43:43 +08:00
bors
7219414e81
Auto merge of #16427 - Young-Flash:fix_no_such_field_diagnostics, r=Veykril
...
fix: filter out cfg disabled filed when lowering `RecordPat`
we should filter out field with disabled cfg when lowering ast `RecordPat` to hir.
close https://github.com/rust-lang/rust-analyzer/issues/16169
2024-01-27 10:52:36 +00:00
bors
27c3ed9de8
Auto merge of #16434 - Veykril:things, r=Veykril
...
internal: Restructure and cleanup hir-expand a bit
2024-01-27 10:16:35 +00:00
Lukas Wirth
8a5829cf28
Re-order mod declarations
2024-01-27 11:02:34 +01:00
Ar4ys
8f05e7ce55
Replaced adjusted_display_range with it's new version in mismatched_arg_count
2024-01-25 20:15:46 +01:00
Young-Flash
1374bc8c93
test: ensure no_such_field
diagnostic don't work for field with disabled cfg
2024-01-25 19:30:04 +08:00
bors
85c9a83262
Auto merge of #16398 - Urhengulas:satisfy-clippy, r=Veykril
...
`cargo clippy --fix`
This PR is the result of running `cargo clippy --fix && cargo fmt` in the root of the repository. I did not manually review all the changes, but just skimmed through a few of them. The tests still pass, so it seems fine.
2024-01-19 09:43:35 +00:00
Johann Hemmann
fad4fa163c
cargo clippy --fix
2024-01-18 13:59:49 +01:00
Ali Bektas
9bd9a17ce5
Add a new config to allow renaming of non-local items
...
With #15656 we started disallowing renaming of non-local items.
Although this makes sense there are some false positives that
impacted users' workflows. So this config aims to mitigate this
by giving users the liberty to disable this feature.
2024-01-18 00:26:22 +01:00
Zach
1aff8157bc
Set experimental field at diagnostic new instead of lib
2024-01-10 05:58:25 -06:00
Zach
beeaaf184e
Mark unresolved associated item diagnostic as experimental
2024-01-09 17:09:50 -06:00
Matthias Krüger
3fb2cd2002
autofix remaining perf findings
2024-01-07 01:20:20 +01:00
Matthias Krüger
196650dfaf
don't to_string() format args
2024-01-07 01:11:57 +01:00
Matthias Krüger
476e10e961
remove redundant clones
2024-01-07 00:17:48 +01:00
bors
2980d54160
Auto merge of #16223 - Young-Flash:quickfix_redundant_assoc_item, r=Veykril
...
feat: add quickfix for redundant_assoc_item diagnostic
Happy New Year 😊
follow up https://github.com/rust-lang/rust-analyzer/pull/15990 , now it's time to close https://github.com/rust-lang/rust-analyzer/issues/15958 , closes https://github.com/rust-lang/rust-analyzer/issues/16269
![demo](https://github.com/rust-lang/rust-analyzer/assets/71162630/74022c52-1566-49a0-9be8-03b82f3e730f )
EDIT: add a demo.git would be more illustrated when making release change log.
2024-01-05 13:15:01 +00:00
Johann Hemmann
03b1ecd90d
Replace only occurence of check_expect with check_diagnostics
2024-01-04 18:20:38 +01:00
Young-Flash
c5c1360f7b
fix: make diagnostic range accommodate for macros
2024-01-03 22:05:30 +08:00
bors
426d2842c1
Auto merge of #16222 - rosefromthedead:unresolved-assoc-item, r=Veykril
...
add unresolved-assoc-item assist
I tried to copy from private-assoc-item for this
2024-01-02 15:06:13 +00:00
bors
86e559bf3f
Auto merge of #16211 - tetsuharuohzeki:update-lint, r=Veykril
...
Use Cargo's [workspace.lints.*] to config clippy
This change begin to use [`[workspace.lints.*]`](https://doc.rust-lang.org/cargo/reference/workspaces.html#the-lints-table ) that is stabilized since [Rust 1.74](https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html ).
By this change, we make the configure more readable and simplify `xargo lint` more.
2024-01-02 14:53:22 +00:00
Young-Flash
91bd59682a
fix: make editing range accommodate for macros
2024-01-02 21:30:13 +08:00
Young-Flash
481fab1591
chore: add test case for assoc func fix in unresolved_method
diagnostic
2024-01-02 20:53:41 +08:00
Young-Flash
69410bb488
feat: add assoc func quickfix for unresolved_method
diagnostic
2024-01-02 20:53:41 +08:00
Young-Flash
4eb3d2e279
test: add test case for redundant_assoc_item quickfix
2024-01-01 11:19:12 +08:00
Young-Flash
613774e331
feat: add quickfix for redundant_assoc_item diagnostic
2024-01-01 11:17:06 +08:00
Rose Hudson
5878651e7e
add unresolved-assoc-item diagnostic
2023-12-31 17:36:40 +00:00
Tetsuharu Ohzeki
efc87092b3
Use Cargo's [workspace.lints.*] to config clippy
2023-12-29 23:51:32 +09:00
Young-Flash
cc73c00d81
add test case for negative impl
2023-12-24 20:07:33 +08:00
Lukas Wirth
f49a2fed3f
internal: Move out WithFixture
into dev-dep only crate
2023-12-18 15:24:08 +01:00
Lukas Wirth
35620306a6
internal: Move proc-macro knowledge out of base-db
2023-12-18 12:37:18 +01:00
hkalbasi
7b9595a5ab
Run rust-analyzer on rustc tests in metrics
2023-12-15 02:10:25 +03:30
hkalbasi
801c0ea478
Replace doc_comments_and_attrs
with collect_attrs
, 2nd round
2023-12-11 22:56:50 +03:30
bors
457b966b17
Auto merge of #16039 - WaffleLapkin:don't-emit-missing-assoc-items-diagnostic-for-negative-impls, r=Veykril
...
fix: Don't emit "missing items" diagnostic for negative impls
Negative impls can't have items, so there is no reason for this diagnostic.
LMK if I should add a test somewhere. Also LMK if that's not how we usually check multiple things in an if in r-a.
2023-12-10 22:24:32 +00:00
Maybe Waffle
1630477985
fix: Don't emit "missing items" diagnostic for negative impls
2023-12-10 22:21:59 +00:00
hkalbasi
9337519df5
Replace doc_comments_and_attrs
with collect_attrs
2023-12-09 23:32:51 +03:30
Lukas Wirth
b1a8f83a0c
fix: Smaller spans for unresolved field and method diagnostics
2023-12-08 18:46:36 +01:00
Young-Flash
fbe494a106
fix: change default diagnostic range into impl body
2023-12-07 20:45:42 +08:00
Young-Flash
861e47431b
update: make each trait_impl_reduntant_assoc_item into individual diagnostic
2023-12-06 22:17:55 +08:00
Young-Flash
5d84edd430
feat: add trait_impl_reduntant_assoc_item diagnostic
2023-12-06 22:17:55 +08:00
Lukas Wirth
ba01ff4f88
Fix diagnostics panicking when resolving to different files due to macros
2023-12-06 14:39:26 +01:00
Igor Matuszewski
a7224c998d
Don't explicitly warn against semicolon_in_expressions_from_macros
...
This has been warn-by-default for two years now and has already been
added to the future-incompat lints in 1.68.
2023-12-05 11:35:09 +01:00
bors
e91fdf7860
Auto merge of #15959 - Veykril:macro-shower3, r=lnicola
...
TokenMap -> SpanMap rewrite
Opening early so I can have an overview over the full diff more easily, still very unfinished and lots of work to be done.
The gist of what this PR does is move away from assigning IDs to tokens in arguments and expansions and instead gives the subtrees the text ranges they are sourced from (made relative to some item for incrementality). This means we now only have a single map per expension, opposed to map for expansion and arguments.
A few of the things that are not done yet (in arbitrary order):
- [x] generally clean up the current mess
- [x] proc-macros, have been completely ignored so far
- [x] syntax fixups, has been commented out for the time being needs to be rewritten on top of some marker SyntaxContextId
- [x] macro invocation syntax contexts are not properly passed around yet, so $crate hygiene does not work in all cases (but most)
- [x] builtin macros do not set spans properly, $crate basically does not work with them rn (which we use)
~~- [ ] remove all uses of dummy spans (or if that does not work, change the dummy entries for dummy spans so that tests will not silently pass due to havin a file id for the dummy file)~~
- [x] de-queryfy `macro_expand`, the sole caller of it is `parse_macro_expansion`, and both of these are lru-cached with the same limit so having it be a query is pointless
- [x] docs and more docs
- [x] fix eager macro spans and other stuff
- [x] simplify include! handling
- [x] Figure out how to undo the sudden `()` expression wrapping in expansions / alternatively prioritize getting invisible delimiters working again
- [x] Simplify InFile stuff and HirFIleId extensions
~~- [ ] span crate containing all the file ids, span stuff, ast ids. Then remove the dependency injection generics from tt and mbe~~
Fixes https://github.com/rust-lang/rust-analyzer/issues/10300
Fixes https://github.com/rust-lang/rust-analyzer/issues/15685
2023-12-04 19:59:53 +00:00
Lukas Wirth
5edf7bddc6
Fix mod item in included file resolving incorrectly
2023-12-02 13:49:09 +01:00
Lukas Wirth
c11737cd63
Simplify include handling
2023-12-01 14:58:57 +01:00
Young-Flash
b46f37854e
update: filter out syntax error in test
2023-11-30 19:35:25 +08:00
Lukas Wirth
f48fa0c6cb
Re-implement syntax fixups
2023-11-29 16:00:39 +01:00
Lukas Wirth
30093a6d81
spans always come from real file
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
Young-Flash
cab91480b2
fix: don't make MissingMatchArms
diagnostic for empty match body
2023-11-26 22:57:30 +08:00
Young-Flash
cfc881ae13
fix missing assoc item
2023-11-16 22:27:21 +08:00
Laurențiu Nicola
2bfd6b659d
Bump serde_json
2023-11-15 13:17:36 +02:00
Laurențiu Nicola
cb8434e594
Bump either
2023-11-15 13:07:36 +02:00
Laurențiu Nicola
f66df10f87
Bump itertools
2023-11-15 12:53:56 +02:00
Lukas Wirth
498f39eae2
fix: Diagnose everything in nested items, not just def diagnostics
2023-11-15 10:34:09 +01:00
Lukas Wirth
723d799ec1
Diagnose missing assoc items in trait impls
2023-11-14 22:00:52 +01:00
Lukas Wirth
e21d21a8fb
Diagnose incorrect unsafety for trait impls
2023-11-14 21:05:27 +01:00
Lukas Wirth
6ddccc9a6e
Diagnose some orphan trait impl cases
2023-11-14 18:09:34 +01:00
Lukas Wirth
e844784d8d
Simplify
2023-11-14 12:53:14 +01:00
Lukas Wirth
ba61766217
Add config for preferring / ignoring prelude modules in find_path
2023-11-11 14:56:38 +01:00
hkalbasi
3bcdb7d886
Truncate closure capture place for raw pointer
2023-11-09 20:59:17 +03:30
hkalbasi
8b82ea4f51
Store binding mode for each instance independently
2023-10-22 23:35:33 +03:30
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
Ryan Mehri
36eac9abee
fix: add incorrect case diagnostics for module names
2023-10-09 13:36:39 -07:00
Lukas Wirth
88a00bf49d
Shrink PatPtr by swapping its AstPtr and Either wrap order
2023-10-06 12:32:37 +02:00
hkalbasi
af28458643
Downgrade unused_variables
to experimental
2023-09-30 08:38:55 +03:30
hkalbasi
ab52ba2de7
Fix unused_variables in tests
2023-09-24 23:45:36 +03:30
hkalbasi
7834b8fadb
Add unused_variables
native diagnostic
2023-09-24 21:29:15 +03:30
jDomantas
b3aba94cbd
use code from bug report for regression test
2023-09-17 16:52:32 +03:00
jDomantas
a77789e7aa
regression test
2023-09-17 11:54:42 +03:00
Lukas Wirth
affe5a7315
fix: Temporarily skip decl check in derive expansions
2023-09-12 23:10:03 +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
Lukas Wirth
8654a098c7
Diagnose mismatched arg count for tuple struct patterns
2023-09-08 14:54:43 +02:00
Lukas Wirth
3fa0bf0dd3
Fix ide-diagnostics test fixture
2023-09-06 18:31:16 +02:00
hkalbasi
514fefab9c
Respect #[allow(unused_braces)]
2023-08-28 22:22:28 +03:30
xffxff
204bc2cb60
fix: diagnostics for 'while let' loop with label in condition
2023-08-26 10:41:19 +08:00
Lukas Wirth
bcff166b3a
Add ExternCrateDecl to HIR
2023-08-02 11:52:55 +02:00
bors
151c750dac
Auto merge of #15367 - Veykril:eager-macro-inputs, r=Veykril
...
fix: Strip unused token ids from eager macro input token maps
2023-08-01 11:23:02 +00:00
Lukas Wirth
a5059da57a
Update test fixture
2023-08-01 13:13:56 +02:00
bors
c71e1368fd
Auto merge of #15269 - DropDemBits:structured-snippets-deferred-rendering, r=Veykril
...
internal: Defer structured snippet rendering to allow escaping snippet bits
Since we know exactly where snippets are, we can transparently escape snippet bits to the exact text edits that need it, and not have to do it for anything other text edits.
Also will eventually fix #11006 once all assists are migrated. This comes as a side-effect of text edits that don't have snippets get marked as having no insert formatting at all.
2023-08-01 09:18:46 +00:00
Lukas Wirth
7c765d9f9e
fix: Expand eager macros to delimited comma separated expression list
2023-07-30 17:31:26 +02:00
Ryo Yoshida
33b7b45f67
Report incorrect case for inner items within all bodies
2023-07-21 15:07:55 +09:00
Ryo Yoshida
b53a07835b
Report incorrect case for fn inner items
2023-07-21 15:07:49 +09:00
hkalbasi
832eb0d94c
Normalize type alias in projected_ty
2023-07-17 01:16:26 +03:30
DropDemBits
89f7bf7411
Add SnippetEdit
to be alongside source changes
...
Rendering of snippet edits is deferred to places using source change
2023-07-12 00:43:41 -04:00
hkalbasi
42d35f8af9
Fix missing terminator in pattern matching of consts
2023-07-10 01:01:59 +03:30
bors
db17f792bf
Auto merge of #15223 - lowr:patch/no-unresolved-field-for-missing, r=HKalbasi
...
Don't show `unresolved-field` diagnostic for missing names
I don't think reporting ``"no field `[missing name]` on type `SomeType`"`` makes much sense because it's a syntax error rather than a semantic error. We already report a syntax error for it and I find it sufficient.
2023-07-06 11:54:08 +00:00
Ryo Yoshida
827a0530bc
Don't show unresolved-field
diagnostic for missing names
2023-07-06 20:39:48 +09:00
AmrDeveloper
54e897368d
Cover disable diagnostic from case with invalid syntax
2023-07-05 19:31:37 +02:00
AmrDeveloper
fe65eabc81
Remove un used import
2023-07-05 17:41:51 +02:00
AmrDeveloper
3fb6a3be82
Remove un needed extra handling for remove self with braces
2023-07-05 17:38:58 +02:00
AmrDeveloper
ce0239bd6a
Disable remove unnecessary braces diagnotics for self imports
2023-07-05 16:34:04 +02:00
bors
45272efec5
Auto merge of #14990 - HKalbasi:diagnostic-map, r=HKalbasi
...
Map our diagnostics to rustc and clippy's ones
And control their severity by lint attributes `#[allow]`, `#[deny]` and ... .
It doesn't work with proc macros and I would like to fix that before merge but I don't know how to do it.
2023-07-03 18:58:47 +00:00
bors
daba334611
Auto merge of #15206 - Veykril:let-else-fmt, r=Veykril
...
internal: Format let-else
As nightly finally got support for it I went ahead and formatted r-a with the latest nightly, then with the latest stable (in case other stuff changed)
2023-07-03 18:41:59 +00:00
Lukas Wirth
69cd3c30ac
Format let-else
2023-07-03 20:34:09 +02:00
Lukas Wirth
e52027861e
Add analysis-stats flag to trigger some IDE features
2023-07-03 16:04:08 +02:00
Ryo Yoshida
4e793e7859
Use anonymous lifetime where possible
2023-06-29 23:27:28 +09:00
Lukas Wirth
d8b970f1fc
Skip mutable diagnostics on synthetic bindings
2023-06-21 19:38:19 +02:00
hkalbasi
e55a1f1916
Map our diagnostics to rustc and clippy's ones
2023-06-15 01:47:22 +03:30
hkalbasi
b4907a531f
Fix missing terminator for slice pattern
2023-06-04 20:59:27 +03:30
hkalbasi
0408af6453
Fix unused-mut
false positive for Box
2023-06-04 15:56:01 +03:30
hkalbasi
71f3e4b08c
Detect "bound more than once" error and suppress need-mut
for it.
2023-06-04 12:39:36 +03:30
hkalbasi
08f89193b5
Fix drop scopes in mir
2023-06-04 01:03:32 +03:30
bors
0b4c09b1d2
Auto merge of #14941 - Veykril:def-map, r=Veykril
...
Shrink `DefMap`, share crate level items with block def maps
2023-06-01 16:42:12 +00:00
hkalbasi
f4c52b40bd
fix bug in labeled for loop desugaring
2023-06-01 17:51:53 +03:30
Lukas Wirth
dc7c6d43c7
Slightly shrink DefMap
2023-06-01 14:46:36 +02:00
Lukas Wirth
ecb8616870
fix: Don't duplicate sysroot crates in rustc workspace
2023-05-31 15:37:35 +02:00
hkalbasi
51368793b4
MIR episode 6
2023-05-28 23:25:15 +03:30
Lukas Wirth
8bc826dd53
Add diagnostic for _
expressions (typed holes)
2023-05-28 14:55:28 +02:00
hkalbasi
c21d09f3cc
insert type vars in function arguments
2023-05-26 14:26:13 +03:30
hkalbasi
780349bdaf
fix need-mut
false positive in closure capture of match scrutinee
2023-05-26 02:08:37 +03:30
hkalbasi
7ef185d65e
evaluate UnevaluatedConst
in unify
2023-05-25 19:37:20 +03:30
Lukas Wirth
c7ef6c25b7
internal: Replace Display impl for Name
2023-05-24 20:55:12 +02:00
hkalbasi
c5ea2d7adc
handle match scrutinee in closure captures
2023-05-19 12:04:12 +03:30
hkalbasi
b55fbd3ad7
Add moved-out-of-ref
diagnostic
2023-05-18 19:17:06 +03:30
Lukas Wirth
478705baf5
fix: Diagnose non-value return and break type mismatches
2023-05-16 22:47:27 +02:00
hkalbasi
7da80d4f67
Use double reference in debug derive
2023-05-12 12:36:57 +03:30
hkalbasi
36c9d5ce17
Fix pattern type mismatch in tuples
2023-05-04 16:03:36 +03:30
hkalbasi
3a3c3630a2
fix break-outside-of-loop false positive in try block
2023-05-02 03:11:56 +03:30
Aleksey Kladov
f3de9d8f54
fix: don't wavy-underline iterator chains
2023-04-29 17:31:53 +01:00
bors
8f06f995c5
Auto merge of #14644 - matklad:matklad/diag-adj, r=lnicola
...
feat: don't wavy-underline the whole for loop
2023-04-24 10:38:27 +00:00
Aleksey Kladov
774575106c
feat: don't wavy-underline the whole for loop
2023-04-24 11:31:52 +01:00
hkalbasi
01c1b3dc71
Fix panic in const eval and parameter destructing
2023-04-24 00:49:57 +03:30
hkalbasi
0c621065fb
Fix need-mut large span in closures and a false positive
2023-04-21 02:15:19 +03:30
bors
2400b36a2e
Auto merge of #14577 - jsoref:spelling, r=lnicola
...
Spelling
This PR corrects misspellings identified by the [check-spelling action](https://github.com/marketplace/actions/check-spelling ).
The misspellings have been reported at https://github.com/jsoref/rust-analyzer/actions/runs/4699991040#summary-12751355796
The action reports that the changes in this PR would make it happy: https://github.com/jsoref/rust-analyzer/actions/runs/4699991284#summary-12751356293
closes #14567
2023-04-19 14:05:40 +00:00
Josh Soref
bc7d84c3ce
Spelling
...
* a rule
* access
* after
* amount
* annotations
* assignment
* assist
* associated
* attribute
* borrowed
* built-in type
* clarification
* command
* const
* constructor
* corresponding
* counterparts
* curlies
* dependencies
* deterministic
* diagnostic
* duplicates
* edge
* edited
* efficient
* elsewhere
* execution
* expression
* extensions
* extracted
* fill
* github
* helper
* heuristic
* incomplete
* indent end
* inlay
* invocation
* lifetime
* looking
* maybe
* move
* mutability
* mutable
* necessarily
* necessary
* negative
* nonexistent
* occurred
* offsets
* offsetted
* overridden
* parameters
* params
* params_and_where_preds_in_scope
* paredit
* parent
* parentheses
* prepended if
* punctuation
* receive
* receiver
* referring
* repeated
* representing
* semantically
* separately
* shouldnot
* siblings
* similar
* something's
* statement
* struct
* structure
* surprise
* the
* this
* transparent
* unimplemented
* unnamed
* unnecessary
* unneeded
* unreachable
* unterminated
* utilities
* variant
* variants
* visibility
* work around (v)
* workaround
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-19 09:45:55 -04:00
hkalbasi
f05f7ab082
Add minicore smoke test
2023-04-18 17:38:38 +03:30
Lukas Wirth
a2a3fecae3
Option begone part 2
2023-04-16 19:20:48 +02:00
Lukas Wirth
0f4ffaa5af
Fix duplicate eager expansion errors
2023-04-16 19:20:35 +02:00
Lukas Wirth
d1632c2727
Report syntax errors from item level macro expansions
2023-04-16 17:22:06 +02:00