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>
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.~
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.
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>
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] [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.
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>
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.~
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.
bors[bot] [Tue, 12 Feb 2019 14:08:20 +0000 (14:08 +0000)]
Merge #804
804: Fix some typos r=killercup a=killercup
Cherry-picked and updated from my now-closed PR. All credit goes to [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker).