]> git.lizzy.rs Git - rust.git/log
rust.git
23 months agoAuto merge of #12662 - DorianListens:dscheidt/extract-function-duplicate-name, r...
bors [Sat, 2 Jul 2022 19:42:17 +0000 (19:42 +0000)]
Auto merge of #12662 - DorianListens:dscheidt/extract-function-duplicate-name, r=DorianListens

fix: Extract Function produces duplicate fn names

This change fixes #10037, in more or less the most naive fashion
possible.

We continue to start with the hardcoded default of "fun_name", and now append a
counter to the end of it if that name is already in scope.

In the future, we can probably apply more heuristics here to wind up with more
useful names by default, but for now this resolves the immediate problem.

23 months agofix: Extract Function produces duplicate fn names
Dorian Scheidt [Thu, 30 Jun 2022 17:17:19 +0000 (12:17 -0500)]
fix: Extract Function produces duplicate fn names

This change fixes issue #10037, in more or less the most naive fashion
possible.

We continue to start with the hardcoded default of "fun_name", and now append a
counter to the end of it if that name is already in scope.

In the future, we can probably apply more heuristics here to wind up with more
useful names by default, but for now this resolves the immediate problem.

23 months agoAuto merge of #12680 - lowr:fix/12428-regression, r=Veykril
bors [Sat, 2 Jul 2022 19:00:49 +0000 (19:00 +0000)]
Auto merge of #12680 - lowr:fix/12428-regression, r=Veykril

fix regressions on assignment expressions

This is a follow-up PR on #12428. I'm not sure if this is everything I overlooked, so if there are more things that are not right, we may want to revert #12428.

