]>
git.lizzy.rs Git - rust.git/log
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
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
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>
Jonas Schievink [Thu, 20 May 2021 17:56:04 +0000 (19:56 +0200)]
Refactor name resolution to resolve derive helpers
bors[bot] [Thu, 20 May 2021 16:05:54 +0000 (16:05 +0000)]
Merge #8897
8897: minor: Don't compare ast::Visibility by stringifying r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
Lukas Tobias Wirth [Thu, 20 May 2021 15:27:51 +0000 (17:27 +0200)]
Don't compare ast::Visibility by stringifying
bors[bot] [Thu, 20 May 2021 13:32:45 +0000 (13:32 +0000)]
Merge #8893
8893: Update outdated auto-import documentation r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
Lukas Tobias Wirth [Thu, 20 May 2021 13:29:21 +0000 (15:29 +0200)]
Update outdated auto-import documentation
Jonas Schievink [Thu, 20 May 2021 11:12:29 +0000 (13:12 +0200)]
Rename `unexpanded_macros` to `unresolved_macros`
bors[bot] [Thu, 20 May 2021 08:27:16 +0000 (08:27 +0000)]
Merge #8873
8873: Implement import-granularity guessing r=matklad a=Veykril
This renames our `MergeBehavior` to `ImportGranularity` as rustfmt has it as the purpose of them are basically the same. `ImportGranularity::Preserve` currently has no specific purpose for us as we don't have an organize imports assist yet, so it currently acts the same as `ImportGranularity::Item`.
We now try to guess the import style on a per file basis and fall back to the user granularity setting if the file has no specific style yet or where it is ambiguous. This can be turned off by setting `import.enforceGranularity` to `true`.
Closes https://github.com/rust-analyzer/rust-analyzer/issues/8870
Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
Lukas Tobias Wirth [Thu, 20 May 2021 08:25:04 +0000 (10:25 +0200)]
Check for differing attributes in granularity guessing
bors[bot] [Wed, 19 May 2021 21:35:50 +0000 (21:35 +0000)]
Merge #8889
8889: internal: Track in-scope derive helpers during nameres r=jonas-schievink a=jonas-schievink
...without using them yet
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Wed, 19 May 2021 21:35:09 +0000 (23:35 +0200)]
Track in-scope derive helpers during nameres
bors[bot] [Wed, 19 May 2021 20:10:00 +0000 (20:10 +0000)]
Merge #8888
8888: fix: fix unresolved attribute fallback again r=jonas-schievink a=jonas-schievink
`ModItem`s are per-file, so we have to track the file if we store them in the crate-level `DefCollector`.
Fixes the remaining issue in https://github.com/rust-analyzer/rust-analyzer/pull/8882#issuecomment-
844379170
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Wed, 19 May 2021 20:08:34 +0000 (22:08 +0200)]
Fix unresolved attribute fallback again
bors[bot] [Wed, 19 May 2021 19:07:05 +0000 (19:07 +0000)]
Merge #8885 #8887
8885: internal: greatly simplify eager macro representation r=jonas-schievink a=jonas-schievink
- Share structures with lazy macros, make both use `MacroCallLoc`.
- Remove `intern_eager_expansion`, `EagerCallLoc`, `EagerMacroId`, and *many* matches on `MacroCallId`.
- Make a lot of FIXMEs obsolete since the code no longer distinguishes between eager and lazy macros.
- Add `EagerCallInfo`, which is `Some` for calls to eager macros and holds the argument or expansion result and the included file.
8887: fix: fix derive collection after unresolved attribute fallback r=jonas-schievink a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/pull/8882#issuecomment-
844379170
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Wed, 19 May 2021 19:05:58 +0000 (21:05 +0200)]
Fix derive collection after unresolved attribute fallback
bors[bot] [Wed, 19 May 2021 18:30:36 +0000 (18:30 +0000)]
Merge #8884
8884: fix: add_explicit_type produces invalid code on `@` patterns r=Veykril a=iDawer
In
```rust
let name @ () = ();
```
an explicit type should be inserted after the pattern, not just after the name.
`let` statement defined as `LetStmt = Attr* 'let' Pat (':' Type)? '=' initializer:Expr ';'`
Co-authored-by: Dawer <7803845+iDawer@users.noreply.github.com>
Dawer [Wed, 19 May 2021 18:12:09 +0000 (23:12 +0500)]
add_explicit_type respects `@` patterns
Jonas Schievink [Wed, 19 May 2021 18:23:26 +0000 (20:23 +0200)]
Clarify field name
Jonas Schievink [Wed, 19 May 2021 18:19:08 +0000 (20:19 +0200)]
Simplify eager macro representation
bors[bot] [Wed, 19 May 2021 17:46:38 +0000 (17:46 +0000)]
Merge #8875
8875: fix: false positive "Missing match arm" when an or-pattern has mismatched types r=flodiebold a=iDawer
![Screenshot_20210519_114510](https://user-images.githubusercontent.com/
7803845 /
118768935 -
19e12c00 -b86f-11eb-90c4-
1eed3f2bf57f .jpg)
`InferenceResult` now records pattern type mismatches.
Co-authored-by: Dawer <7803845+iDawer@users.noreply.github.com>
bors[bot] [Wed, 19 May 2021 17:06:49 +0000 (17:06 +0000)]
Merge #8882
8882: internal: resolve attributes in name resolution (minimal version) r=jonas-schievink a=jonas-schievink
Closes https://github.com/rust-analyzer/rust-analyzer/pull/7049
This should not have any observable effect, since we don't attempt to expand attribute macros yet, and I have implemented a fallback that treats items with unresolved attributes as if the attribute wasn't there.
Derive helpers are not yet resolved. `#![register_{attr,tool}]` are not yet supported.
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Wed, 19 May 2021 17:05:03 +0000 (19:05 +0200)]
Rewrite `resolve_imports` to use an iterator
This allows reusing the original vector's allocation
Jonas Schievink [Wed, 19 May 2021 16:56:00 +0000 (18:56 +0200)]
Restructure nameres loop to be a bit clearer
Lukas Tobias Wirth [Tue, 18 May 2021 18:21:47 +0000 (20:21 +0200)]
Replace ImportGranularity::Guess with guessing boolean flag
Jonas Schievink [Wed, 19 May 2021 13:17:57 +0000 (15:17 +0200)]
internal: resolve attributes in name resolution
bors[bot] [Wed, 19 May 2021 12:31:44 +0000 (12:31 +0000)]
Merge #8877
8877: feat: allow clients to feature detect symbol filtering r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
bors[bot] [Wed, 19 May 2021 12:21:21 +0000 (12:21 +0000)]
Merge #8880
8880: fix: prepare_rename failing for modules r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
Lukas Tobias Wirth [Wed, 19 May 2021 12:19:44 +0000 (14:19 +0200)]
Fix prepare_rename failing for modules
Aleksey Kladov [Wed, 19 May 2021 10:28:58 +0000 (13:28 +0300)]
feat: allow clients to feature detect symbol filtering
Dawer [Wed, 19 May 2021 05:57:10 +0000 (10:57 +0500)]
Check patterns for type match recursively.
Dawer [Wed, 19 May 2021 04:23:16 +0000 (09:23 +0500)]
internal: Record mismatches of pattern types.
bors[bot] [Tue, 18 May 2021 19:20:51 +0000 (19:20 +0000)]
Merge #7698
7698: Add new LSP extension for workspace symbol lookup r=matklad a=alcroito
As well as all symbol types (functions, modules).
Remove outdated documentation regarding symbol lookup filtering.
Closes #4881
Co-authored-by: alcroito <placinta@gmail.com>
bors[bot] [Tue, 18 May 2021 19:02:32 +0000 (19:02 +0000)]
Merge #8871
8871: internal: Simplify `DefCollector::resolve_macros` r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Lukas Tobias Wirth [Tue, 18 May 2021 18:21:47 +0000 (20:21 +0200)]
Add ImportGranularity::Guess
Lukas Tobias Wirth [Tue, 18 May 2021 18:10:39 +0000 (20:10 +0200)]
Implement import-granularity guessing
Lukas Tobias Wirth [Tue, 18 May 2021 17:49:15 +0000 (19:49 +0200)]
MergeBehavior -> ImportGranularity
Jonas Schievink [Tue, 18 May 2021 15:51:02 +0000 (17:51 +0200)]
Simplify `DefCollector::resolve_macros`
bors[bot] [Tue, 18 May 2021 02:02:34 +0000 (02:02 +0000)]
Merge #8345
8345: Add pub mod option for UnlinkedFile r=rainy-me a=rainy-me
close #8228
This is a draft that changes `Diagnostic` to contain multiple fixes. Pre analysis is in https://github.com/rust-analyzer/rust-analyzer/issues/8228#issuecomment-
812887085 Because this solution is straightforward so I decided to type it out for discussion.
Currently the `check_fix` is not able to test the situation when multiple fixes available. <del>Also because `Insert 'mod x;'` and `Insert 'pub mod x;'` are so similar, I don't know how to test them correctly and want some suggestions.</del>. I added
`check_fixes` to allow checking mutiple possible fixes.
In additional, instead of append after possible existing `mod y`, I think it's possible to Insert `pub mod x;` after `pub mod y`. Should I implement this too?
Co-authored-by: rainy-me <github@rainy.me>
rainy-me [Mon, 17 May 2021 23:11:07 +0000 (08:11 +0900)]
Add pub mod option for UnlinkedFile
alcroito [Tue, 23 Feb 2021 12:03:31 +0000 (14:03 +0200)]
Add new LSP extension for workspace symbol lookup
The new extension allows filtering of workspace symbool lookup
results by search scope or search kind.
Filtering can be configured in 3 different ways:
- The '#' or '*' markers can be added inline with the symbol lookup
query.
The '#' marker means symbols should be looked up in the current
workspace and any dependencies. If not specified, only current
workspace is considered.
The '*' marker means all kinds of symbols should be looked up
(types, functions, etc). If not specified, only type symbols are
returned.
- Each LSP request can take an optional search_scope or search_kind
argument query parameter.
- Finally there are 2 global config options that can be set for all
requests served by the active RA instance.
Add support for setting the global config options to the VSCode
extension.
The extension does not use the per-request way, but it's useful for
other IDEs.
The latest version of VSCode filters out the inline markers, so
currently the only reasonable way to use the new functionality is
via the global config.
bors[bot] [Mon, 17 May 2021 18:45:29 +0000 (18:45 +0000)]
Merge #8766
8766: Extract function assist will add async if required r=Veykril a=JamieCunliffe
The extract function assist will check for an AWAIT_EXPR or AWAIT_KW in the body and if found, will add async to the generated function.
closes #8232
Co-authored-by: Jamie Cunliffe <Jamie.Cunliffe@outlook.com>
Jamie Cunliffe [Sat, 24 Apr 2021 17:01:36 +0000 (18:01 +0100)]
Extract function assist will add async if required
The extract function assist will check for an AWAIT_EXPR in the body
and if found, will add async to the generated function.
Aleksey Kladov [Mon, 17 May 2021 15:43:20 +0000 (18:43 +0300)]
internal: use more evocative test folder name
Aleksey Kladov [Mon, 17 May 2021 15:37:06 +0000 (18:37 +0300)]
minor: adjust config name
bors[bot] [Mon, 17 May 2021 14:41:56 +0000 (14:41 +0000)]
Merge #8795
8795: Allow semantic tokens for strings to be disabled r=matklad a=djrenren
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7111
Pretty straightforward change, but open to any suggestions if there's a more recommended testing strategy than what I went with.
Co-authored-by: John Renner <john@jrenner.net>
bors[bot] [Mon, 17 May 2021 11:50:09 +0000 (11:50 +0000)]
Merge #8864
8864: Update notify and fst r=kjeremy a=kjeremy
Co-authored-by: kjeremy <kjeremy@gmail.com>
kjeremy [Mon, 17 May 2021 11:49:27 +0000 (07:49 -0400)]
Update notify and fst
bors[bot] [Mon, 17 May 2021 10:16:05 +0000 (10:16 +0000)]
Merge #8858
8858: Ignore macro import from `extern crate self` r=jonas-schievink a=ivan770
Closes #8834
Co-authored-by: ivan770 <leshenko.ivan770@gmail.com>
bors[bot] [Mon, 17 May 2021 09:45:23 +0000 (09:45 +0000)]
Merge #8863
8863: fix: don't add extra whitespace around fields r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Mon, 17 May 2021 09:41:48 +0000 (12:41 +0300)]
fix: don't add extra whitespace around fields
closes #8785
ivan770 [Mon, 17 May 2021 09:37:24 +0000 (11:37 +0200)]
Added cov mark
Aleksey Kladov [Mon, 17 May 2021 09:37:22 +0000 (12:37 +0300)]
minor: add missing tests
bors[bot] [Mon, 17 May 2021 09:04:57 +0000 (09:04 +0000)]
Merge #8862
8862: internal: scalable module structure for fixits r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Mon, 17 May 2021 09:04:17 +0000 (12:04 +0300)]
internal: scalable module structure for fixits
Aleksey Kladov [Mon, 17 May 2021 08:40:34 +0000 (11:40 +0300)]
minor: extract fix to file
bors[bot] [Mon, 17 May 2021 08:23:47 +0000 (08:23 +0000)]
Merge #8861
8861: minor: and one more recipe for ace r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Mon, 17 May 2021 08:22:59 +0000 (11:22 +0300)]
minor: and one more recipe for ace
bors[bot] [Sun, 16 May 2021 19:32:40 +0000 (19:32 +0000)]
Merge #8845
8845: Generate the impl block via generate_trait_impl_text_from_impl r=Veykril a=hi-rustin
Try to close https://github.com/rust-analyzer/rust-analyzer/issues/8827
Co-authored-by: hi-rustin <rustin.liu@gmail.com>
ivan770 [Sun, 16 May 2021 18:05:52 +0000 (20:05 +0200)]
Fix #8834
bors[bot] [Sun, 16 May 2021 17:35:40 +0000 (17:35 +0000)]
Merge #8853
8853: Tag Self in impls as a TypeAlias r=matklad a=Veykril
bors r+
Fixes #4398
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
bors[bot] [Sun, 16 May 2021 17:03:43 +0000 (17:03 +0000)]
Merge #8854
8854: internal: use mutable syntax trees when filling fields r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 16 May 2021 15:10:56 +0000 (18:10 +0300)]
internal: use mutable syntax trees when filling fields
Lukas Wirth [Sun, 16 May 2021 13:11:48 +0000 (15:11 +0200)]
Tag Self in impls as a TypeAlias
Aleksey Kladov [Sun, 16 May 2021 12:14:57 +0000 (15:14 +0300)]
internal: use standard test style
Aleksey Kladov [Sun, 16 May 2021 12:10:18 +0000 (15:10 +0300)]
internal: use mutable trees when filling match arms
Aleksey Kladov [Sun, 16 May 2021 11:18:49 +0000 (14:18 +0300)]
minor: use uniform names
bors[bot] [Sun, 16 May 2021 01:53:12 +0000 (01:53 +0000)]
Merge #8813
8813: Get some more array lengths! r=lf- a=lf-
This is built on #8799 and thus contains its changes. I'll rebase it onto master when that one gets merged. It adds support for r-a understanding the length of:
* `let a: [u8; 2] = ...`
* `let a = b"aaa"`
* `let a = [0u8; 4]`
I have added support for getting the values of byte strings, which was not previously there. I am least confident in the correctness of this part and it probably needs some more tests, as we currently have only one test that exercised that part (!).
Fixes #2922.
Co-authored-by: Jade <software@lfcode.ca>
Jade [Sun, 16 May 2021 01:51:18 +0000 (18:51 -0700)]
Address final feedback
* rename ConstExtension->ConstExt
* refactor a manual construction of a Const
bors[bot] [Sat, 15 May 2021 15:32:54 +0000 (15:32 +0000)]
Merge #8848
8848: Attach comments to ast::Impl r=Veykril a=Veykril
bors r+
Fixes #8847
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Sat, 15 May 2021 15:23:20 +0000 (17:23 +0200)]
Attach comments to ast::Impl
Lukas Wirth [Sat, 15 May 2021 15:22:39 +0000 (17:22 +0200)]
simplify
hi-rustin [Sat, 15 May 2021 13:12:06 +0000 (21:12 +0800)]
Remove attrs
hi-rustin [Sat, 15 May 2021 12:07:32 +0000 (20:07 +0800)]
Address comments and add more tests
Fix tests
Fmt code
hi-rustin [Sat, 15 May 2021 03:29:33 +0000 (11:29 +0800)]
Generate the impl block via generate_trait_impl_text
bors[bot] [Fri, 14 May 2021 23:10:39 +0000 (23:10 +0000)]
Merge #8843
8843: minor: simplify r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Fri, 14 May 2021 23:09:53 +0000 (01:09 +0200)]
simplify