]>
git.lizzy.rs Git - rust.git/log
bors[bot] [Sun, 23 May 2021 20:48:35 +0000 (20:48 +0000)]
Merge #8948
8948: feat: generate getter assist places the cursor at the generated function r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 23 May 2021 20:22:38 +0000 (23:22 +0300)]
feat: generate getter assist places the cursor at the generated function
bors[bot] [Sun, 23 May 2021 20:40:39 +0000 (20:40 +0000)]
Merge #8950
8950: minor: align import style with styleguide r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 23 May 2021 20:37:07 +0000 (23:37 +0300)]
minor: align import style with styleguide
Aleksey Kladov [Sun, 23 May 2021 20:32:24 +0000 (23:32 +0300)]
fix: reveal snippets
Aleksey Kladov [Sun, 23 May 2021 20:19:00 +0000 (23:19 +0300)]
minimize tests
Aleksey Kladov [Sun, 23 May 2021 20:15:54 +0000 (23:15 +0300)]
remove duplicate tests
Aleksey Kladov [Sun, 23 May 2021 20:13:35 +0000 (23:13 +0300)]
reduce duplication
bors[bot] [Sun, 23 May 2021 17:37:36 +0000 (17:37 +0000)]
Merge #8947
8947: Correctly resolve crate name in use paths when import shadows it r=Veykril a=Veykril
Fixes #7763
bors r+
Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
Lukas Tobias Wirth [Sun, 23 May 2021 17:33:28 +0000 (19:33 +0200)]
Correctly resolve crate name in use paths when import shadows itself
bors[bot] [Sun, 23 May 2021 16:51:09 +0000 (16:51 +0000)]
Merge #8946
8946: Minor: fix comment style r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 23 May 2021 16:50:23 +0000 (19:50 +0300)]
Minor: fix comment style
See https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/style.md#documentation
bors[bot] [Sun, 23 May 2021 14:29:18 +0000 (14:29 +0000)]
Merge #8944
8944: minor: explain why nested `TypeRef` aren't interned r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Sun, 23 May 2021 14:28:23 +0000 (16:28 +0200)]
Explain why nested `TypeRef` aren't interned
bors[bot] [Sun, 23 May 2021 12:40:14 +0000 (12:40 +0000)]
Merge #8940
8940: Give ‘unsafe’ semantic token modifier to unsafe traits r=Veykril a=arzg
Hi! This is my first pull request that touches rust-analyzer itself beyond a search-and-replace, so please tell me if I should change anything or do anything differently. :)
Co-authored-by: Aramis Razzaghipour <aramisnoah@gmail.com>
Aramis Razzaghipour [Sun, 23 May 2021 11:43:23 +0000 (21:43 +1000)]
Give ‘unsafe’ semantic token modifier to unsafe traits
bors[bot] [Sun, 23 May 2021 11:12:45 +0000 (11:12 +0000)]
Merge #8936 #8939
8936: fix: Improve nightly downloads with better local state management r=matklad a=SomeoneToIgnore
When any nightly is downloaded, we store its GitHub release id in the local cache and never invalidate that cache.
Due to this, it was possible to do the following sequence:
* have the nightly locally
* downgrade the extension to any stable version
* observe that despite the `"rust-analyzer.updates.channel": "nightly",` setting, no nightly updates are happening
* on the next day, the actual update happens (given the new nightly is released)
Since it's impossible to install nightly version directly through the VSCode marketplace, any fiddling with dev version results in the same situation: one have to wait for the next nightly release to happen in order to restore the nightly.
This PR
* invalidates the cache eagerly during bootstrap if the current plugin is not nightly
* enforces the release id check for nightly versions only
* fixes the `ctx.globalStoragePath` deprecated API usage
Hopefully, it also helps mysterious non-updated plugins that we encounter from time to time, but hard to tell for sure.
8939: internal: disable debug symbols due to failing windows build r=matklad a=matklad
bors r+
🤖
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 23 May 2021 11:06:25 +0000 (14:06 +0300)]
internal: disable debug symbols due to failing windows build
See https://github.com/rust-lang/rust/issues/85598
bors[bot] [Sun, 23 May 2021 11:03:18 +0000 (11:03 +0000)]
Merge #8938
8938: internal: Fix #8931 r=flodiebold a=flodiebold
- and add some better checking for similar bugs
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Sun, 23 May 2021 11:00:14 +0000 (13:00 +0200)]
Paper over #8931 a bit more
The problem was the skipping of binders in
`resolve_method_call_as_callable`; this still doesn't use the _correct_
substitution, but at least it doesn't return a type with free variables
in it.
Fixes #8931.
Kirill Bulatov [Sun, 23 May 2021 10:57:04 +0000 (13:57 +0300)]
More style fixes
Florian Diebold [Sun, 23 May 2021 10:52:41 +0000 (12:52 +0200)]
Add test for #8931 and better checking
Kirill Bulatov [Sun, 23 May 2021 10:17:09 +0000 (13:17 +0300)]
Style fix
Kirill Bulatov [Sun, 23 May 2021 08:54:03 +0000 (11:54 +0300)]
Don't use a deprecated accessor
Kirill Bulatov [Sun, 23 May 2021 08:51:35 +0000 (11:51 +0300)]
Better releaseId naming
Kirill Bulatov [Sun, 23 May 2021 08:49:34 +0000 (11:49 +0300)]
Remove nightly release id from local storage for stable extensions
Kirill Bulatov [Sun, 23 May 2021 08:28:06 +0000 (11:28 +0300)]
Download nightly extension when configured and run from stable extension version
bors[bot] [Sun, 23 May 2021 07:33:24 +0000 (07:33 +0000)]
Merge #8935
8935: docs(manual): Add rust-tools.nvim to nvim-lsp r=matklad a=simrat39
I'm not sure what to write there but this seems fine
https://github.com/simrat39/rust-tools.nvim/issues/16
Co-authored-by: sim <simrats169169@gmail.com>
sim [Sun, 23 May 2021 04:17:40 +0000 (21:17 -0700)]
docs(manual): Add rust-tools.nvim to nvim-lsp
bors[bot] [Sun, 23 May 2021 01:00:33 +0000 (01:00 +0000)]
Merge #8932
8932: internal: even prettier itemtrees r=jonas-schievink a=jonas-schievink
Extends the ItemTree pretty printer to handle all `Path`s, and to print generic parameters and where-clauses.
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Sun, 23 May 2021 00:51:58 +0000 (02:51 +0200)]
Render where clauses and more generic params
Jonas Schievink [Sat, 22 May 2021 23:00:17 +0000 (01:00 +0200)]
Pretty-print generic parameters
Jonas Schievink [Sat, 22 May 2021 22:37:15 +0000 (00:37 +0200)]
ItemTree: pretty-print all paths
bors[bot] [Sat, 22 May 2021 18:35:02 +0000 (18:35 +0000)]
Merge #8926
8926: internal: Drop uncompressed release artifacts and those following the old naming convention r=matklad a=lnicola
Closes #6996
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
bors[bot] [Sat, 22 May 2021 18:21:02 +0000 (18:21 +0000)]
Merge #8927
8927: internal: try enabling debug info for releases r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 22 May 2021 18:19:48 +0000 (21:19 +0300)]
internal: try enabling debug info for releases
We now compress releases, so let's check if debug info is light enough
to actually ship to users. Getting line numbers back would be helpful!
Laurențiu Nicola [Sat, 22 May 2021 17:23:03 +0000 (20:23 +0300)]
Drop uncompressed release artifacts and those following the old naming convention
bors[bot] [Sat, 22 May 2021 14:41:21 +0000 (14:41 +0000)]
Merge #8924
8924: Add last remaining module docstring r=flodiebold a=flodiebold
That was easier than expected.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Sat, 22 May 2021 14:39:19 +0000 (16:39 +0200)]
Add last remaining module docstring
bors[bot] [Sat, 22 May 2021 14:20:42 +0000 (14:20 +0000)]
Merge #8923
8923: Add even more docs r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 22 May 2021 14:20:22 +0000 (17:20 +0300)]
Add even more docs
bors[bot] [Sat, 22 May 2021 13:54:13 +0000 (13:54 +0000)]
Merge #8922
8922: Add more docs r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 22 May 2021 13:53:47 +0000 (16:53 +0300)]
Add more docs
bors[bot] [Sat, 22 May 2021 13:30:32 +0000 (13:30 +0000)]
Merge #8868
8868: internal: replace AstTransformer with mutable syntax trees r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 22 May 2021 13:23:07 +0000 (16:23 +0300)]
use more precise name
bors[bot] [Sat, 22 May 2021 12:32:12 +0000 (12:32 +0000)]
Merge #8921
8921: Resolve any lifetime variables to 'static after inference r=flodiebold a=flodiebold
Chalk's unification can sometimes create lifetime variables, which we
currently don't really deal with, but at least we don't want to leak
them outside of inference.
Should fix #8919.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Aleksey Kladov [Tue, 18 May 2021 11:42:41 +0000 (14:42 +0300)]
internal: replace AstTransformer with mutable syntax trees
Florian Diebold [Sat, 22 May 2021 12:25:58 +0000 (14:25 +0200)]
Resolve any lifetime variables to 'static after inference
Chalk's unification can sometimes create lifetime variables, which we
currently don't really deal with, but at least we don't want to leak
them outside of inference.
Should fix #8919.
bors[bot] [Sat, 22 May 2021 12:26:40 +0000 (12:26 +0000)]
Merge #8901
8901: fix: `fill_match_arms` hangs on a tuple of large enums r=matklad a=iDawer
+ Lazy computation of missing arms.
+ Convenience function to test lazy computation: `ide_assists::tests::check_assist_unresolved`.
Fixes #8835
Co-authored-by: Dawer <7803845+iDawer@users.noreply.github.com>
bors[bot] [Sat, 22 May 2021 00:31:17 +0000 (00:31 +0000)]
Merge #8918
8918: fix: fix hang caused by non-unique attribute IDs r=jonas-schievink a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8905 (again)
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Sat, 22 May 2021 00:30:03 +0000 (02:30 +0200)]
Work around non-unique AttrIds
bors[bot] [Fri, 21 May 2021 23:18:19 +0000 (23:18 +0000)]
Merge #8916
8916: ItemTree pretty-printing r=jonas-schievink a=jonas-schievink
This adds a printer for `ItemTree` contents, and a few tests to ensure that `ItemTree` lowering works like we expect it to. It also adds a new "Debug ItemTree" command that can be used to see the `ItemTree` of the currently open file. The pretty-printed output is usually close enough to Rust syntax that we can even use Rust syntax highlighting.
This is similar to the old `ItemTree` tests we had, but produces significantly more readable output, so these should actually carry their weight.
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Fri, 21 May 2021 22:11:54 +0000 (00:11 +0200)]
Use `.rs` file ending to get syntax highlighting
Jonas Schievink [Fri, 21 May 2021 22:03:36 +0000 (00:03 +0200)]
Update lsp-extensions.md
Jonas Schievink [Fri, 21 May 2021 21:59:52 +0000 (23:59 +0200)]
Add a "Debug ItemTree" LSP request
Jonas Schievink [Fri, 21 May 2021 21:45:27 +0000 (23:45 +0200)]
Add an ItemTree pretty-printer
Jonas Schievink [Fri, 21 May 2021 21:45:09 +0000 (23:45 +0200)]
impl Display for AttrInput/ImportAlias
bors[bot] [Fri, 21 May 2021 19:08:49 +0000 (19:08 +0000)]
Merge #8914
8914: internal: remove `StructDefKind` r=jonas-schievink a=jonas-schievink
The `Fields` enum already encodes this, so `StructDefKind` is redundant.
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Fri, 21 May 2021 19:08:06 +0000 (21:08 +0200)]
Remove `StructDefKind`
bors[bot] [Fri, 21 May 2021 17:51:53 +0000 (17:51 +0000)]
Merge #8856
8856: Use Chalk for unification r=flodiebold a=flodiebold
- use Chalk's unification, get rid of our own `unify`
- rewrite coercion to not use unification internals and to be more analogous to rustc
- fix various coercion bugs
- rewrite handling of obligations, since the old hacky optimization where we noted when an inference variable changes wasn't possible anymore
- stop trying to deeply resolve types all the time during inference, instead only do it shallowly where necessary
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Fri, 21 May 2021 17:50:18 +0000 (19:50 +0200)]
Clean up visibilities
bors[bot] [Fri, 21 May 2021 16:29:31 +0000 (16:29 +0000)]
Merge #8910
8910: Don't lower extern block in the ItemTree r=jonas-schievink a=jonas-schievink
The ItemTree lowering code used to attach attributes on an `extern {}` block to all the children. This is wrong and causes problems with attribute resolution that manifested as a hang.
This PR treats extern blocks as first-class items in the ItemTree and lowers its contents in the `ModCollector` instead.
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8414#issuecomment-
845607923
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8905
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8909
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Fri, 21 May 2021 16:27:25 +0000 (18:27 +0200)]
Don't lower extern block in the ItemTree
Florian Diebold [Fri, 21 May 2021 16:20:56 +0000 (18:20 +0200)]
Some remaining cleanups
Florian Diebold [Fri, 21 May 2021 16:07:30 +0000 (18:07 +0200)]
Fix test after rebase
Florian Diebold [Fri, 21 May 2021 15:48:15 +0000 (17:48 +0200)]
Record type mismatches for failed coercions in match etc.
Florian Diebold [Fri, 21 May 2021 15:41:20 +0000 (17:41 +0200)]
Refactor expectation handling
So as to not use `TyKind::Error` as "no expectation".
Florian Diebold [Sun, 16 May 2021 18:04:00 +0000 (20:04 +0200)]
Remove TypeVariableTable
Florian Diebold [Sun, 16 May 2021 16:27:17 +0000 (18:27 +0200)]
Deal with goals arising from unification
Florian Diebold [Sun, 16 May 2021 15:56:38 +0000 (17:56 +0200)]
Get rid of resolve_ty_as_possible
Instead use shallow resolving where necessary.
Florian Diebold [Sun, 16 May 2021 13:56:27 +0000 (15:56 +0200)]
Make resolve_ty_shallow return Ty
Florian Diebold [Sun, 16 May 2021 13:50:28 +0000 (15:50 +0200)]
Rework obligation handling
We can't do the easy hack that we did before anymore, where we kept
track of whether any inference variables changed since the last time we
rechecked obligations. Instead, we store the obligations in
canonicalized form; that way we can easily check the inference variables
to see whether they have changed since the goal was canonicalized.
Florian Diebold [Sat, 15 May 2021 21:09:18 +0000 (23:09 +0200)]
Fix another panic
Florian Diebold [Sat, 15 May 2021 20:26:55 +0000 (22:26 +0200)]
Improve debug printing without TLS
Florian Diebold [Sat, 15 May 2021 19:30:40 +0000 (21:30 +0200)]
Fix panic
Florian Diebold [Sat, 15 May 2021 18:28:07 +0000 (20:28 +0200)]
Fix HIR expecting errors to unify with anything
Florian Diebold [Sat, 15 May 2021 18:18:54 +0000 (20:18 +0200)]
Fix compilation of hir and ide crates
Florian Diebold [Sat, 15 May 2021 17:35:12 +0000 (19:35 +0200)]
Fix if/else coercion
Florian Diebold [Sat, 15 May 2021 17:28:58 +0000 (19:28 +0200)]
Make diverging type variables work again
Chalk doesn't know about the `diverging` flag, so we need to instead
propagate it before fully resolving the variables.
Florian Diebold [Sat, 15 May 2021 15:01:27 +0000 (17:01 +0200)]
Fix handling of diverging branches in match coercion
Fixes #7626.
Florian Diebold [Sat, 15 May 2021 14:00:24 +0000 (16:00 +0200)]
Fix coercion of two closures to a function pointer
Fixes #8604.
Florian Diebold [Thu, 13 May 2021 18:31:06 +0000 (20:31 +0200)]
Update tests with expected changes
Florian Diebold [Thu, 13 May 2021 17:44:29 +0000 (19:44 +0200)]
Make type resolver a proper folder, make it resolve consts as well
Florian Diebold [Sun, 9 May 2021 18:06:24 +0000 (20:06 +0200)]
Fix fallback to bound vars in `unify`
Florian Diebold [Sun, 9 May 2021 18:05:43 +0000 (20:05 +0200)]
Better Debug impl for InternedWrapper
Florian Diebold [Sun, 2 May 2021 14:32:42 +0000 (16:32 +0200)]
Temporary fix for unknown expectations
Florian Diebold [Sun, 2 May 2021 14:20:37 +0000 (16:20 +0200)]
Fix warnings & format
Florian Diebold [Sat, 1 May 2021 19:53:10 +0000 (21:53 +0200)]
Rewrite coercion using the new unification
Florian Diebold [Sun, 11 Apr 2021 09:20:45 +0000 (11:20 +0200)]
Remove our unification code, use Chalk's instead
Dawer [Fri, 21 May 2021 06:27:41 +0000 (11:27 +0500)]
Test `fill_match_arms` for lazy computation.
This also adds `ide_assists::tests::check_assist_unresolved` function.
bors[bot] [Thu, 20 May 2021 21:23:20 +0000 (21:23 +0000)]
Merge #8902
8902: fix: Fix code completion not inserting borrow text when client supports InsertAndReplace r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
Lukas Tobias Wirth [Thu, 20 May 2021 21:22:21 +0000 (23:22 +0200)]
Fix code completion not inserting borrow text when client supports InsertAndReplace
Dawer [Thu, 20 May 2021 18:50:27 +0000 (23:50 +0500)]
fix: `fill_match_arms` hangs on a tuple of large enums
Dawer [Thu, 20 May 2021 12:58:18 +0000 (17:58 +0500)]
Compute missing arms lazily.
bors[bot] [Thu, 20 May 2021 18:41:26 +0000 (18:41 +0000)]
Merge #8900
8900: internal: support `#[register_attr]` and `#[register_tool]` r=jonas-schievink a=jonas-schievink
Relatively straightforward since these are crate-local.
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 20 May 2021 18:40:02 +0000 (20:40 +0200)]
Support `#[register_attr]` and `#[register_tool]`
Jonas Schievink [Thu, 20 May 2021 18:18:53 +0000 (20:18 +0200)]
Rename `ignore_attrs_on` to `skip_attrs`
bors[bot] [Thu, 20 May 2021 18:09:12 +0000 (18:09 +0000)]
Merge #8899
8899: minor: Simplify r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 20 May 2021 18:08:39 +0000 (20:08 +0200)]
Simplify
bors[bot] [Thu, 20 May 2021 17:57:06 +0000 (17:57 +0000)]
Merge #8898
8898: internal: resolve derive helpers r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>