bors[bot]
2c67ca0146
Merge #5387
...
5387: Add --memory-usage to analysis-bench r=matklad a=jonas-schievink
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-07-15 12:07:05 +00:00
Jonas Schievink
9086c8c663
Add --memory-usage to analysis-bench
2020-07-15 12:14:51 +02:00
bors[bot]
6f3c8dc11d
Merge #5345
...
5345: Semantic Highlighting: Emit mutable modifier for 'self' when applicable r=matklad a=Veykril
This PR implements emitting the mutable modifier for the self keyword when applicable for semantic highlighting as mentioned in #5041 . The rendered highlighting test html file:
![firefox_5lbsFNBqsT](https://user-images.githubusercontent.com/3757771/87346245-a5a07280-c551-11ea-9051-e5901255f8c9.png )
As you can see it does not emit the modifier when `self` is not used in a mutable context even if it is declared mutably in the enclosing function. I'm not sure if this is actually something wanted or not.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-07-15 10:00:10 +00:00
bors[bot]
b8b41c5f41
Merge #5354
...
5354: Add opt-in mimalloc feature r=matklad a=ivan
This adds a `mimalloc` feature to use [mimalloc](https://github.com/microsoft/mimalloc ) via [mimalloc_rust](https://github.com/purpleprotocol/mimalloc_rust ), and a corresponding `cargo xtask install --server --mimalloc`.
In my tests on Linux, mimalloc seems to run consistently faster than jemalloc and uses only slightly more memory in `analysis-stats` on chalk. Also, builds with mimalloc produce a binary 3MB smaller than builds with jemalloc.
A summary of `env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/` runs on NixOS master on an Intel 4790K in VMware Workstation:
<table>
<tr>
<td></td><td>self-reported time</td><td>elapsed time</td><td>max RSS</td>
</tr>
<tr><td>glibc 2.30 run 1</td><td>225.1 sec</td><td>3:46.91</td><td>1075208</td></tr>
<tr><td>glibc 2.30 run 2</td><td>228.4 sec</td><td>3:50.13</td><td>1074996</td></tr>
<tr><td>jemalloc run 1</td><td>201.8 sec</td><td>3:23.03</td><td>1055960</td></tr>
<tr><td>jemalloc run 2</td><td>199.2 sec</td><td>3:20.41</td><td>1065040</td></tr>
<tr><td>mimalloc run 1</td><td>188.6 sec</td><td>3:09.77</td><td>1105584</td></tr>
<tr><td>mimalloc run 2</td><td>185.0 sec</td><td>3:06.23</td><td>1108132</td></tr>
<tr><td>mimalloc + lto run 1</td><td>160.7 sec</td><td>2:41.80</td><td>1106076</td></tr>
<tr><td>mimalloc + lto run 2</td><td>162.2 sec</td><td>2:43.31</td><td>1104268</td></tr>
</tr>
</table>
I included an `lto = true; codegen-units = 1` run out of curiosity, this PR doesn't enable it.
<details>
<summary>analysis-stats benchmark runs</summary>
## default
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 333.880345ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 10.176299461s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 214.968806927s, 0b allocated 0b resident
Total: 225.145114417s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 225.34
System time (seconds): 1.49
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:46.91
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1075208
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 6
Minor (reclaiming a frame) page faults: 294711
Voluntary context switches: 365
Involuntary context switches: 3273
Swaps: 0
File system inputs: 2904
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 332.711598ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.895020518s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 218.5001697s, 0b allocated 0b resident
Total: 228.39519833s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 228.26
System time (seconds): 1.75
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:50.13
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1074996
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 9
Minor (reclaiming a frame) page faults: 294748
Voluntary context switches: 330
Involuntary context switches: 1561
Swaps: 0
File system inputs: 12608
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
## jemalloc
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.11s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 356.090374ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 10.176550183s, 439mb allocated 465mb resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 191.607201827s, 993mb allocated 1036mb resident
Total: 201.783937913s, 993mb allocated 1036mb resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 201.07
System time (seconds): 1.89
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:23.03
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1055960
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 357755
Voluntary context switches: 240
Involuntary context switches: 1889
Swaps: 0
File system inputs: 256
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 317.917622ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.902142185s, 439mb allocated 463mb resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 189.295317017s, 993mb allocated 1046mb resident
Total: 199.197555943s, 993mb allocated 1046mb resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 198.64
System time (seconds): 1.67
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:20.41
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1065040
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 369013
Voluntary context switches: 243
Involuntary context switches: 2835
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
## mimalloc
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.12s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 332.116806ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.796643695s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 178.82132362s, 0b allocated 0b resident
Total: 188.617975605s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 187.70
System time (seconds): 1.97
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:09.77
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1105584
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 296481
Voluntary context switches: 222
Involuntary context switches: 1868
Swaps: 0
File system inputs: 256
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.13s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 320.046776ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.287690124s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 175.710939697s, 0b allocated 0b resident
Total: 184.998640033s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 184.38
System time (seconds): 1.81
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:06.23
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1108132
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 297055
Voluntary context switches: 374
Involuntary context switches: 2374
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
## mimalloc + lto
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.11s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 369.600196ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 7.572726834s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 153.090899101s, 0b allocated 0b resident
Total: 160.663635235s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 160.01
System time (seconds): 1.70
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:41.80
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1106076
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 1
Minor (reclaiming a frame) page faults: 296610
Voluntary context switches: 209
Involuntary context switches: 2798
Swaps: 0
File system inputs: 8
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 334.630658ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 7.71699197s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 154.50351318s, 0b allocated 0b resident
Total: 162.220513775s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 161.52
System time (seconds): 1.74
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:43.31
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1104268
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 296183
Voluntary context switches: 200
Involuntary context switches: 1666
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
</details>
Co-authored-by: Ivan Kozik <ivan@ludios.org>
2020-07-15 09:43:08 +00:00
Aleksey Kladov
fac1b0def1
Off by one error when determining the active param
...
closes #3615
2020-07-15 10:14:23 +02:00
Aleksey Kladov
1f411f87ea
Refactor CallInfo tests
2020-07-15 10:09:10 +02:00
Ivan Kozik
6710856c10
Add opt-in mimalloc feature
2020-07-14 20:57:51 +00:00
Jonas Schievink
fdce4d9f51
Add FIXME
2020-07-14 20:27:48 +02:00
Jonas Schievink
05a9f377ec
Update ItemTree snapshots
2020-07-14 20:27:48 +02:00
Jonas Schievink
a09d483802
Thread varargs through r-a
2020-07-14 20:27:47 +02:00
Jonas Schievink
a4a8406c44
ItemTree: Lower tuple types despite invalid type
2020-07-14 19:57:41 +02:00
Aleksey Kladov
d47834ee1b
Guard against infinite macro expansions
...
closes #4463
2020-07-14 18:31:48 +02:00
bors[bot]
ff6cf4f849
Merge #5377
...
5377: Fix classify_name_ref on multi-path macro calls r=matklad a=jonas-schievink
Previously, "go to definition" on `log<|>::info!(...)` would go to the `info!` macro, not to the `log` crate. This fixes that.
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com>
2020-07-14 15:46:01 +00:00
bors[bot]
408b5fafc5
Merge #5375
...
5375: Use more explicit type for save registration r=matklad a=kjeremy
This was introduced in the latest lsp-types
Co-authored-by: kjeremy <kjeremy@gmail.com>
2020-07-14 15:26:10 +00:00
Jonas Schievink
2163ceb7ef
Fix classify_name_ref on multi-path macro calls
2020-07-14 17:23:33 +02:00
kjeremy
2257a48cd3
Use more explicity type for save registration
2020-07-14 11:03:44 -04:00
Aleksey Kladov
b9070cc64e
Refactor the test of diagnostic tests
2020-07-14 16:44:20 +02:00
Aleksey Kladov
dc2094cfa5
Minor, push allocations down
2020-07-14 15:57:10 +02:00
bors[bot]
ebb4d29d69
Merge #5371
...
5371: Allow multiline annotations r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-14 12:58:34 +00:00
Aleksey Kladov
abeb003df4
Allow multiline annotations
2020-07-14 14:58:10 +02:00
Aleksey Kladov
92c5036a7c
Merge pull request #5370 from matklad/parens
...
Don't duplicate parens in patterns
2020-07-14 14:39:46 +02:00
Aleksey Kladov
0b0865ab22
Generaize annotation extraction
2020-07-14 14:01:54 +02:00
Aleksey Kladov
f7f4ea633b
Don't duplicate parens in patterns
2020-07-14 13:51:43 +02:00
Aleksey Kladov
f823386db8
Add mark
2020-07-14 13:46:29 +02:00
bors[bot]
83271f9b99
Merge #5367
...
5367: missing impl members: remove assoc. type bounds r=matklad a=jonas-schievink
Previously "Add missing impl members" would paste bounds on associated types into the impl, which is not allowed. This removes them before pasting the item.
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com>
2020-07-14 11:37:28 +00:00
Jonas Schievink
85f5cbc9dc
Move remove_bounds to edit.rs
2020-07-14 13:33:37 +02:00
bors[bot]
735baad6ce
Merge #5368
...
5368: Compress match checking tests r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-14 11:13:58 +00:00
Aleksey Kladov
b031899dac
Compress match checking tests
2020-07-14 13:12:55 +02:00
Jonas Schievink
0f654b06ab
missing impl members: remove assoc. type bounds
2020-07-14 13:12:16 +02:00
Aleksey Kladov
af6984f6a6
Data-driven diagnostics tests
2020-07-14 12:05:50 +02:00
bors[bot]
0f8af1b824
Merge #5355
...
5355: Add a license field to all the crates r=matklad a=JohnTitor
Some are unnecessary but it's okay to have it, I think.
cc https://github.com/rust-lang/rust/issues/74269
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-07-14 09:18:17 +00:00
Aleksey Kladov
7b2ce1a54f
Reduce visibility
2020-07-14 11:09:41 +02:00
Aleksey Kladov
b2390f10fa
Cleanup visibility
2020-07-14 10:52:18 +02:00
Aleksey Kladov
19450534cf
Cleanup hir diagnostics API
2020-07-14 10:28:55 +02:00
Aleksey Kladov
1fdbf81181
Consolidate hir diagnostics code in one place
2020-07-14 10:18:08 +02:00
Aleksey Kladov
c6f3540121
Use relaxed ordering for marks
...
We dont' need this for perf. `Relaxed` ordering is enough here, as we
only have one location. I prefer to use minimal ordering, because that
makes it easier to reason about the code.
2020-07-14 09:04:11 +02:00
Yuki Okushi
6f423466d1
Add a license field to all the crates
2020-07-14 10:57:26 +09:00
kjeremy
aa598ecb75
Filter assists
2020-07-13 17:41:47 -04:00
Lukas Wirth
91b35d8827
Semantic Highlighting: Emit mutable modifier for 'self' when applicable
2020-07-13 21:39:01 +02:00
Aleksey Kladov
693ac892f2
Don't copy-paste impl_froms
into every crate
2020-07-13 16:21:02 +02:00
Aleksey Kladov
6b4cf5b7d8
Move stdx macros into submodule
2020-07-13 16:21:02 +02:00
Aleksey Kladov
82b025b05a
Reorder imports
2020-07-13 15:40:54 +02:00
bors[bot]
5ca7cd960b
Merge #5331
...
5331: Fix #4966 r=flodiebold a=flodiebold
We add a level of binders when converting our function pointer to Chalk's; we need to remove it again on the way back.
Fixes #4966 .
Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
2020-07-12 20:31:51 +00:00
Florian Diebold
d885f38011
Remove some unnecessary file names
2020-07-12 20:20:31 +02:00
Florian Diebold
c6f53aaaa4
Add test for #4281
...
Fixes #4281 .
2020-07-12 20:20:31 +02:00
Florian Diebold
7e9c4d58f1
Search more efficiently for int/float impls
2020-07-12 20:20:31 +02:00
Florian Diebold
00bda1cafb
Adapt trait object coercion tests to the status quo
2020-07-12 20:20:31 +02:00
Florian Diebold
94f5f69ff4
Use Chalk built-in representation for array types
2020-07-12 20:20:31 +02:00
Florian Diebold
2a4166501d
Remove built-in Unsize impls
...
They exist in Chalk now.
2020-07-12 20:20:31 +02:00
Florian Diebold
71d645101d
Upgrade Chalk
2020-07-12 20:20:31 +02:00
Florian Diebold
c82f5379de
Enable Chalk tracing in hir_ty tests
2020-07-12 20:12:01 +02:00
Florian Diebold
209c492432
Upgrade Chalk
2020-07-12 19:58:34 +02:00
Jeremy Kolb
6a18dbe116
Update lsp-types
2020-07-12 12:28:00 -04:00
Florian Diebold
8a72e40ca9
Fix #4966
...
We add a level of binders when converting our function pointer to Chalk's; we
need to remove it again on the way back.
2020-07-12 15:37:32 +02:00
bors[bot]
70d1b848eb
Merge #5330
...
5330: Fix ignore attribute autocompletion r=matklad a=avrong
Fixes #5232
<img width="273" alt="image" src="https://user-images.githubusercontent.com/6342851/87242025-a4782400-c431-11ea-91b7-5127f9742122.png ">
<img width="238" alt="image" src="https://user-images.githubusercontent.com/6342851/87242044-c96c9700-c431-11ea-8161-f197f8e97ca0.png ">
Co-authored-by: Aleksei Trifonov <avrong@avrong.me>
2020-07-12 09:57:11 +00:00
bors[bot]
28f0171dbd
Merge #5326
...
5326: infer: Add type inference support for Union types r=flodiebold a=otavio
This adds the type inference to Union types and add a small test case
for it, ensuring it keeps working in future.
Fixes : #5277
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
#
Co-authored-by: Otavio Salvador <otavio@ossystems.com.br>
2020-07-12 09:45:37 +00:00
Aleksei Trifonov
e78d468b22
Fix ignore attribute autocompletion
2020-07-12 11:17:15 +03:00
Aleksey Kladov
f48ab3ebeb
Comment decorations
...
closes #4461
2020-07-12 02:23:41 +02:00
Aleksey Kladov
d9fd7ca6a5
change vis works on statics
2020-07-12 01:49:51 +02:00
bors[bot]
49fbd1b625
Merge #5325
...
5325: Update lsp-types to account for new CodeActionKind structure r=kjeremy a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2020-07-11 22:36:53 +00:00
Otavio Salvador
9d114b9707
infer: Add type inference support for Union types
...
This adds the type inference to Union types and add a small test case
for it, ensuring it keeps working in future.
Fixes : #5277
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2020-07-11 19:30:02 -03:00
Jeremy Kolb
8c81465d5b
Update tests
2020-07-11 18:23:08 -04:00
Jeremy Kolb
007812dcae
Update lsp-types to account for new CodeActionKind structure
2020-07-11 17:29:45 -04:00
bors[bot]
02efda91d0
Merge #5324
...
5324: Implementations lens for unions r=matklad a=matklad
closes #4728
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-11 20:53:57 +00:00
Aleksey Kladov
b34cdf7bf4
Implementations lens for unions
...
closes #4728
2020-07-11 22:53:31 +02:00
Aleksey Kladov
b20a6b582b
Rewrite item_tree tests to expect
...
insta review wouldn't update the test, so ...
2020-07-11 22:11:31 +02:00
Aleksey Kladov
66e2266d04
Extern fns are implicitly unsafe
...
closes #4865
2020-07-11 21:53:32 +02:00
Aleksey Kladov
b4443b0398
Bump macro recursion limit in release
2020-07-11 20:01:56 +02:00
Aleksey Kladov
a8891ae3ca
More tight recursion limit when expanding macros in function bodies
...
cc #4944
cc #5317
This doesn't fully close #4944 -- looks like we hit SO in syntax
highlighting, when we use `Semantics::expand_macro`.
Seems like we need to place expansion limit on the macro itself (store
it as a part of MacroCallId?)!
2020-07-11 18:39:49 +02:00
Aleksey Kladov
19f8912506
Minor
2020-07-11 14:57:07 +02:00
Aleksey Kladov
e1d6b7f7c4
Use dedicated semantic highlight tag for parameters
...
closes #5106
2020-07-11 14:51:41 +02:00
bors[bot]
87ddcba05f
Merge #5313
...
5313: no doctests r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-11 11:31:32 +00:00
Aleksey Kladov
847135495f
no doctests
2020-07-11 13:31:02 +02:00
bors[bot]
9e75b39115
Merge #5312
...
5312: Make slow test parallel r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-11 10:57:21 +00:00
Aleksey Kladov
9a3c22bbfd
Make slow test parallel
2020-07-11 12:56:44 +02:00
bors[bot]
ba48c6548c
Merge #5311
...
5311: Fix goto definition for type alias type parameters r=matklad a=matklad
closes https://github.com/rust-analyzer/rust-analyzer/issues/5042
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-11 10:46:25 +00:00
Aleksey Kladov
8c4919c9fd
Fix goto definition for type alias type parameters
...
closes https://github.com/rust-analyzer/rust-analyzer/issues/5042
2020-07-11 12:45:30 +02:00
bors[bot]
45be08c708
Merge #5310
...
5310: Reduce visibility r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-11 10:34:14 +00:00
Aleksey Kladov
3fc4916b53
Reduce visibility
2020-07-11 12:31:50 +02:00
bors[bot]
33ebfa8dcc
Merge #5309
...
5309: Make sure there are no commands in code actions r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-11 09:58:56 +00:00
Aleksey Kladov
0f0c5081c0
Make sure there are no commands in code actions
2020-07-11 11:53:24 +02:00
bors[bot]
6c1546c3a4
Merge #4996
...
4996: Correctly generate new struct field in file containing struct def r=matklad a=TimoFreiberg
WIP because the test doesn't pass.
Testing the fix by hand looked good, although quickfixes seem to not support setting the editor cursor yet, which i think we want for "generate missing defs from usage" fixes.
Co-authored-by: Timo Freiberg <timo.freiberg@gmail.com>
2020-07-11 09:51:31 +00:00
Aleksey Kladov
7f6e5de37c
disable profiling
2020-07-11 03:41:52 +02:00
Aleksey Kladov
5e25000763
Profiling example
2020-07-11 03:41:01 +02:00
Aleksey Kladov
e7ba7f47a7
Profiling tweaks
2020-07-11 03:04:37 +02:00
Aleksey Kladov
e6ea395fb0
Don't show error when speculatively reloading workspace
2020-07-11 01:39:06 +02:00
Aleksey Kladov
a36ff4a100
Speed up completion
2020-07-11 01:26:24 +02:00
Aleksey Kladov
a425d7d871
Simplify
2020-07-10 23:57:10 +02:00
Aleksey Kladov
dac9a4cebd
Don't spawn notify unnecessary
2020-07-10 23:45:07 +02:00
Aleksey Kladov
a1ef6cc553
Optimize VFS processing
2020-07-10 22:30:24 +02:00
Aleksey Kladov
676d2e040d
Sort cargo metadata
...
See https://github.com/rust-lang/cargo/issues/8477
We need this to prevent spurious workspace reloads
2020-07-10 22:30:24 +02:00
Aleksey Kladov
be679a02ab
Add profiling calls
2020-07-10 22:30:24 +02:00
Aleksey Kladov
86bc4d20b3
Also reload when adding new examples, tests, etc
2020-07-10 22:30:24 +02:00
Timo Freiberg
43079ba80d
Correctly generate new struct field in file containing struct def
2020-07-10 19:16:41 +02:00
Aleksey Kladov
a482eb0cd8
Better caret placement when filling match arms
2020-07-10 18:22:04 +02:00
Aleksey Kladov
3558736582
Better name
2020-07-10 17:56:55 +02:00
Aleksey Kladov
2d20c8f218
Don't add braces after struct
...
Unit structs are a thing
2020-07-10 17:42:18 +02:00
Aleksey Kladov
e4983daa5e
Better complete expression keywords
2020-07-10 17:41:43 +02:00
Aleksey Kladov
51dd06566e
Complete params in nested fns
2020-07-10 16:29:14 +02:00
Aleksey Kladov
d02aabe633
Complete parameters more aggressively
2020-07-10 16:07:12 +02:00
Aleksey Kladov
74d376763c
Refresh tests
2020-07-10 16:05:01 +02:00
bors[bot]
9ab59e2162
Merge #5293
...
5293: Automatically reload project info on Cargo.toml changes r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-10 13:35:46 +00:00
Aleksey Kladov
d0a8f6a3eb
Automatically reload project info on Cargo.toml changes
2020-07-10 15:35:15 +02:00
Aleksey Kladov
075380dd56
Look through Arc for goto type definition
2020-07-10 14:42:26 +02:00
Aleksey Kladov
cd4502fd47
Simplify tests
2020-07-10 14:39:05 +02:00
Aleksey Kladov
f4147f6a34
Dont expose ID
2020-07-10 14:11:31 +02:00
Aleksey Kladov
9c54537ecf
Rename
2020-07-10 14:09:31 +02:00
Aleksey Kladov
b85042601d
Goto type definition works for self
2020-07-10 14:08:35 +02:00
bors[bot]
5fa8f8e376
Merge #5286
...
5286: Only take first 500 syntax errors r=jonas-schievink a=yihuang
Too many syntax errors make some editor/ide slow, fix #3434 .
Co-authored-by: yihuang <yi.codeplayer@gmail.com>
2020-07-10 09:33:29 +00:00
yihuang
17ff67dd7e
Only take first 500 syntax errors
...
Too many syntax errors make some editor/ide slow, fix #3434 .
2020-07-10 17:30:57 +08:00
Aleksey Kladov
17edf50e2c
Avoid accidently stumping over config values
2020-07-10 10:07:08 +02:00
Aleksey Kladov
68706b59c9
Don't mess with cursor position when adding hashes
2020-07-09 19:21:41 +02:00
bors[bot]
1fb92d791e
Merge #5284
...
5284: Fold struct literals r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-09 16:49:44 +00:00
Aleksey Kladov
ca8969a104
Fold struct literals
2020-07-09 18:49:17 +02:00
Jonas Schievink
74aa0ab9f7
arg count mismatch: handle tuple ctors
2020-07-09 18:24:02 +02:00
bors[bot]
89c7c55995
Merge #5270
...
5270: Add argument count mismatch diagnostic r=matklad a=jonas-schievink
Closes https://github.com/rust-analyzer/rust-analyzer/issues/4025 .
This currently has one false positive on this line, where `max` is resolved to `Iterator::max` instead of `Ord::max`:
8aa10c00a4/crates/expect/src/lib.rs (L263)
(I have no idea why it thinks that `usize` is an `Iterator`)
TODO:
* [x] Tests
* [x] Improve diagnostic text for method calls
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com>
2020-07-09 15:34:43 +00:00
Jonas Schievink
f4a9d9a00f
Address review comments
2020-07-09 17:33:49 +02:00
Aleksey Kladov
65d9966a4f
Always put config first
2020-07-09 16:12:53 +02:00
Aleksey Kladov
e075e6eef2
Move diagnostics tests to expect
2020-07-09 16:04:29 +02:00
Jonas Schievink
984b6889eb
Add tests
2020-07-09 15:52:10 +02:00
Jonas Schievink
3ce4407dcb
Fix diagnostic for method calls
2020-07-09 15:51:32 +02:00
Jonas Schievink
d04f3604d5
Correctly pluralize message
2020-07-09 15:50:53 +02:00
Jonas Schievink
73327c647d
Remove unnecessary DiagnosticSink handlers
2020-07-09 15:50:35 +02:00
Aleksey Kladov
d70f4f5da5
Add fixmes
2020-07-09 15:41:13 +02:00
Aleksey Kladov
9d0196a491
Simplify
2020-07-09 15:35:52 +02:00
Aleksey Kladov
b398519011
Cleanup diagnostic conversion code
2020-07-09 15:34:37 +02:00
Aleksey Kladov
117392e879
Remove insta from ra_ide
2020-07-09 14:33:57 +02:00
Aleksey Kladov
fb0bc941a5
Cleanup diagnostics tests
2020-07-09 14:33:03 +02:00
Aleksey Kladov
ea68a1d0c9
Reduce code duplication
2020-07-09 13:59:49 +02:00
Jonas Schievink
47d0cf201c
Don't emit diagnostic if there are type errors
2020-07-09 12:41:35 +02:00
Jonas Schievink
63ce2c7b5f
Add argument count mismatch diagnostic
2020-07-09 12:16:29 +02:00
Aleksey Kladov
4399eff2d0
Re-enable IDE features for incomplete impl blocs
2020-07-09 12:14:26 +02:00
Aleksey Kladov
8e1ebbcc13
Simplify
2020-07-09 11:47:27 +02:00
Aleksey Kladov
2aa27d612e
expect should be a dev dep
2020-07-09 10:59:41 +02:00
Aleksey Kladov
b660681a6b
Unify tests
2020-07-09 10:58:56 +02:00
Aleksey Kladov
b9aab22d56
No blank indent
2020-07-09 10:33:32 +02:00
Aleksey Kladov
c66812193e
Prettier rendering
2020-07-09 10:31:12 +02:00
Aleksey Kladov
e7c47eb7f5
Streamline
2020-07-09 10:19:37 +02:00
Aleksey Kladov
3a26752c66
Reduce API
2020-07-09 10:03:28 +02:00
Aleksey Kladov
22269c67b8
Cleanup
2020-07-09 09:56:15 +02:00
Aleksey Kladov
3ef9ef34c6
Reduce API
2020-07-09 09:42:01 +02:00
Aleksey Kladov
ed12bd2791
Rename
2020-07-09 09:39:53 +02:00
Aleksey Kladov
abbb539f97
Refactor hover tests
2020-07-09 00:10:49 +02:00
Aleksey Kladov
9ce9a4ae0d
Simplify tests
2020-07-08 23:06:15 +02:00
Aleksey Kladov
e4b4600752
better language
2020-07-08 22:47:50 +02:00
Aleksey Kladov
e8bb153b19
Add Markup type
2020-07-08 22:37:35 +02:00
Aleksey Kladov
16dcf020c4
simplify
2020-07-08 20:35:54 +02:00
Aleksey Kladov
d74a77efb1
Minimize API
2020-07-08 20:35:54 +02:00
Aleksey Kladov
7238acab78
Dead code
2020-07-08 20:35:54 +02:00
Aleksey Kladov
86aac4303f
Reduce visibility
2020-07-08 19:41:57 +02:00