Commit Graph

4883 Commits

Author SHA1 Message Date
Florian Diebold
8fb3cab76c Fix crash for super trait cycles 2019-09-07 16:49:57 +02:00
Florian Diebold
9db34eec20 Fix Chalk environments
The clauses need to be wrapped in `FromEnv` clauses for elaboration (i.e.
things like inferring `T: Clone` from `T: Copy`) to work correctly.
2019-09-07 16:30:37 +02:00
Florian Diebold
a1776b27c7 Use traits from where clauses for method resolution
E.g. if we have `T: some::Trait`, we can call methods from that trait without it
needing to be in scope.
2019-09-07 16:30:31 +02:00
Florian Diebold
d21cdf3c99 Lower Fn(X, Y) -> Z paths 2019-09-07 15:13:05 +02:00
Florian Diebold
60bdb66ef2 Lower bounds on trait definition, and resolve assoc types from super traits 2019-09-07 14:31:43 +02:00
Florian Diebold
4ae4d9c311 Add some more tests 2019-09-07 13:35:41 +02:00
bors[bot]
a73b424e3b
Merge #1783
1783: simplify r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-06 18:57:32 +00:00
Aleksey Kladov
6c11935712 simplify 2019-09-06 21:57:11 +03:00
bors[bot]
3bd99af197
Merge #1781
1781: don't deadlock on shutdown r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-06 17:59:52 +00:00
Aleksey Kladov
219287a14c don't deadlock on shutdown
Specifically, when we tear down IO threads, we should take care to
dispose connection.

closes #1775
2019-09-06 20:58:21 +03:00
bors[bot]
e365236bfb
Merge #1755
1755: feat(docs): add coc-rust-analyzer r=JeanMertz a=fannheyward



Co-authored-by: Heyward Fann <fannheyward@gmail.com>
2019-09-06 16:34:38 +00:00
bors[bot]
1acd9d5540
Merge #1780
1780: add option to disable notify r=matklad a=matklad

This should help if notify uses 100% of CPU. Put

```
{
    "rust-analyzer.useClientWatching": true,
}
```

into `.vscode/settings.json` (or appropriate config of your editor) to use editor's file watching capabilites instead of notify

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-06 14:22:00 +00:00
Aleksey Kladov
28df377759 add option to disable notify 2019-09-06 17:21:29 +03:00
bors[bot]
007737a0e7
Merge #1779
1779: minor r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-06 11:33:37 +00:00
Aleksey Kladov
f477f2516a minor 2019-09-06 14:30:24 +03:00
bors[bot]
2015e8b4d1
Merge #1778
1778: make source_root API more abstract r=matklad a=matklad

bors r+

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-06 11:23:31 +00:00
Aleksey Kladov
9ae455ea52 make source_root API more abstract 2019-09-06 14:21:11 +03:00
bors[bot]
3bdb456d17
Merge #1777
1777: ⬆️ deps r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-06 10:48:27 +00:00
Aleksey Kladov
82d4cc2e7b ⬆️ deps 2019-09-06 13:48:06 +03:00
bors[bot]
4576e6597e
Merge #1772
1772: switch to rustc_lexer crate r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-05 20:12:19 +00:00
Aleksey Kladov
7a9d7dd637 switch to rustc_lexer crate 2019-09-05 23:07:17 +03:00
bors[bot]
419eec3d2f
Merge #1771
1771: Further tweak for macro_use on extern crate r=matklad a=uHOOCCOOHu

Some more tweaks to #1743 to behave more like `rustc`
1. Hoist macros from `#[macro_use] extern crate`, so that they can be used before `extern crate`.
2. Implicit `#[macro_use]` for `prelude` if exists


Co-authored-by: uHOOCCOOHu <hooccooh1896@gmail.com>
2019-09-05 19:50:06 +00:00
bors[bot]
c705fff309
Merge #1770
1770: rename test file to match impl file r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-05 18:54:20 +00:00
bors[bot]
9856096a80
Merge #1769
1769: fix renaming of modules r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-05 18:46:14 +00:00
Aleksey Kladov
5a38a80d1a rename test file to match impl file 2019-09-05 21:43:32 +03:00
Aleksey Kladov
33965f0f3e fix renaming of modules 2019-09-05 21:36:40 +03:00
Aleksey Kladov
3e5f7299e1 move mod resolution to a separate file 2019-09-05 20:27:10 +03:00
bors[bot]
86f5fd602b
Merge #1767
1767: better error recovery for use trees r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-05 16:53:47 +00:00
Aleksey Kladov
b2be998b7b better error recovery for use trees 2019-09-05 19:53:07 +03:00
bors[bot]
edc2016f8b
Merge #1766
1766: always use \n newlines r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-05 14:51:14 +00:00
Aleksey Kladov
8b8a11ded7 always use \n newlines 2019-09-05 17:50:39 +03:00
bors[bot]
566c26cbb1
Merge #1764
1764: close #1763 r=matklad a=ivfranco

