bors[bot]
f59cd1a4a0
Merge #1515
...
1515: Trait environment r=matklad a=flodiebold
This adds the environment, i.e. the set of `where` clauses in scope, when solving trait goals. That means that e.g. in
```rust
fn foo<T: SomeTrait>(t: T) {}
```
, we are able to complete methods of `SomeTrait` on the `t`. This affects the trait APIs quite a bit (since every method that needs to be able to solve for some trait needs to get this environment somehow), so I thought I'd do it rather sooner than later ;)
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-07-09 07:50:18 +00:00
bors[bot]
35f28c538a
Merge #1512
...
1512: Infer ? operator r=unrealhoang a=unrealhoang
Logical continuation of https://github.com/rust-analyzer/rust-analyzer/pull/1501
cc https://github.com/rust-analyzer/rust-analyzer/issues/1426
Co-authored-by: Unreal Hoang <unrealhoang@gmail.com>
2019-07-09 00:41:03 +00:00
Unreal Hoang
9a0d4b16b7
beautify tests
2019-07-09 09:27:03 +09:00
Florian Diebold
9afbf2dff4
Unify normalize
and implements
to simplify code
2019-07-08 21:47:37 +02:00
Florian Diebold
15862fc041
Use environment for associated type normalization as well
2019-07-08 21:20:17 +02:00
Florian Diebold
b1b12072ed
Start handling environment in trait resolution
...
I.e. if we are inside a function with some where clauses, we assume these where
clauses hold.
2019-07-08 21:20:17 +02:00
Florian Diebold
638100dc8b
Refactor a bit & introduce Environment struct
2019-07-08 21:20:17 +02:00
bors[bot]
ecdc6cdce9
Merge #1514
...
1514: Better completions for floating point primitive types r=flodiebold a=marcogroppo
After #1499 completions for (some of) the inherent methods of `f32` and `f64` are now working.
Unfortunately during method resolution we were only looking for the `f32` and `f64` language items defined in `libcore` and we were ignoring the methods defined in `libstd`.
This PR fixes this issue.
Co-authored-by: Marco Groppo <marco.groppo@gmail.com>
2019-07-08 19:18:49 +00:00
Marco Groppo
95d78a8d8d
Look for the fXX_runtime lang items during method resolution.
2019-07-08 20:37:29 +02:00
Unreal Hoang
741fc8fbfc
use namespaced consts for KnownName
2019-07-09 01:00:47 +09:00
bors[bot]
3210002201
Merge #1513
...
1513: Remove unused dependencies r=matklad a=sinkuu
Co-authored-by: Shotaro Yamada <sinkuu@sinkuu.xyz>
2019-07-08 15:44:33 +00:00
Shotaro Yamada
a426de60ad
Remove unused dependencies
2019-07-09 00:28:00 +09:00
Unreal Hoang
944f71afc6
projection over std::ops::Try::Ok to infer try/?
2019-07-09 00:19:09 +09:00
bors[bot]
64b718bff7
Merge #1511
...
1511: Send old-style responsed to goto definition unless the client explicitelly opts in r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-07-08 12:32:16 +00:00
Aleksey Kladov
e075e096cf
don't send LocationLink unless the client opts-in
...
closes #1474
2019-07-08 14:09:38 +03:00
Aleksey Kladov
b042faeb64
simplify
2019-07-08 13:47:02 +03:00
Aleksey Kladov
227bc0b6d4
add try_conv_with_to_vec
2019-07-08 13:39:16 +03:00
bors[bot]
5ce2b4819e
Merge #1504
...
1504: Simplify LSP handlers r=matklad a=kjeremy
Takes advantage of protocol inheritance via composition and simplifies some responses via the `From`/`Into` traits.
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-07-08 09:55:23 +00:00
bors[bot]
5b19825e37
Merge #1507
...
1507: Constify KnownName's r=matklad a=mominul
Closes #1503
Co-authored-by: Muhammad Mominul Huque <mominul2082@gmail.com>
2019-07-08 08:29:19 +00:00
Muhammad Mominul Huque
09b72489dd
cargo format
2019-07-08 04:09:35 +06:00
bors[bot]
a4316d6c63
Merge #1506
...
1506: Update memchr r=kjeremy a=kjeremy
New release has some performance improvements.
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-07-07 21:45:19 +00:00
Jeremy Kolb
8d3d6d5a84
Update memchr
2019-07-07 17:42:24 -04:00
Muhammad Mominul Huque
012fec54dc
Constify KnownName's
2019-07-08 03:29:38 +06:00
Jeremy Kolb
9c6e93cd6c
Simplify responses by using into()
2019-07-07 17:28:21 -04:00
Jeremy Kolb
3f44aaf363
use flatten branch of lsp-types
2019-07-07 14:13:13 -04:00
bors[bot]
1b38ca3b87
Merge #1501
...
1501: Infer for loop variable r=flodiebold a=unrealhoang
My take on https://github.com/rust-analyzer/rust-analyzer/issues/1425
Co-authored-by: Unreal Hoang <unrealhoang@gmail.com>
2019-07-07 15:20:09 +00:00
bors[bot]
6c31f5b0a7
Merge #1499
...
1499: processing attribute #[path] of module r=matklad a=andreevlex
support two cases
- simple name file `foo.rs`
- declaration in mod.rs
#1211
Co-authored-by: Alexander Andreev <andreevlex.as@gmail.com>
2019-07-07 13:48:58 +00:00
Unreal Hoang
f7cd40d830
add projection to infer for loop variable
2019-07-07 22:26:51 +09:00
Alexander Andreev
1c582be63b
Moved module resolution test in mods.rs
2019-07-07 16:06:54 +03:00
bors[bot]
89bfc59f1a
Merge #1502
...
1502: Use inline snapshots in compelte_postfix r=matklad a=funkill
Relates to #1127
Co-authored-by: funkill2 <funkill2@gmail.com>
2019-07-07 11:24:35 +00:00
funkill2
ca42f621c6
inline snapshot in complete_postfix
2019-07-07 13:52:25 +03:00
Alexander Andreev
8579a9b834
Added support attribute path in resolusion module fn
2019-07-06 21:54:21 +03:00
bors[bot]
fee552d487
Merge #1497
...
1497: bump regex r=kjeremy a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-07-06 17:50:03 +00:00
Jeremy Kolb
57607d6ee4
bump regex
2019-07-06 13:48:11 -04:00
bors[bot]
9dc9a7a3e2
Merge #1496
...
1496: Add trait obligations for where clauses when calling functions/methods r=matklad a=flodiebold
E.g. if we call `foo<T: Into<u32>>(x)`, that adds an obligation that `x: Into<u32>`, etc., which sometimes allows type inference to make further progress.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-07-06 16:28:42 +00:00
Florian Diebold
f854a29c9a
Make EnumVariant a GenericDef and simplify some code
2019-07-06 17:43:13 +02:00
Florian Diebold
065d398701
Add trait obligations for where clauses when calling functions/methods
...
E.g. if we call `foo<T: Into<u32>>(x)`, that adds an obligation that `x:
Into<u32>`, etc.
2019-07-06 17:34:05 +02:00
Alexander Andreev
35a0f04128
Added extract path attribute for current module
...
#1211
2019-07-06 14:04:56 +03:00
Aleksey Kladov
219e0e8c8d
Create FUNDING.yml
2019-07-06 08:33:19 +03:00
bors[bot]
a9dcd2cdca
Merge #1495
...
1495: use correct file for diagnostics r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-07-05 16:43:23 +00:00
Aleksey Kladov
0b5e399190
use correct file for diagnostics
...
closes #1475
2019-07-05 19:40:02 +03:00
bors[bot]
3775e5e27d
Merge #1494
...
1494: properly restrict diagnostics to a single file r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-07-05 16:30:38 +00:00
Aleksey Kladov
fd30ec406b
properly restrict diagnostics to a single file
2019-07-05 19:27:20 +03:00
bors[bot]
feae74e02c
Merge #1493
...
1493: Clippy trivially_copy_pass_by_ref r=matklad a=kjeremy
Clippy says that this is more efficient.
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-07-05 16:07:11 +00:00
Jeremy Kolb
001e34e6e3
Clippy trivially_copy_pass_by_ref
2019-07-05 12:02:32 -04:00
bors[bot]
ec6f71576a
Merge #1491
...
1491: More clippy r=matklad a=kjeremy
A few more clippy changes.
I'm a little unsure of the second commit. It's the trivially_copy_pass_by_ref lint and there are a number of places in the code we could use it if it makes sense.
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-07-05 14:19:12 +00:00
Jeremy Kolb
98d769a799
readability
2019-07-05 10:18:01 -04:00
bors[bot]
3be2d1db6c
Merge #1492
...
1492: Fix clippy::redundant_clone r=matklad a=sinkuu
Co-authored-by: Shotaro Yamada <sinkuu@sinkuu.xyz>
2019-07-05 06:41:09 +00:00
Shotaro Yamada
d0e9cd2bc6
Fix clippy::redundant_clone
2019-07-05 12:45:58 +09:00
Jeremy Kolb
1a950cdbcf
&self -> self
...
https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
2019-07-04 23:01:40 -04:00