bors
3d904e024b
Auto merge of #14286 - Veykril:block-def-tail-mac, r=Veykril
...
fix: Fix block defmap not looking into tail expressions for macro calls
Fixes https://github.com/rust-lang/rust-analyzer/issues/14263
2023-03-08 13:37:47 +00:00
Lukas Wirth
d038892947
fix: Fix block defmap not looking into tail expressions for macro calls
2023-03-08 14:37:27 +01:00
bors
db64f3aa69
Auto merge of #14285 - HKalbasi:mir, r=Veykril
...
Evaluate consts in `path_to_const`
fix #14275
2023-03-08 13:21:10 +00:00
hkalbasi
cf47c15821
Evaluate consts in path_to_const
2023-03-08 16:42:20 +03:30
bors
c9510933a5
Auto merge of #14284 - Veykril:sem-derive-unresolved, r=Veykril
...
fix: Highlight unresolved derives as being unresolved
Fixes https://github.com/rust-lang/rust-analyzer/issues/11350
2023-03-08 12:51:40 +00:00
Lukas Wirth
b6e7cf3201
Highlight unresolved derives as being unresolved
2023-03-08 13:51:14 +01:00
bors
6ebbd48ac0
Auto merge of #14283 - Veykril:error-notifs, r=Veykril
...
Load proc-macros for rustc_private crates
If the client support our server status notification there is no need to show the pop up for workspace fetching failures since that's already going to be shown in the status.
cc https://github.com/rust-lang/rust-analyzer/issues/14193
2023-03-08 12:22:10 +00:00
Lukas Wirth
b4bd27be90
Don't send error notifications for workspace failures if server status is supported
2023-03-08 13:18:44 +01:00
bors
aff6cb0080
Auto merge of #14282 - Veykril:rustc_private-proc-macro, r=Veykril
...
fix: Load proc-macros for rustc_private crates
Fixes https://github.com/rust-lang/rust-analyzer/issues/13591
Verified that this makes things work in the clippy repo (like resolving `sym` things for example)
2023-03-08 12:02:38 +00:00
bors
a9d97b6449
Auto merge of #14248 - XFFXFF:let_else_right_curly_brace, r=Veykril
...
fix: show diagnostic for } token followed by else in let else statement
fix #14221
My thinking is to check if the `expr` after `=` is block like when parse `let ... lese` , and if so, emit error.
2023-03-08 11:47:52 +00:00
Lukas Wirth
c9786484c5
Load proc-macros for rustc_private crates
2023-03-08 12:41:38 +01:00
bors
ecc32c2f85
Auto merge of #14271 - Veykril:ty-diag-err, r=Veykril
...
Don't trigger unresolved method/field diagnostics on types containing errors
2023-03-07 14:25:20 +00:00
Lukas Wirth
d45708fabe
Don't trigger unresolved method/field diagnostics on types containing errors
2023-03-07 15:24:43 +01:00
bors
44ff3c407a
Auto merge of #14232 - HKalbasi:mir, r=Veykril
...
MIR episode 2
This PR adds:
1. `need-mut` and `unused-mut` diagnostics
2. `View mir` command which shows MIR for the body under cursor, useful for debugging
3. MIR lowering for or-patterns and for-loops
2023-03-07 09:49:49 +00:00
XFFXFF
6e97527eae
add is_blocklike func on BlockLike
2023-03-07 17:27:52 +08:00
hkalbasi
bcd7ecb242
Add profiling to mir lower and borrowck query
2023-03-07 12:42:52 +03:30
XFFXFF
98990affe5
add more tests
2023-03-07 08:24:25 +08:00
XFFXFF
995aacfce8
show diagnostic for } token followed by else in let else statement
2023-03-07 08:24:25 +08:00
bors
31c12ec282
Auto merge of #14266 - Veykril:generalize-eager-lazy, r=Veykril
...
feature: Make replace_or_with_or_else assists more generally applicable
2023-03-06 21:41:46 +00:00
Lukas Wirth
0ce06088f8
Fix inlay-hint tests
2023-03-06 22:39:42 +01:00
bors
1bfe96ec66
Auto merge of #14267 - Veykril:experimental-diagnostics, r=Veykril
...
internal: Mark unresolved field, unresolved method and expected function diagnostics experimental
Our type checking is still not good enough for us to have these diagnostics be enabled by default it seems so let's mark them as experimental for now.
2023-03-06 21:26:22 +00:00
Lukas Wirth
34a3187ee8
internal: Mark unresolved field, unresolved method and expected function diagnostics experimental
2023-03-06 22:24:38 +01:00
Lukas Wirth
199bc82ce8
feature: Make replace_or_with_or_else assists more generally applicable
2023-03-06 22:17:30 +01:00
hkalbasi
2cce9dc3e9
Make unused_mut
diagnostic experimental
2023-03-06 21:09:09 +03:30
hkalbasi
af90ec8096
Partially support "overloaded deref" MIR lowering
2023-03-06 21:09:09 +03:30
hkalbasi
bf0f99f15d
Fix overloaded deref unused mut false positive
2023-03-06 21:09:09 +03:30
hkalbasi
6377d50bd1
Support "for loop" MIR lowering
2023-03-06 21:09:09 +03:30
hkalbasi
ac04bfd7a7
Add View Mir
command and fix some bugs
2023-03-06 21:09:09 +03:30
hkalbasi
a25710b0c0
Add need-mut
and unused-mut
diagnostics
2023-03-06 21:09:08 +03:30
hkalbasi
c0a0664d12
Support "or patterns" MIR lowering
2023-03-06 21:09:08 +03:30
hkalbasi
61ad6a96ad
Add BindingId
2023-03-06 21:09:08 +03:30
bors
a360fab9a3
Auto merge of #14261 - Veykril:ty-perf, r=Veykril
...
internal: Re-use the resolver in `InferenceContext` instead of rebuilding it whenever needed
This reduced inference time on my local build by roughly ~1 sec (out of like 60)
2023-03-06 10:54:27 +00:00
bors
900efbefdd
Auto merge of #14260 - Veykril:if-let-match-adjust, r=Veykril
...
fix: Adjust `replace_match_with_if_let` applicability range
It currently trigger in the entirety of match which is less than ideal
2023-03-06 10:36:26 +00:00
bors
0a956ec932
Auto merge of #14255 - HKalbasi:const-hex, r=HKalbasi
...
Bring back the hex in const hover
2023-03-05 16:27:48 +00:00
Lukas Wirth
7be48ac32c
Adjust replace_match_with_if_let applicability range
2023-03-05 16:52:07 +01:00
Lukas Wirth
d8b1ec6a25
Remove unnecessary option wrapping
2023-03-05 15:43:02 +01:00
Lukas Wirth
27fad2ad75
Lift segment check out of the loop in resolve_path_in_value_ns
2023-03-05 15:42:40 +01:00
Lukas Wirth
a51267c5e0
Allocate traits in scope upfront when type checking instead of recollecting them everytime
2023-03-05 15:04:46 +01:00
Lukas Wirth
a8606e5363
Re-use the resolver in InferenceContext instead of rebuilding it on every expression change
2023-03-05 14:37:44 +01:00
hkalbasi
ae8ce99d97
Bring back the hex in const hover
2023-03-05 13:53:49 +03:30
bors
15b867b5db
Auto merge of #101550 - CraftSpider:link-dead-windows, r=wesleywiser
...
Make compressed rmeta contain compressed data length after header
Fixes #90056 , which is caused by link.exe introducing padding to the `.rustc` section, since it assumes this will have no effect besides allowing it to possibly use the extra space in future links.
2023-03-05 02:00:58 +00:00
bors
e6ba791dce
Auto merge of #14252 - Veykril:field-mcall-fallback, r=Veykril
...
internal: Handle fields called as method calls as the fields they resolve to
Confusing PR title tbf but this makes it so `bar` in `foo.bar()` resolves to the field if it exists and no method with the same name exists. Improves UX slightly when incorrectly calling a field.
2023-03-04 19:35:03 +00:00
Lukas Wirth
5a91f015b4
internal: Handle fields called as method calls as the fields they resolve to
2023-03-04 20:33:28 +01:00
bors
94dc7a3eb0
Auto merge of #14251 - Veykril:ty-expr-stmt, r=Veykril
...
internal: Set expectation for no-semi expression statements to unit
2023-03-04 19:01:47 +00:00
Lukas Wirth
b85e2af898
Correctly handle non-semi statement expressions for never coercions
2023-03-04 19:48:03 +01:00
Lukas Wirth
95c4cb991f
Handle new hir block kinds in scope calculations
2023-03-04 15:22:39 +01:00
Lukas Wirth
b8276481e7
Fix extract_variable test
2023-03-04 14:58:58 +01:00
Lukas Wirth
1b5bc83118
Remove weird nesting of effect blocks in hir
2023-03-04 14:45:57 +01:00
Lukas Wirth
24ba1bed04
Set expectation for no-semi expression statements to unit
2023-03-04 12:48:57 +01:00
bors
5efcfe5ca9
Auto merge of #14244 - Veykril:metrics, r=lnicola
...
internal: Report type metrics for patterns
```
❯ cargo run --release -p rust-analyzer -q analysis-stats --memory-usage .
Database loaded: 2.09s, 218mb (metadata 275.07ms, 21mb; build 1.29s, 504kb)
crates: 44, mods: 916, decls: 19582, fns: 14631
Item Collection: 14.33s, 472mb
exprs: 420422, ??ty: 68 (0%), ?ty: 141 (0%), !ty: 1
pats: 82968, ??ty: 11 (0%), ?ty: 10 (0%), !ty: 178
Inference: 47.84s, 745mb
Total: 62.16s, 1217mb
```
We currently have 178 mismatches on r-a itself
2023-03-04 08:31:20 +00:00