Jonas Schievink
6f579c4862
Always add implicit proc_macro
dependency
2021-08-12 21:42:14 +02:00
bors[bot]
baf1494374
Merge #9807
...
9807: Implicit `Sized` bounds r=iDawer a=iDawer
This should close #8984
`hir_ty`:
- Type parameters, associated types and `impl Trait` are `Sized` by deafault except `Self` in a trait.
- Implicit `Sized` bound is added to end of predicate list. It does not check if such bound is present already. Also it does not track the bound is implicit.
- Allowed ambiguous unsize coercion if Chalk returns definite guidance.
- Allowed ambiguous autoderef if Chalk returns definite guidance.
`hir_def`:
- `ItemTree` pretty printing shows `?Sized` bounds.
`HirDisplay`:
- `impl Trait` with weird bounds rendered correctly.
- `Sized`/`?Sized` bounds are not shown if they are default.
### Perf
`./target/rust-analyzer-baseline_8a843113 -q analysis-stats --memory-usage .`
```
Database loaded: 1.63s, 287minstr, 91mb
crates: 38, mods: 741, decls: 15914, fns: 11835
Item Collection: 26.80s, 73ginstr, 338mb
exprs: 318994, ??ty: 398 (0%), ?ty: 435 (0%), !ty: 174
Inference: 50.28s, 116ginstr, 516mb
Total: 77.08s, 189ginstr, 855mb
```
`./target/rust-analyzer-sized-fixed_ambig_coercion-de074fe6 -q analysis-stats --memory-usage .`
```
Database loaded: 1.63s, 287minstr, 91mb
crates: 38, mods: 741, decls: 15914, fns: 11835
Item Collection: 26.95s, 73ginstr, 338mb
exprs: 318994, ??ty: 398 (0%), ?ty: 435 (0%), !ty: 166
Inference: 96.39s, 234ginstr, 543mb
Total: 123.33s, 307ginstr, 881mb
```
Co-authored-by: Dawer <7803845+iDawer@users.noreply.github.com>
2021-08-12 17:55:29 +00:00
Dawer
6c366ade00
Clean up
2021-08-12 21:20:28 +05:00
Ryan Levick
a5c46e5a88
Factor out return type handling for both function and method
2021-08-12 16:05:32 +02:00
Ryan Levick
0834e05045
Always fall back to focusing on generated function body
2021-08-12 14:56:39 +02:00
Ryan Levick
e8de34b6b3
Use term on label for generating method impl
2021-08-12 14:01:15 +02:00
bors[bot]
1376ece497
Merge #9863
...
9863: feat: Generate default trait fn impl when generating `PartialEq` r=yoshuawuyts a=yoshuawuyts
Implements a default trait function body when generating the `PartialEq` trait for a type. Thanks!
r? `@veykril`
Co-authored-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2021-08-12 10:18:02 +00:00
Yoshua Wuyts
97ec6a27ec
add make::ext::path_from_idents
2021-08-12 12:17:09 +02:00
Yoshua Wuyts
df19895ba6
implement feedback from review
2021-08-12 11:50:01 +02:00
Yoshua Wuyts
8ed24029c1
rm remaining todo comment
2021-08-11 23:30:00 +02:00
Yoshua Wuyts
2fff019b6b
improve codegen
2021-08-11 20:33:13 +02:00
Yoshua Wuyts
6c4a94b03a
finishing touches
2021-08-11 20:04:05 +02:00
Yoshua Wuyts
c4e10c81b9
gen partialeq for tuple enums
2021-08-11 20:01:19 +02:00
Yoshua Wuyts
741e27b414
dedup PartialEq for Record enums
2021-08-11 19:40:47 +02:00
Dawer
de074fe636
Accept ambiguous unsize coercion only if it has definite guidance.
2021-08-11 22:09:32 +05:00
Lukas Wirth
73b7b34f89
Fill out expected type for functional update syntax completion
2021-08-11 18:12:44 +02:00
Lukas Wirth
6045059916
extract_variable handles selection ranges better
2021-08-11 17:52:09 +02:00
Yoshua Wuyts
fc17eb482d
gen PartialEq for Record enums
...
Co-Authored-By: Ryan Levick <rylev@users.noreply.github.com>
2021-08-11 17:15:12 +02:00
bors[bot]
f438dbb100
Merge #9860
...
9860: fix: Fix extract_function tagging params as mut unnecessarily r=Veykril a=Veykril
Fixes #9822
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-08-11 15:10:26 +00:00
Lukas Wirth
6d960ab032
Fix extract_function tagging params as mut unnecessarily
2021-08-11 17:09:51 +02:00
bors[bot]
50617ee5c5
Merge #9856
...
9856: Show type actions on ranged type hover r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-08-11 11:53:25 +00:00
Lukas Wirth
ec443886ea
Show type actions on ranged type hover
2021-08-11 13:52:57 +02:00
Aleksey Kladov
629c68e80d
internal: document that ascription is preferred to a turbo fish
2021-08-11 14:16:15 +03:00
bors[bot]
145b51f9da
Merge #9836
...
9836: Refactor: quick clean-up of iteration idioms in the `vfs` crate r=matklad a=Some-Dood
This PR cleans up some of the iteration idioms used in the `vfs` crate. Most of the changes simply converted `for` loops into their `std::iter::Iterator`-method counterpart. Other changes required some inversion of logic to accommodate for better short-circuiting. Overall, there should be no behavioral changes. If there are any stylistic issues, I will gladly adhere to them and adjust the PR accordingly. Thanks!
Co-authored-by: Basti Ortiz <39114273+Some-Dood@users.noreply.github.com>
2021-08-11 09:54:09 +00:00
bors[bot]
6c80c42c57
Merge #9828
...
9828: Remove dependency on the system graphviz when rendering crate graph r=lnicola a=p32blo
This PR removes the need for having `graphviz` installed on the user system by using the `d3-graphviz` npm package.
The responsibility of rendering the svg output is moved to the extension while the rust side only handles the generation of the dot file.
This change also brings the following additional features:
- Allow zooming the view
- Ctrl+click to reset the zoom
- Adjust the color scheme to dark themes
- Works on any platform without installing graphviz locally
---
I’m not sure if this fits what you had in mind for the crates graph feature but I decided to submit it anyway to see if this is useful to anyone else.
A potential downside might be that it increases the extension size ( haven’t checked) but this feature already required the installation of graphviz on the user side, so the cost is just moved explicitly to the extension.
Feel free to make any suggestion or comments.
Co-authored-by: André Oliveira <p32blo@gmail.com>
2021-08-11 08:30:53 +00:00
Yoshua Wuyts
1cf7af7032
wip enum record/tuple generation
2021-08-10 22:08:14 +02:00
Yoshua Wuyts
65ce87cad8
gen PartialEq for basic enums
2021-08-10 21:05:23 +02:00
Yoshua Wuyts
f8a64c044a
gen PartialEq for structs
2021-08-10 19:49:06 +02:00
Yoshua Wuyts
3cad2c4feb
add partial_eq gen tests
2021-08-10 19:48:50 +02:00
Yoshua Wuyts
20c3b20db3
add make::expr_op
2021-08-10 19:48:32 +02:00
Lukas Wirth
f6d6fda85b
Refine functional update completion some more
2021-08-10 17:03:38 +02:00
Basti Ortiz
0986632c04
Fix: revert strange usage of ?
operator
2021-08-10 22:44:15 +08:00
Basti Ortiz
27605b402e
Fix: prefer the usage of for
loops over fold
2021-08-10 22:40:04 +08:00
Basti Ortiz
0e480a6e9c
Chore: add comments to explicitly express two-step check
...
See https://github.com/rust-analyzer/rust-analyzer/pull/9836#discussion_r685953381
2021-08-10 22:30:08 +08:00
Basti Ortiz
ae1288eeed
Fix: revert complex conditional in Directories::contains_file
...
This reverts commit 6d0336b2e41703254b31f5d9a1358eb7e15cee3f.
2021-08-10 22:25:43 +08:00
André Oliveira
11bbaecca0
Formatting issues
2021-08-10 13:43:57 +00:00
André Oliveira
b29508949d
Remove debug logs
2021-08-10 13:43:57 +00:00
André Oliveira
8a563e4a46
Use local node_modules to allow the graph to load offline
...
- Fix some warnings
2021-08-10 13:43:08 +00:00
André Oliveira
f4f68e62c2
Use d3-graphviz for rendering crates graph on the extension side
2021-08-10 13:40:49 +00:00
bors[bot]
e1dcec0e02
Merge #9846
...
9846: feat: Generate default trait fn impl when generating `Clone` r=Veykril a=yoshuawuyts
Implements a default trait function body when generating the `Clone` trait for a type. Thanks!
r? `@\veykril`
Co-authored-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2021-08-10 13:18:09 +00:00
bors[bot]
f6ef043a88
Merge #9845
...
9845: fix: Do not drop `..Default::default()` completion when typing `..` r=Veykril a=Veykril
cc https://github.com/rust-analyzer/rust-analyzer/issues/9839
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-08-10 13:08:58 +00:00
Lukas Wirth
e729529410
Do not drop ..Default::default()
completion when typing ..
2021-08-10 15:08:35 +02:00
Yoshua Wuyts
2f866974d9
gen clone for tuple enums
2021-08-10 15:07:13 +02:00
Yoshua Wuyts
e0adb39de3
gen clone for record enums
2021-08-10 14:43:20 +02:00
bors[bot]
cb3201188f
Merge #9842
...
9842: fix: Substitute generic types in inline_call r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-08-10 12:40:37 +00:00
Lukas Wirth
7e6eb67f0d
Substitute generic types in inline_call
2021-08-10 14:39:56 +02:00
bors[bot]
a739a579cd
Merge #9841
...
9841: internal: print total size of source code in analysis-stats r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-08-10 12:31:35 +00:00
Aleksey Kladov
a379bd715f
Update crates/rust-analyzer/src/cli/analysis_stats.rs
...
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2021-08-10 15:31:12 +03:00
Aleksey Kladov
5d5d5182c1
internal: print total size of source code in analysis-stats
2021-08-10 15:28:48 +03:00
Yoshua Wuyts
7ddc26aea1
add clone generation for structs and bare enums
2021-08-10 13:55:26 +02:00