]>
git.lizzy.rs Git - rust.git/log
Aleksey Kladov [Mon, 18 Feb 2019 11:21:25 +0000 (14:21 +0300)]
move public API to top of the file
Aleksey Kladov [Mon, 18 Feb 2019 11:20:54 +0000 (14:20 +0300)]
remove depedency on ra_arena
Aleksey Kladov [Mon, 18 Feb 2019 11:13:13 +0000 (14:13 +0300)]
remove arena from Roots
we want to move ra_vfs to a new repo, so having fewer deps is useful.
Arena is a thin layer of sugar on top of Vec anyway.
Aleksey Kladov [Mon, 18 Feb 2019 11:05:08 +0000 (14:05 +0300)]
remove useless Arc
bors[bot] [Mon, 18 Feb 2019 09:47:31 +0000 (09:47 +0000)]
Merge #855
855: :arrow_up: deps r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Mon, 18 Feb 2019 09:46:08 +0000 (12:46 +0300)]
drop unused deps
Aleksey Kladov [Mon, 18 Feb 2019 09:36:04 +0000 (12:36 +0300)]
:arrow_up: deps
bors[bot] [Mon, 18 Feb 2019 09:26:24 +0000 (09:26 +0000)]
Merge #854
854: more compact edits in insta r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Mon, 18 Feb 2019 09:23:31 +0000 (12:23 +0300)]
more compact edits in insta
Aleksey Kladov [Mon, 18 Feb 2019 09:05:16 +0000 (12:05 +0300)]
Don't use additional_text_edits API internally
bors[bot] [Mon, 18 Feb 2019 09:13:51 +0000 (09:13 +0000)]
Merge #852
852: Handle != r=flodiebold a=matklad
r? @flodiebold
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Mon, 18 Feb 2019 09:07:47 +0000 (12:07 +0300)]
More orthogonal method naming
bors[bot] [Mon, 18 Feb 2019 07:32:21 +0000 (07:32 +0000)]
Merge #853
853: More compact debug representation for completion r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Mon, 18 Feb 2019 07:31:00 +0000 (10:31 +0300)]
More compact debug representation for completion
Aleksey Kladov [Mon, 18 Feb 2019 07:09:44 +0000 (10:09 +0300)]
handle != operator
bors[bot] [Mon, 18 Feb 2019 06:22:07 +0000 (06:22 +0000)]
Merge #850
850: Handle tuple structs / enum variants properly in type inference r=matklad a=flodiebold
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
bors[bot] [Mon, 18 Feb 2019 06:14:39 +0000 (06:14 +0000)]
Merge #851
851: Enable parsing attributes for generic lifetimes and type parameters r=matklad a=vipentti
Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
Ville Penttinen [Sun, 17 Feb 2019 20:19:21 +0000 (22:19 +0200)]
Enable parsing attributes for generic lifetimes and type parameters
Florian Diebold [Sun, 17 Feb 2019 16:29:51 +0000 (17:29 +0100)]
Handle tuple structs / enum variants properly in type inference
bors[bot] [Sun, 17 Feb 2019 18:47:09 +0000 (18:47 +0000)]
Merge #849
849: Don't render `()` in calls to assoc functions r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
bors[bot] [Sun, 17 Feb 2019 18:39:26 +0000 (18:39 +0000)]
Merge #846
846: WIP: Enable parsing of attributes inside a match block r=matklad a=vipentti
We allow invalid inner attributes to be parsed, e.g. inner attributes that are
not directly after the opening brace of the match block.
Instead we run validation on `MatchArmList` to allow better reporting of errors.
This fixes #845 and works towards #759
Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
Ville Penttinen [Sun, 17 Feb 2019 18:32:10 +0000 (20:32 +0200)]
Remove match_armlist validator
Aleksey Kladov [Sun, 17 Feb 2019 18:30:46 +0000 (21:30 +0300)]
Don't render `()` in calls to assoc functions
bors[bot] [Sun, 17 Feb 2019 18:19:27 +0000 (18:19 +0000)]
Merge #847
847: Refactor vfs r=matklad a=matklad
Some slight refctorings of VFS, in preparation for moving it to a separate repo
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 17 Feb 2019 18:10:40 +0000 (21:10 +0300)]
marginally better names
Aleksey Kladov [Sun, 17 Feb 2019 18:05:33 +0000 (21:05 +0300)]
fix-tests
Aleksey Kladov [Sun, 17 Feb 2019 17:58:28 +0000 (20:58 +0300)]
remove overlay removes overlay
Aleksey Kladov [Sun, 17 Feb 2019 17:54:11 +0000 (20:54 +0300)]
simplify overlay handling
Ville Penttinen [Sun, 17 Feb 2019 17:48:08 +0000 (19:48 +0200)]
Parse only outer_attributes for match arms for now
Aleksey Kladov [Sun, 17 Feb 2019 17:34:01 +0000 (20:34 +0300)]
simplify
Ville Penttinen [Sun, 17 Feb 2019 17:08:34 +0000 (19:08 +0200)]
Enable parsing of attributes inside a match block
We allow invalid inner attributes to be parsed, e.g. inner attributes that are
not directly after the opening brace of the match block.
Instead we run validation on `MatchArmList` to allow better reporting of errors.
Aleksey Kladov [Sun, 17 Feb 2019 17:25:52 +0000 (20:25 +0300)]
rename method
Aleksey Kladov [Sun, 17 Feb 2019 17:25:35 +0000 (20:25 +0300)]
remove duplicated method
Aleksey Kladov [Sun, 17 Feb 2019 17:22:46 +0000 (20:22 +0300)]
hide root config
Aleksey Kladov [Sun, 17 Feb 2019 16:46:55 +0000 (19:46 +0300)]
move roots to a module
bors[bot] [Sun, 17 Feb 2019 15:38:33 +0000 (15:38 +0000)]
Merge #844
844: Refactor find_all_refs to return ReferenceSearchResult r=vipentti a=vipentti
This refactors `find_all_refs` to return a new `ReferenceSearchResult` based on feedback in #839.
There are few questions/notes regarding the refactor:
1. Introducing `NavigationTarget::from_bind_pat` this simply forwards the call to `NavigationTarget::from_named`, could we just expose `from_named` directly as `pub(crate)` ?
2. Added an utility method `NavigationTarget::range` since there were few places where you would use `self.focus_range.unwrap_or(self.full_range)`
3. Implementing `IntoIterator` for `ReferenceSearchResult`. This turns `ReferenceSearchResult` into an iterator over `FileRanges` and allows previous code to mostly stay as it was based on the order that `find_all_refs` previously had (declaration first and then the references). I'm not sure if there is a way of doing the conversion to `IntoIter` without the allocation of a new vector
4. Is it possible to have a binding without a name? I'm not sure if the `NavigationTarget::from_bind_pat` can cause some edge-cases that previously were ok
This fixes #835.
Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
Ville Penttinen [Sun, 17 Feb 2019 15:25:19 +0000 (17:25 +0200)]
Remove leading ::
bors[bot] [Sun, 17 Feb 2019 13:56:22 +0000 (13:56 +0000)]
Merge #843
843: Impl generics r=matklad a=flodiebold
This handles type parameters on impls when typing method calls.
~One remaining problem is that the autoderefs aren't applied during the unification of the method receiver type with the actual receiver type, which means that the type parameters are only correctly inferred if no autoderefs happened.~
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Sun, 17 Feb 2019 13:54:48 +0000 (14:54 +0100)]
Make GenericArgs::from_ast pub(crate)
Florian Diebold [Sun, 17 Feb 2019 13:43:59 +0000 (14:43 +0100)]
Unify with the autorefed/autoderefed receiver type during method resolution
Ville Penttinen [Sun, 17 Feb 2019 11:38:32 +0000 (13:38 +0200)]
Refactor find_all_refs to return ReferenceSearchResult
Florian Diebold [Sat, 16 Feb 2019 22:05:57 +0000 (23:05 +0100)]
Handle generic args for method calls
Florian Diebold [Sat, 16 Feb 2019 21:06:23 +0000 (22:06 +0100)]
Handle impl generics in method calls
Florian Diebold [Sat, 16 Feb 2019 20:21:36 +0000 (21:21 +0100)]
Resolve impl generic params
Florian Diebold [Sat, 16 Feb 2019 20:19:24 +0000 (21:19 +0100)]
Add generic params to impl blocks
Florian Diebold [Sat, 16 Feb 2019 19:29:36 +0000 (20:29 +0100)]
Add a test for impl generics
bors[bot] [Sat, 16 Feb 2019 21:10:26 +0000 (21:10 +0000)]
Merge #842
842: Turn ImplBlock into a copy type just containing IDs r=matklad a=flodiebold
This makes it more like the other code model types.
Also make Module::definition_source/declaration_source return HirFileIds, to
make them more like the other source functions.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Sat, 16 Feb 2019 20:09:58 +0000 (21:09 +0100)]
Turn ImplBlock into a copy type just containing IDs
This makes it more like the other code model types.
Also make Module::definition_source/declaration_source return HirFileIds, to
make them more like the other source functions.
bors[bot] [Sat, 16 Feb 2019 17:01:36 +0000 (17:01 +0000)]
Merge #841
841: Add my emacs configuration r=matklad a=flodiebold
I cleaned up and extended my custom emacs code for RA a bit.
This relies on emacs-lsp instead of eglot, so I didn't want to just add it to the other one. It supports some more things, though.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Sat, 16 Feb 2019 14:24:12 +0000 (15:24 +0100)]
Add my emacs configuration
This relies on emacs-lsp instead of eglot, so I didn't want to just add it to
the other one.
Aleksey Kladov [Sat, 16 Feb 2019 11:43:59 +0000 (14:43 +0300)]
document design guideline
bors[bot] [Sat, 16 Feb 2019 11:29:03 +0000 (11:29 +0000)]
Merge #836
836: auto_import: fix bug when the common path was shorter than both the c… r=matklad a=eulerdisk
Fix bug when the common path was shorter than both the current use and target path.
Wrong 1 (unnecessary self)
```
use std::fmt::nested::Debug;
std::fmt::Display<|>
```
--->
```
use std::fmt::{ self, Display, nested::Debug};
Display<|>
```
Wrong 2 (unnecessary, Debug disappear!!)
```
use std::fmt::Debug;
std::fmt::nested::Display
```
-->
```
use std::fmt::Debug::{ self, nested::Display, };
Display<|>
```
Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
bors[bot] [Fri, 15 Feb 2019 13:17:09 +0000 (13:17 +0000)]
Merge #838
838: Dont slow down everyone else's testing (especially the CI) just for Mac OS X r=matklad a=pnkfelix
The allowance for up to 7 events, and thus requiring anyone with fewer than 7 events to wait for the 3 second timeout, is only relevant to fsevents (i.e. Mac OS X)
Co-authored-by: Felix S. Klock II <pnkfelix@pnkfx.org>
Felix S. Klock II [Fri, 15 Feb 2019 12:26:19 +0000 (13:26 +0100)]
Dont slow down everyone else's testing (especially the CI's Linux) just for OS X.
Namely, the allowance for up to 7 events, and thus requiring anyone
with fewer than 7 events to wait for the 3 second timeout, is only
relevant to fsevents (i.e. Mac OS X)
bors[bot] [Fri, 15 Feb 2019 12:01:27 +0000 (12:01 +0000)]
Merge #837
837: Generalize vfs.rs test to address fsevents timing-dependent behavior. r=matklad a=pnkfelix
Generalize `tests/vfs.rs` processing to address wildly-varying timing-dependent behavior from fsevents (i.e. on Mac OS X).
Fix #734
Co-authored-by: Felix S. Klock II <pnkfelix@pnkfx.org>
Felix S. Klock II [Fri, 15 Feb 2019 11:45:53 +0000 (12:45 +0100)]
Generalize `tests/vfs.rs` processing to address wildly-varying time-dependent behavior on Mac OS X.
bors[bot] [Thu, 14 Feb 2019 22:00:11 +0000 (22:00 +0000)]
Merge #830
830: Fix test_vfs_works failing on Windows due to extra Write events r=pnkfelix a=vipentti
On Windows `notify` generates extra `Write` events for folders, which caused
`process_tasks` to not handle all tasks generated on Windows.
This fixes #827
Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
Andrea Pretto [Thu, 14 Feb 2019 20:33:38 +0000 (21:33 +0100)]
auto_import: fix bug when the common path was shorter than both the current use and target path.
Shorter test names.
bors[bot] [Thu, 14 Feb 2019 18:34:47 +0000 (18:34 +0000)]
Merge #834
834: use better label for &mut ref completion r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Thu, 14 Feb 2019 18:28:23 +0000 (21:28 +0300)]
use better label for &mut ref completion
bors[bot] [Thu, 14 Feb 2019 18:22:19 +0000 (18:22 +0000)]
Merge #833
833: automatically wait for worker threads r=matklad a=matklad
closes #817
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Thu, 14 Feb 2019 18:14:47 +0000 (21:14 +0300)]
simplify
Aleksey Kladov [Thu, 14 Feb 2019 17:43:45 +0000 (20:43 +0300)]
automatically wait for worker threads
closes #817
bors[bot] [Thu, 14 Feb 2019 17:38:51 +0000 (17:38 +0000)]
Merge #831
831: tweak postfix completions r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Thu, 14 Feb 2019 17:18:49 +0000 (20:18 +0300)]
tweak postfix completions
* better label
* add refm for &mut
Aleksey Kladov [Thu, 14 Feb 2019 17:13:39 +0000 (20:13 +0300)]
add ref postfix template
Ville Penttinen [Thu, 14 Feb 2019 16:30:21 +0000 (18:30 +0200)]
Fix test_vfs_works failing on Windows due to extra Write events
On Windows `notify` generates extra `Write` events for folders, which caused
`process_tasks` to not handle all tasks generated on Windows.
This fixes #827
bors[bot] [Thu, 14 Feb 2019 16:14:02 +0000 (16:14 +0000)]
Merge #829
829: Be precise about the argument list r=matklad a=kjeremy
Fixes #812
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
Jeremy Kolb [Thu, 14 Feb 2019 14:15:58 +0000 (09:15 -0500)]
Be precise about the argument list
Fixes #812
bors[bot] [Thu, 14 Feb 2019 09:35:08 +0000 (09:35 +0000)]
Merge #825
825: Remove call to canonicalize in BatchDatabase::load_cargo r=matklad a=vipentti
Instead of using canonicalize, we now join the given path to
`std::env::current_dir()`, which either replaces the path, if the given path is
absolute, or joins the paths.
This fixes #821.
Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
Ville Penttinen [Thu, 14 Feb 2019 08:42:40 +0000 (10:42 +0200)]
Remove call to canonicalize in BatchDatabase::load_cargo
Instead of using canonicalize, we now join the given path to
`std::env::current_dir()`, which either replaces the path, if the given path is
absolute, or joins the paths.
This fixes #821.
bors[bot] [Wed, 13 Feb 2019 21:33:31 +0000 (21:33 +0000)]
Merge #818
818: In `RootConfig::contains`, check against canonicalized version of root path r=matklad a=pnkfelix
In `RootConfig::contains`, check against canonicalized version of root path since OS may hand us data that uses the canonical form rather than the root as specified by the user.
This is a step towards a resolution of issue #734 but does not completely fix the problem there.
Co-authored-by: Felix S. Klock II <pnkfelix@pnkfx.org>
Felix S. Klock II [Wed, 13 Feb 2019 21:31:33 +0000 (22:31 +0100)]
rustfmt
bors[bot] [Wed, 13 Feb 2019 20:14:39 +0000 (20:14 +0000)]
Merge #816
816: Prelude & Edition 2015 import resolution r=matklad a=flodiebold
I implemented the prelude import, but it turned out to be useless without being able to resolve any of the imports in the prelude :sweat_smile: So I had to add some edition handling and handle 2015-style imports (at least the simplified scheme proposed in rust-lang/rust#57745). So now finally `Option` resolves :smile:
One remaining problem is that we don't actually know the edition for sysroot crates. They're currently hardcoded to 2015, but there's already a bunch of PRs upgrading the editions of various rustc crates, so we'll have to detect the edition somehow, or just change the hardcoding to 2018 later, I guess...
~Also currently missing is completion for prelude names, though that shouldn't be hard to add. And `Vec` still doesn't resolve, so I need to look into that.~
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Wed, 13 Feb 2019 19:53:42 +0000 (20:53 +0100)]
Complete names from prelude
Florian Diebold [Wed, 13 Feb 2019 19:42:43 +0000 (20:42 +0100)]
Handle extern crates better, so they work correctly in 2015 edition
(see the removed comment.)
Florian Diebold [Wed, 13 Feb 2019 19:31:27 +0000 (20:31 +0100)]
Make edition handling a bit nicer and allow specifying edition in crate_graph macro
Florian Diebold [Mon, 11 Feb 2019 22:11:12 +0000 (23:11 +0100)]
Resolve 2015 style imports
Florian Diebold [Sun, 10 Feb 2019 21:34:29 +0000 (22:34 +0100)]
Keep track of crate edition
Florian Diebold [Sun, 10 Feb 2019 19:44:34 +0000 (20:44 +0100)]
Import the prelude
bors[bot] [Wed, 13 Feb 2019 16:17:10 +0000 (16:17 +0000)]
Merge #813
813: Add support for container_name in workspace/symbol query r=matklad a=vipentti
Currently this does not fill in the container_info if a type is defined on the top level in a file.
e.g. `foo.rs`
```rust
enum Foo { }
```
`Foo` will have None as the container_name, however
```rust
mod foo_mod {
enum Foo { }
}
```
`Foo` has `foo_mod` as the container_name.
This closes #559
Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
Felix S. Klock II [Wed, 13 Feb 2019 16:16:28 +0000 (17:16 +0100)]
In `RootConfig::contains`, check against canonicalized version of root
path since OS may hand us data that uses that rather than the root as
specified by the user.
Ville Penttinen [Wed, 13 Feb 2019 16:02:18 +0000 (18:02 +0200)]
Fix possible issue where unnamed is_symbol_def would pop stack wrongly
This removes is_symbol_def as unnecessary.
Ville Penttinen [Wed, 13 Feb 2019 15:42:15 +0000 (17:42 +0200)]
Use cloned over map + clone
Ville Penttinen [Wed, 13 Feb 2019 15:28:15 +0000 (17:28 +0200)]
Use clone directly rather than map + clone
Ville Penttinen [Wed, 13 Feb 2019 09:08:25 +0000 (11:08 +0200)]
Remove unnecessary braces
bors[bot] [Wed, 13 Feb 2019 08:26:34 +0000 (08:26 +0000)]
Merge #814
814: auto_import: import in enclosing module by default r=matklad a=eulerdisk
Simpler version of #795
Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
bors[bot] [Tue, 12 Feb 2019 21:05:09 +0000 (21:05 +0000)]
Merge #815
815: Fix another crash r=matklad a=flodiebold
Found while typechecking rustc with better name resolution...
`walk_mut` doing a preorder walk can lead to an infinite recursion when substituting type parameters; postorder is actually what we want.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Mon, 11 Feb 2019 22:01:52 +0000 (23:01 +0100)]
Fix another crash
Andrea Pretto [Tue, 12 Feb 2019 20:14:51 +0000 (21:14 +0100)]
auto_import: import in enclosing module instead of file
Andrea Pretto [Mon, 11 Feb 2019 20:57:38 +0000 (21:57 +0100)]
auto_import: more tests and some refactorings
Ville Penttinen [Tue, 12 Feb 2019 19:47:51 +0000 (21:47 +0200)]
Add support for container_name in workspace/symbol query
bors[bot] [Tue, 12 Feb 2019 19:31:22 +0000 (19:31 +0000)]
Merge #811
811: Filter attributes from the completion details/label r=kjeremy a=lnicola
Before:
![image](https://user-images.githubusercontent.com/308347/
52657254 -
efba9a00 -2f00-11e9-952f-
901910cfc459 .png)
After:
![image](https://user-images.githubusercontent.com/308347/
52657278 -
fb0dc580 -2f00-11e9-9267-
8aff44c93447 .png)
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
Laurențiu Nicola [Tue, 12 Feb 2019 17:58:36 +0000 (19:58 +0200)]
Filter attributes from the completion details/label
bors[bot] [Tue, 12 Feb 2019 17:57:39 +0000 (17:57 +0000)]
Merge #810
810: make token trees eq r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Tue, 12 Feb 2019 17:57:13 +0000 (20:57 +0300)]
make token trees eq
bors[bot] [Tue, 12 Feb 2019 16:11:19 +0000 (16:11 +0000)]
Merge #809
809: what goes bump in the night? r=kjeremy a=kjeremy
Co-authored-by: kjeremy <kjeremy@gmail.com>
bors[bot] [Tue, 12 Feb 2019 16:03:47 +0000 (16:03 +0000)]
Merge #808
808: rename yellow -> syntax_node r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
kjeremy [Tue, 12 Feb 2019 16:03:28 +0000 (11:03 -0500)]
what goes bump in the night?
Aleksey Kladov [Tue, 12 Feb 2019 15:41:57 +0000 (18:41 +0300)]
rename yellow -> syntax_node
why yellow in the first place? Its red + green.