This should also fix the increase of the type mismatches and the unknown types in diesel in the [metrics](https://rust-analyzer.github.io/metrics/?start=2022-06-23&end=2022-07-01) introduced by #12428.

The regressions are:

- some coercions don't work in the ordinary (i.e. non-destructuring) assignments

    In order for coercions on ADT fields instantiations to work, lhs type has to be known before inferring rhs. #12428 changed the inference order, making rhs inferred before lhs, breaking the coercion, so I restored the original inference mechanism for the ordinary assignments.

    Note that this kind of coercion doesn't happen in destructuring assigments, because when they are desugared, the struct expression is first assigned to a temporary, which is then assigned to the assignee, which is not coercion site anymore.

- type mismatches on individual identifiers are not reported

23 months agofix: report type mismatch on identifier in destructuring assignments
Ryo Yoshida [Sat, 2 Jul 2022 17:31:07 +0000 (02:31 +0900)]
fix: report type mismatch on identifier in destructuring assignments

23 months agofix: infer lhs first on ordinary assignment expressions
Ryo Yoshida [Sat, 2 Jul 2022 16:57:23 +0000 (01:57 +0900)]
fix: infer lhs first on ordinary assignment expressions

23 months agoAuto merge of #12627 - yue4u:fix/struct-variant-patterns, r=Veykril
bors [Sat, 2 Jul 2022 17:18:24 +0000 (17:18 +0000)]
Auto merge of #12627 - yue4u:fix/struct-variant-patterns, r=Veykril

fix: complete enum variants as patterns in pattern path

close #12593

23 months agoAuto merge of #12679 - a-kenji:fix-typos-hir, r=lnicola
bors [Sat, 2 Jul 2022 15:28:29 +0000 (15:28 +0000)]
Auto merge of #12679 - a-kenji:fix-typos-hir, r=lnicola

fix: typos in hir-ty

23 months agofix: typos in hir-ty
a-kenji [Sat, 2 Jul 2022 15:19:06 +0000 (17:19 +0200)]
fix: typos in hir-ty

2 years agoAuto merge of #12678 - Veykril:flyimport, r=Veykril
bors [Sat, 2 Jul 2022 14:20:36 +0000 (14:20 +0000)]
Auto merge of #12678 - Veykril:flyimport, r=Veykril

fix: Trigger flyimport completions in item lists again

Fixes https://github.com/rust-lang/rust-analyzer/issues/12656

2 years agofix: Trigger flyimport completions in item lists again
Lukas Wirth [Sat, 2 Jul 2022 14:15:13 +0000 (16:15 +0200)]
fix: Trigger flyimport completions in item lists again

2 years agofix: escape for enum variant
yue4u [Sat, 2 Jul 2022 14:17:29 +0000 (23:17 +0900)]
fix: escape for enum variant

2 years agofix: variants rendering in pattern path
yue4u [Sat, 25 Jun 2022 18:33:19 +0000 (03:33 +0900)]
fix: variants rendering in pattern path

2 years agoAuto merge of #12671 - flodiebold:test-for-12669, r=flodiebold
bors [Fri, 1 Jul 2022 17:00:23 +0000 (17:00 +0000)]
Auto merge of #12671 - flodiebold:test-for-12669, r=flodiebold

Add tests for #12669

2 years agoFix case of ignored/broken proc macro
Florian Diebold [Fri, 1 Jul 2022 16:45:09 +0000 (18:45 +0200)]
Fix case of ignored/broken proc macro

2 years agoAdd tests for #12669
Florian Diebold [Fri, 1 Jul 2022 14:32:54 +0000 (16:32 +0200)]
Add tests for #12669

2 years agoAuto merge of #12636 - xuhongxu96:fix-12148, r=Veykril
bors [Fri, 1 Jul 2022 14:55:51 +0000 (14:55 +0000)]
Auto merge of #12636 - xuhongxu96:fix-12148, r=Veykril

complete raw identifier with "r#" prefix

Fix #12148

Escape Names and Paths used in `insert_text`/`insert_snippet` while rendering the completion items.

2 years agoAuto merge of #12668 - Veykril:mac-source-map, r=Veykril
bors [Fri, 1 Jul 2022 14:46:48 +0000 (14:46 +0000)]
Auto merge of #12668 - Veykril:mac-source-map, r=Veykril

fix: Simplify macro statement expansion handling

I only meant to fix https://github.com/rust-lang/rust-analyzer/issues/12644 but that somehow turned into a rewrite of the statement handling ... at least this fixes a few more issues in the IDE layer now

2 years agoAuto merge of #12670 - Veykril:assoc-attrs, r=Veykril
bors [Fri, 1 Jul 2022 14:36:56 +0000 (14:36 +0000)]
Auto merge of #12670 - Veykril:assoc-attrs, r=Veykril

fix: Fix attribute macros on assoc items being discarded with disabled proc macros

Fixes https://github.com/rust-lang/rust-analyzer/issues/12669

2 years agoFix blocks not considering stmt without semi as tails
Lukas Wirth [Fri, 1 Jul 2022 13:52:52 +0000 (15:52 +0200)]
Fix blocks not considering stmt without semi as tails

2 years agofix: Fix attribute macros on assoc items being discarded with disabled proc macros
Lukas Wirth [Fri, 1 Jul 2022 14:21:21 +0000 (16:21 +0200)]
fix: Fix attribute macros on assoc items being discarded with disabled proc macros

2 years agoFix Expr::MacroStmts using wrong scopes
Lukas Wirth [Fri, 1 Jul 2022 13:34:29 +0000 (15:34 +0200)]
Fix Expr::MacroStmts using wrong scopes

2 years agoUpdate hir-ty test outputs
Lukas Wirth [Fri, 1 Jul 2022 13:04:58 +0000 (15:04 +0200)]
Update hir-ty test outputs

2 years agofix: Simplify macro statement expansion handling
Lukas Wirth [Fri, 1 Jul 2022 12:43:57 +0000 (14:43 +0200)]
fix: Simplify macro statement expansion handling

2 years agoAuto merge of #12650 - lowr:fix/12591, r=lnicola
bors [Fri, 1 Jul 2022 08:32:04 +0000 (08:32 +0000)]
Auto merge of #12650 - lowr:fix/12591, r=lnicola

fix: improve whitespace insertion in pretty printer

Fixes #12591

The `=>` token in the macro_rules! should be parsed as one fat arrow, but it ["requires a lot of changes in r-a"](https://github.com/rust-analyzer/ungrammar/commit/143cc528b11290bf2463de1fb5a97a15f9b2ed44), so I left it for the larger refactoring in the future and put a FIXME note.

2 years agoAuto merge of #12660 - Veykril:flycheck, r=Veykril
bors [Fri, 1 Jul 2022 08:11:51 +0000 (08:11 +0000)]
Auto merge of #12660 - Veykril:flycheck, r=Veykril

fix: Fix flycheck sending cancel progress with no running process

Fixes #12659

2 years agofix: Fix flycheck sending cancel progress with no running process
Lukas Wirth [Thu, 30 Jun 2022 20:58:57 +0000 (22:58 +0200)]
fix: Fix flycheck sending cancel progress with no running process

2 years agoAuto merge of #12655 - ChayimFriedman2:debug-bench-filter-bin-target, r=flodiebold
bors [Thu, 30 Jun 2022 15:01:42 +0000 (15:01 +0000)]
Auto merge of #12655 - ChayimFriedman2:debug-bench-filter-bin-target, r=flodiebold

Ignore the `bin` artifact for `bench` targets

Just like `test`.

Fixes #12645.

I don't know how to test that.

2 years agoAuto merge of #12634 - iDawer:match-check.witnesses, r=flodiebold
bors [Thu, 30 Jun 2022 14:51:58 +0000 (14:51 +0000)]
Auto merge of #12634 - iDawer:match-check.witnesses, r=flodiebold

feat: Show witnesses of non-exhaustiveness in `missing-match-arm` diagnostic

Shamelessly copied from rustc. Thus reporting format is same.

This extends public api  `hir::diagnostics::MissingMatchArms` with `uncovered_patterns: String` field. It does not expose data for implementing a quick fix yet.

-----
Worth to note: current implementation does not give a comprehensive list of missing patterns. Also mentioned in [paper](http://moscova.inria.fr/~maranget/papers/warn/warn.pdf):

> One may think that algorithm I should make an additional effort to provide more
> non-matching values, by systematically computing recursive calls on specialized
> matrices when possible, and by returning a list of all pattern vectors returned by
> recursive calls. We can first observe that it is not possible in general to supply the
> users with all non-matching values, since the signature of integers is (potentially)
> infinite.

2 years agoAdd static assertions for some unreachble paths
iDawer [Thu, 30 Jun 2022 13:36:05 +0000 (18:36 +0500)]
Add static assertions for some unreachble paths

2 years agoCorrect wording
iDawer [Thu, 30 Jun 2022 12:19:03 +0000 (17:19 +0500)]
Correct wording

2 years agoAuto merge of #12626 - CuriousCorrelation:fix/empty-reasons, r=flodiebold
bors [Thu, 30 Jun 2022 10:19:21 +0000 (10:19 +0000)]
Auto merge of #12626 - CuriousCorrelation:fix/empty-reasons, r=flodiebold

fix: trailing ':' on empty inactive reasons

## Description
Fixes trailing ':' even when there is no explanation. e.g.
``` sh
code is inactive due to #[cfg] directives:
```
## Issue
Fixes: #12615
2 years agoAuto merge of #12428 - lowr:experimental/destructuring-assignment, r=flodiebold
bors [Thu, 30 Jun 2022 09:14:12 +0000 (09:14 +0000)]
Auto merge of #12428 - lowr:experimental/destructuring-assignment, r=flodiebold

feat: implement destructuring assignment

This is an attempt to implement destructuring assignments, or more specifically, type inference for [assignee expressions](https://doc.rust-lang.org/reference/expressions.html#place-expressions-and-value-expressions).

I'm not sure if this is the right approach, so I don't even expect this to be merged (hence the branch name :wink:) but rather want to propose one direction we could choose. I don't mind getting merged if this is good enough though!

Some notes on the implementation choices:

- Assignee expressions are **not** desugared on HIR level unlike rustc, but are inferred directly along with other expressions. This matches the processing of other syntaxes that are desugared in rustc but not in r-a. I find this reasonable because r-a only needs to infer types and it's easier to relate AST nodes and HIR nodes, so I followed it.
- Assignee expressions obviously resemble patterns, so type inference for each kind of pattern and its corresponding assignee expressions share a significant amount of logic. I tried to reuse the type inference functions for patterns by introducing `PatLike` trait which generalizes assignee expressions and patterns.
  - This is not the most elegant solution I suspect (and I really don't like the name of the trait!), but it's cleaner and the change is smaller than other ways I experimented, like making the functions generic without such trait, or making them take `Either<ExprId, PatId>` in place of `PatId`.

in case this is merged:
Closes #11532
Closes #11839
Closes #12322

2 years agoIgnore the `bin` artifact for `bench` targets
Chayim Refael Friedman [Wed, 29 Jun 2022 11:16:55 +0000 (14:16 +0300)]
Ignore the `bin` artifact for `bench` targets

Just like `test`.

2 years agoAuto merge of #12652 - lnicola:openvsx, r=lnicola
bors [Tue, 28 Jun 2022 19:18:50 +0000 (19:18 +0000)]
Auto merge of #12652 - lnicola:openvsx, r=lnicola

internal: Try to publish releases to OpenVSX

2 years agofix: improve whitespace insertion in pretty printer
Ryo Yoshida [Tue, 28 Jun 2022 11:40:22 +0000 (20:40 +0900)]
fix: improve whitespace insertion in pretty printer

2 years agoAuto merge of #12648 - flodiebold:proc-macro-errors-again, r=flodiebold
bors [Tue, 28 Jun 2022 08:44:13 +0000 (08:44 +0000)]
Auto merge of #12648 - flodiebold:proc-macro-errors-again, r=flodiebold

fix: Report proc macro errors in expressions correctly as well

They didn't have a krate before, resulting in the generic "proc macro not found" error.

Also improve error messages a bit more.

2 years agofix: Report proc macro errors in expressions correctly as well
Florian Diebold [Tue, 28 Jun 2022 08:41:10 +0000 (10:41 +0200)]
fix: Report proc macro errors in expressions correctly as well

They didn't have a krate before, resulting in the generic "proc macro
not found" error.

Also improve error messages a bit more.

2 years agoAuto merge of #12643 - Veykril:macro-compl, r=Veykril
bors [Mon, 27 Jun 2022 12:40:46 +0000 (12:40 +0000)]
Auto merge of #12643 - Veykril:macro-compl, r=Veykril

fix: Fix completions for locals not working properly inside macro calls

2 years agofix: Fix completions for locals not working properly inside macro calls
Lukas Wirth [Mon, 27 Jun 2022 12:39:44 +0000 (14:39 +0200)]
fix: Fix completions for locals not working properly inside macro calls

2 years agoAuto merge of #12635 - antogilbert:tgt_feat, r=Veykril
bors [Mon, 27 Jun 2022 12:28:36 +0000 (12:28 +0000)]
Auto merge of #12635 - antogilbert:tgt_feat, r=Veykril

Correct target_feature completion

I changed the `target_feature` to match the description given in #12616.

2 years agoAuto merge of #12642 - weirdsmiley:master, r=Veykril
bors [Mon, 27 Jun 2022 12:16:06 +0000 (12:16 +0000)]
Auto merge of #12642 - weirdsmiley:master, r=Veykril

fix: deduplicate cfg completions

cfg completions are duplicated if they are set with multiple values.
This patch deduplicates them.

fixes: [#12623](https://github.com/rust-lang/rust-analyzer/issues/12623)

2 years agofix: deduplicate cfg completions
Manas [Mon, 27 Jun 2022 10:47:06 +0000 (16:17 +0530)]
fix: deduplicate cfg completions

cfg completions are duplicated if they are set with multiple values.
This patch deduplicates them.

2 years agoUdate unit tests
Antonello Palazzi [Mon, 27 Jun 2022 08:04:42 +0000 (09:04 +0100)]
Udate unit tests

2 years agoAuto merge of #12638 - buffet:fix-typo, r=flodiebold
bors [Sun, 26 Jun 2022 10:43:30 +0000 (10:43 +0000)]
Auto merge of #12638 - buffet:fix-typo, r=flodiebold

Fix typo in build.rs

2 years agoFix typo in build.rs
buffet [Sun, 26 Jun 2022 10:09:45 +0000 (10:09 +0000)]
Fix typo in build.rs

2 years agocomplete raw identifier with "r#" prefix
Hongxu Xu [Sun, 26 Jun 2022 06:45:30 +0000 (14:45 +0800)]
complete raw identifier with "r#" prefix

2 years agoCorrect target_feature completion
Antonello Palazzi [Sat, 25 Jun 2022 23:50:41 +0000 (00:50 +0100)]
Correct target_feature completion

2 years agoReduce intermediate allocations while printing witnesses
iDawer [Sat, 25 Jun 2022 15:08:00 +0000 (20:08 +0500)]
Reduce intermediate allocations while printing witnesses

2 years agoAuto merge of #12520 - Veykril:flycheck-cancel, r=Veykril
bors [Fri, 24 Jun 2022 17:42:00 +0000 (17:42 +0000)]
Auto merge of #12520 - Veykril:flycheck-cancel, r=Veykril

internal: Bring back JodChild into flychecking for cancellation

cc https://github.com/rust-lang/rust-analyzer/pull/10517/files#r895241975

2 years agoAuto merge of #12629 - flodiebold:proc-macro-error-improvement, r=Veykril
bors [Fri, 24 Jun 2022 12:27:59 +0000 (12:27 +0000)]
Auto merge of #12629 - flodiebold:proc-macro-error-improvement, r=Veykril

fix: Improve proc macro errors a bit

Distinguish between
 - there is no build data (for some reason?)
 - there is build data, but the cargo package didn't build a proc macro dylib
 - there is a proc macro dylib, but it didn't contain the proc macro we expected
 - the name did not resolve to any macro (this is now an
 unresolved_macro_call even for attributes)

I changed the handling of disabled attribute macro expansion to
immediately ignore the macro and report an unresolved_proc_macro,
because otherwise they would now result in loud unresolved_macro_call
errors. I hope this doesn't break anything.

Also try to improve error ranges for unresolved_macro_call / macro_error
by reusing the code for unresolved_proc_macro. It's not perfect but
probably better than before.

2 years agoImprove comments
Florian Diebold [Fri, 24 Jun 2022 12:19:18 +0000 (14:19 +0200)]
Improve comments

2 years agoImprove proc macro errors a bit
Florian Diebold [Fri, 24 Jun 2022 11:03:13 +0000 (13:03 +0200)]
Improve proc macro errors a bit

Distinguish between
 - there is no build data (for some reason?)
 - there is build data, but the cargo package didn't build a proc macro dylib
 - there is a proc macro dylib, but it didn't contain the proc macro we expected
 - the name did not resolve to any macro (this is now an
 unresolved_macro_call even for attributes)

I changed the handling of disabled attribute macro expansion to
immediately ignore the macro and report an unresolved_proc_macro,
because otherwise they would now result in loud unresolved_macro_call
errors. I hope this doesn't break anything.

Also try to improve error ranges for unresolved_macro_call / macro_error
by reusing the code for unresolved_proc_macro. It's not perfect but
probably better than before.

2 years agoAuto merge of #12605 - erhuve:fix/determine-doc-link-type-at-start, r=erhuve
bors [Thu, 23 Jun 2022 23:15:33 +0000 (23:15 +0000)]
Auto merge of #12605 - erhuve:fix/determine-doc-link-type-at-start, r=erhuve

fix: doc_links link type - Determine link type at start (fixes #12601)

fixes #12601
Looked like autolink/inline mismatch happened because end_link_type was parsed from the Text/Code events.
I changed it to be determined from the Start event, which should hopefully remain accurate while staying true to the cases where link type may need to be changed, according to the comment
```
// normally link's type is determined by the type of link tag in the end event,
// however in some cases we want to change the link type, for example,
// `Shortcut` type doesn't make sense for url links
```
Hopefully this is the desired behavior?
![Untitled](https://user-images.githubusercontent.com/59463268/174696581-3b1140a5-cdf0-4eda-9a11-ec648e4e7d21.gif)

2 years agoclarify comment and add autolink test case
Raymond Luo [Thu, 23 Jun 2022 23:02:30 +0000 (19:02 -0400)]
clarify comment and add autolink test case

2 years agoTry to publish releases to OpenVSX
Laurențiu Nicola [Thu, 23 Jun 2022 19:18:08 +0000 (22:18 +0300)]
Try to publish releases to OpenVSX

2 years agoAuto merge of #12628 - Veykril:simplify, r=Veykril
bors [Thu, 23 Jun 2022 18:13:08 +0000 (18:13 +0000)]
Auto merge of #12628 - Veykril:simplify, r=Veykril

internal: Simplify

2 years agointernal: Simplify
Lukas Wirth [Thu, 23 Jun 2022 18:08:29 +0000 (20:08 +0200)]
internal: Simplify

2 years agofix: trailing ':' on empty inactive reasons
CuriousCorrelation [Thu, 23 Jun 2022 16:40:27 +0000 (22:10 +0530)]
fix: trailing ':' on empty inactive reasons

Fixes: #12615
2 years agoAuto merge of #12625 - yue4u:fix/non-exhaustive-variant, r=Veykril
bors [Thu, 23 Jun 2022 15:05:39 +0000 (15:05 +0000)]
Auto merge of #12625 - yue4u:fix/non-exhaustive-variant, r=Veykril

fix: completes non exhaustive variant within the defining crate

close #12624

2 years agofix: completes non exhaustive variant within the defining crate
yue4u [Thu, 23 Jun 2022 15:00:51 +0000 (00:00 +0900)]
fix: completes non exhaustive variant within the defining crate

2 years agocondense matches on autolink
Raymond Luo [Thu, 23 Jun 2022 02:07:26 +0000 (22:07 -0400)]
condense matches on autolink

2 years agohandle autolink as edge case
Raymond Luo [Tue, 21 Jun 2022 03:15:27 +0000 (23:15 -0400)]
handle autolink as edge case

2 years agodetermine doc link type from start instead of text or code
Raymond Luo [Tue, 21 Jun 2022 01:10:45 +0000 (21:10 -0400)]
determine doc link type from start instead of text or code

2 years agoAuto merge of #12604 - Veykril:completions, r=Veykril
bors [Mon, 20 Jun 2022 19:56:05 +0000 (19:56 +0000)]
Auto merge of #12604 - Veykril:completions, r=Veykril

internal: Simplify some completions

2 years agointernal: Simplify some completions
Lukas Wirth [Mon, 20 Jun 2022 19:55:33 +0000 (21:55 +0200)]
internal: Simplify some completions

2 years agoAuto merge of #12599 - flodiebold:no-test-deps, r=flodiebold
bors [Mon, 20 Jun 2022 18:42:48 +0000 (18:42 +0000)]
Auto merge of #12599 - flodiebold:no-test-deps, r=flodiebold

fix: Only apply `cfg(test)` for local crates

Don't analyze dependencies with `test`; this should fix various cases where crates use `cfg(not(test))` and so we didn't find things.

"Local" here currently means anything that's not from the registry, so anything inside the workspace, but also path dependencies. So this isn't perfect, and users might still need to use `rust-analyzer.cargo.unsetTest` for these in some cases.

2 years agoFix test
Florian Diebold [Mon, 20 Jun 2022 18:34:08 +0000 (20:34 +0200)]
Fix test

2 years agoAuto merge of #12597 - Veykril:completions, r=Veykril
bors [Mon, 20 Jun 2022 18:28:08 +0000 (18:28 +0000)]
Auto merge of #12597 - Veykril:completions, r=Veykril

fix: Fix auto-ref completions inserting into wrong locations

Fixes https://github.com/rust-lang/rust-analyzer/issues/8058

2 years agoReimplement auto-ref completions for fields
Lukas Wirth [Mon, 20 Jun 2022 18:22:51 +0000 (20:22 +0200)]
Reimplement auto-ref completions for fields

2 years agoRefactor a bit
Florian Diebold [Mon, 20 Jun 2022 18:21:30 +0000 (20:21 +0200)]
Refactor a bit

2 years agoRemove pattern rendering hack
Lukas Wirth [Mon, 20 Jun 2022 18:16:40 +0000 (20:16 +0200)]
Remove pattern rendering hack

2 years agoOnly apply `cfg(test)` for local crates
Florian Diebold [Mon, 20 Jun 2022 18:10:25 +0000 (20:10 +0200)]
Only apply `cfg(test)` for local crates

Don't analyze dependencies with `test`; this should fix various cases
where crates use `cfg(not(test))` and so we didn't find things.

"Local" here currently means anything that's not from the registry, so
anything inside the workspace, but also path dependencies. So this isn't
perfect, and users might still need to use
`rust-analyzer.cargo.unsetTest` for these in some cases.

2 years agofix: Fix auto-ref completions inserting into wrong locations
Lukas Wirth [Mon, 20 Jun 2022 16:59:57 +0000 (18:59 +0200)]
fix: Fix auto-ref completions inserting into wrong locations

2 years agoAuto merge of #12596 - Veykril:completions, r=Veykril
bors [Mon, 20 Jun 2022 16:03:21 +0000 (16:03 +0000)]
Auto merge of #12596 - Veykril:completions, r=Veykril

fix: Don't trigger pattern completions when typing a wildcard pattern

Fixes https://github.com/rust-lang/rust-analyzer/issues/12592

2 years agofix: Don't trigger pattern completions when typing a wildcard pattern
Lukas Wirth [Mon, 20 Jun 2022 16:02:13 +0000 (18:02 +0200)]
fix: Don't trigger pattern completions when typing a wildcard pattern

2 years agoAuto merge of #12594 - Veykril:completions, r=Veykril
bors [Mon, 20 Jun 2022 15:42:31 +0000 (15:42 +0000)]
Auto merge of #12594 - Veykril:completions, r=Veykril

internal: Lift out IdentContext from CompletionContext

Makes things a bit messy overall, but with this I can start cleaning up the render functions properly now.
cc https://github.com/rust-lang/rust-analyzer/issues/12571

2 years agointernal: Lift out IdentContext from CompletionContext
Lukas Wirth [Mon, 20 Jun 2022 15:41:04 +0000 (17:41 +0200)]
internal: Lift out IdentContext from CompletionContext

2 years agointernal: Remove `previous_token` field from `CompletionContext`
Lukas Wirth [Mon, 20 Jun 2022 13:07:48 +0000 (15:07 +0200)]
internal: Remove `previous_token` field from `CompletionContext`

2 years agoAuto merge of #12588 - Veykril:completions, r=Veykril
bors [Mon, 20 Jun 2022 12:50:59 +0000 (12:50 +0000)]
Auto merge of #12588 - Veykril:completions, r=Veykril

internal: More completion reorganizing

2 years agoRemove some usages of `Completions::add_resolution`
Lukas Wirth [Mon, 20 Jun 2022 12:47:30 +0000 (14:47 +0200)]
Remove some usages of `Completions::add_resolution`

2 years agoEven more completion context filtering
Lukas Wirth [Mon, 20 Jun 2022 12:23:46 +0000 (14:23 +0200)]
Even more completion context filtering

2 years agoLift out PathKind variant fields into structs
Lukas Wirth [Mon, 20 Jun 2022 11:29:13 +0000 (13:29 +0200)]
Lift out PathKind variant fields into structs

2 years agoSplit remaining completion calls on the context kinds
Lukas Wirth [Mon, 20 Jun 2022 11:17:30 +0000 (13:17 +0200)]
Split remaining completion calls on the context kinds

2 years agoDisplay witnesses of non-exhaustive match
iDawer [Mon, 20 Jun 2022 10:48:09 +0000 (15:48 +0500)]
Display witnesses of non-exhaustive match

Reporting format follows rustc and shows at most three witnesses.

2 years agoAuto merge of #12581 - lnicola:changelog-number, r=lnicola
bors [Sun, 19 Jun 2022 16:00:33 +0000 (16:00 +0000)]
Auto merge of #12581 - lnicola:changelog-number, r=lnicola

internal: Handle fractional release numbers in changelog naming

2 years agoAuto merge of #12584 - Veykril:attr-diag, r=Veykril
bors [Sat, 18 Jun 2022 22:38:04 +0000 (22:38 +0000)]
Auto merge of #12584 - Veykril:attr-diag, r=Veykril

fix: attribute macros not being properly diagnosed

Closes https://github.com/rust-lang/rust-analyzer/issues/12582

2 years agofix: attribute macros not being properly diagnosed
Lukas Wirth [Sat, 18 Jun 2022 22:37:37 +0000 (00:37 +0200)]
fix: attribute macros not being properly diagnosed

2 years agointernal: Handle fractional release numbers in changelog naming
Laurențiu Nicola [Sat, 18 Jun 2022 14:00:28 +0000 (17:00 +0300)]
internal: Handle fractional release numbers in changelog naming

2 years agoAuto merge of #12580 - Veykril:completion, r=Veykril
bors [Sat, 18 Jun 2022 09:21:13 +0000 (09:21 +0000)]
Auto merge of #12580 - Veykril:completion, r=Veykril

internal: Move more things out of `CompletionContext::function_def` into more specific parts

2 years agoConsider walking up macro expansions when searching for surrounding entities in compl...
Lukas Wirth [Sat, 18 Jun 2022 09:19:36 +0000 (11:19 +0200)]
Consider walking up macro expansions when searching for surrounding entities in completion analysis

2 years agoMove `CompletionContext::impl_def` into corresponding entities
Lukas Wirth [Sat, 18 Jun 2022 08:45:53 +0000 (10:45 +0200)]
Move `CompletionContext::impl_def` into corresponding entities

2 years agoMove `CompletionContext::incomplete_let` into `PathKind::Expr`
Lukas Wirth [Sat, 18 Jun 2022 08:18:56 +0000 (10:18 +0200)]
Move `CompletionContext::incomplete_let` into `PathKind::Expr`

2 years agoAuto merge of #12576 - harpsword:fold_range_non_block_match_arm, r=Veykril
bors [Sat, 18 Jun 2022 08:10:31 +0000 (08:10 +0000)]
Auto merge of #12576 - harpsword:fold_range_non_block_match_arm, r=Veykril

feat: add fold range for multi line match arm list

fix: #11893

2 years agofeat: add fold range for multi line match arm list
harpsword [Sat, 9 Apr 2022 05:44:41 +0000 (13:44 +0800)]
feat: add fold range for multi line match arm list

2 years agoMove `CompletionContext::function_def` into `PathKind::Expr`
Lukas Wirth [Sat, 18 Jun 2022 07:54:03 +0000 (09:54 +0200)]
Move `CompletionContext::function_def` into `PathKind::Expr`

2 years agoAuto merge of #12577 - Veykril:completion, r=Veykril
bors [Sat, 18 Jun 2022 06:59:12 +0000 (06:59 +0000)]
Auto merge of #12577 - Veykril:completion, r=Veykril

internal: NameRefKind classification is not optional

2 years agointernal: NameRefKind classification is not optional
Lukas Wirth [Sat, 18 Jun 2022 06:58:47 +0000 (08:58 +0200)]
internal: NameRefKind classification is not optional

2 years agoAuto merge of #12574 - Veykril:completion, r=Veykril
bors [Fri, 17 Jun 2022 23:15:37 +0000 (23:15 +0000)]
Auto merge of #12574 - Veykril:completion, r=Veykril

minor: Simplify

2 years agominor: Simplify
Lukas Wirth [Fri, 17 Jun 2022 23:15:08 +0000 (01:15 +0200)]
minor: Simplify

2 years agoAuto merge of #12573 - Veykril:completion, r=Veykril
bors [Fri, 17 Jun 2022 22:48:14 +0000 (22:48 +0000)]
Auto merge of #12573 - Veykril:completion, r=Veykril

internal: Split flyimport into its 3 applicable contexts