Close #1763 for now

Co-authored-by: ivfranco <ivfranco33@outlook.com>
2019-09-05 14:35:57 +00:00
bors[bot]
a5aeae15ed
Merge #1765
1765: cargo update r=kjeremy a=kjeremy

Removes extra `crossbeam-deque` version

Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-09-05 14:24:07 +00:00
kjeremy
b354cfdc6a cargo update 2019-09-05 10:10:53 -04:00
ivfranco
4854408f28 close #1763 2019-09-05 22:04:56 +08:00
uHOOCCOOHu
67d33cc21a
Hoist macros from extern crate with macro_use 2019-09-05 18:50:04 +08:00
uHOOCCOOHu
dec43a0c5d
Consider prelude to be macro_use 2019-09-05 18:50:04 +08:00
bors[bot]
82f3317e2b
Merge #1761
1761: "move type bounds to where clause" assist r=matklad a=viorina



Co-authored-by: Ekaterina Babshukova <ekaterina.babshukova@yandex.ru>
2019-09-05 10:39:35 +00:00
Ekaterina Babshukova
acb89d2be1 add assist to move type bounds to where clause 2019-09-05 13:29:13 +03:00
bors[bot]
6702f5b7b5
Merge #1743
1743: Support `#[macro_use]` on `extern crate` r=matklad a=uHOOCCOOHu

Unfortunately, #1688 is still an issue. My guess is wrong :(

Co-authored-by: uHOOCCOOHu <hooccooh1896@gmail.com>
2019-09-05 09:04:02 +00:00
uHOOCCOOHu
3ff5d7e73c
Fix typo 2019-09-05 12:03:32 +08:00
uHOOCCOOHu
0d23286caf
Let macro_use bypass module scope 2019-09-05 11:46:00 +08:00
bors[bot]
36d7b75c95
Merge #1760
1760: Upgrade Chalk r=matklad a=flodiebold



Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
2019-09-04 11:06:05 +00:00
Florian Diebold
02f4718649 Upgrade Chalk 2019-09-04 13:04:01 +02:00
bors[bot]
09d4af7746
Merge #1758
1758: lsp-types 0.61.0 r=matklad a=kjeremy



Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-09-03 14:54:24 +00:00
kjeremy
cb063a9b30 lsp-types 0.61.0 2019-09-03 10:50:39 -04:00
bors[bot]
bac73ade7f
Merge #1757
1757: Assoc type bindings r=flodiebold a=flodiebold

This adds support for type bindings (bounds like `where T: Iterator<Item = u32>`).

It doesn't yet work in as many situations as I'd like because of some [Chalk problems](https://github.com/rust-lang/chalk/issues/234). But it works in some situations, and will at least not bitrot this way ;)

(part of the problem is that we use `Normalize` to normalize associated types, but produce `ProjectionEq` goals from where clauses, so Chalk can't normalize using the environment; this would be fixed by using `ProjectionEq` for normalization, which I think is the 'proper' way, but then we'd run into those ambiguity problems everywhere...)

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-09-03 12:17:58 +00:00
Florian Diebold
b8c1e402fa Make type walking infrastructure a bit nicer
If/when we switch to using Chalk's Ty, we'll need to replace this by its `Fold`
trait, but I didn't want to import the whole thing just yet.
2019-09-03 14:00:35 +02:00
Florian Diebold
c4fcfa2b0d Properly format impl Trait<Type = Foo> types
It's a bit complicated because we basically have to 'undo' the desugaring, and
the result is very dependent on the specifics of the desugaring and will
probably produce weird results otherwise.
2019-09-03 14:00:35 +02:00
Florian Diebold
741e350d4b Add support for associated type bindings (where Trait<Type = X>) 2019-09-03 14:00:35 +02:00