Commit graph

22118 commits

Author SHA1 Message Date
bors 88024c7ec2 Auto merge of #12444 - XFFXFF:fix_12442, r=Veykril
fix: parsing of `?` opt-out trait bounds

fixes #12442
2022-06-02 14:02:36 +00:00
XFFXFF df67bbdcb3 fix: parsing of ? opt-out trait bounds
thanks to Veykril
2022-06-02 21:30:18 +08:00
bors 2f0814ea35 Auto merge of #12347 - feniljain:fix_extract_module, r=Veykril
fix(extract_module) resolving import panics and improve import resolution

- Should solve #11766
- While adding a test case for this issue, I observed another issue:
For this test case:
```rust
            mod x {
                pub struct Foo;
                pub struct Bar;
            }

            use x::{Bar, Foo};

            $0type A = (Foo, Bar);$0
```
extract module should yield this:

```rust
            mod x {
                pub struct Foo;
                pub struct Bar;
            }

            use x::{};

            mod modname {
                use super::Bar;

                use super::Foo;

                pub(crate) type A = (Foo, Bar);
            }
```

instead it gave:

```rust
            mod x {
                pub struct Foo;
                pub struct Bar;
            }

            use x::{};

            mod modname {
                use x::Bar;

                use x::Foo;

                pub(crate) type A = (Foo, Bar);
            }
```

So fixed this problem with second commit
2022-06-02 12:37:17 +00:00
bors 6f7c5589ab Auto merge of #12443 - Veykril:fmtfix, r=Veykril
minor: Fix rustfmt failing on main_loop.rs
2022-06-01 19:23:22 +00:00
Lukas Wirth 343562c54d minor: Fix rustfmt failing on main_loop.rs 2022-06-01 21:20:54 +02:00
bors cf10a1ee3e Auto merge of #12440 - Maan2003:empty-msg-diag, r=jonas-schievink
fix(diagnostic): Don't remove diagnostic with empty message

Use " " as message if it is empty

[discussion on zulip](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/empty.20diagnostic.20message)

![image](https://user-images.githubusercontent.com/49202620/171412661-9b9575e9-e71b-4b84-a5c0-00271548d50c.png)
2022-06-01 14:31:14 +00:00
Maan2003 bad931116e
fix(diagnostic): Don't remove diagnostic with empty message
Use " " as message if it is empty
2022-06-01 18:38:53 +05:30
bors 4f5c7aafff Auto merge of #12431 - Veykril:request-retry, r=Veykril
fix: Fix completions disappearing when typing two keys in quick succession

With this PR we now retry requests if they get cancelled due to document changes.

This fixes the completions problem we have where completions seem to randomly disappear, see https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/Completions.20not.20always.20appearing

Fixes https://github.com/rust-lang/rust-analyzer/issues/10187
Fixes https://github.com/rust-lang/rust-analyzer/issues/7560
Fixes https://github.com/rust-lang/rust-analyzer/issues/12153
2022-06-01 10:18:50 +00:00
Lukas Wirth d88ae66ed9 Sync handlers cannot be cancelled 2022-06-01 12:18:15 +02:00
bors 30672cbf0c Auto merge of #12435 - jhgg:vscode/status-bar-color-fix, r=Veykril
[editors/vscode] cleaer status bar bg color / command  when server status returns to OK

fixes #12433
2022-06-01 07:19:42 +00:00
Jake Heinz a965161dce [editors/vscode] cleaer status bar bg color / command when server status returns to OK 2022-06-01 06:58:16 +00:00
Lukas Wirth e2da967578 fix: Fix completions disappearing when typing two keys in quick succession 2022-06-01 00:20:47 +02:00
bors e25cbf8584 Auto merge of #12430 - Veykril:completions, r=Veykril
minor: Remove unused code
2022-05-31 18:22:41 +00:00
Lukas Wirth 1234d8647f minor: Remove unused code 2022-05-31 20:21:50 +02:00
bors e10799536a Auto merge of #12427 - Veykril:configfix, r=Veykril
fix: Fix VSCode config patching incorrectly patching some configs
2022-05-31 11:48:42 +00:00
Lukas Wirth 3e25c853cf fix: Fix VSCode config patching incorrectly patching some configs 2022-05-31 13:38:48 +02:00
bors c2099fe941 Auto merge of #12336 - bitgaoshu:mismatch, r=flodiebold
fix: #12267  type-mismatch when using equals w/ a trait bound
2022-05-31 09:48:54 +00:00
bors f65d734abc Auto merge of #12425 - feniljain:fix_bugs, r=lnicola
fix: float display impl

should solve #12414
2022-05-31 04:52:36 +00:00
feniljain 25f3e7a33c fix: float display impl 2022-05-31 10:13:03 +05:30
feniljain 8a1ef52f5c fix(extract_module): Remove redundancy causing else, and also add import fix loop for names 2022-05-31 09:51:42 +05:30
bors a5d7ab54f9 Auto merge of #12418 - Veykril:completions, r=Veykril
internal: More precise completion filtering with existing item qualifiers

Now we are approaching the more complex cases for filtering completions
2022-05-30 14:05:37 +00:00
Lukas Wirth 0327df224b More precise completion filtering 2022-05-30 16:01:17 +02:00
bors c551d1a6af Auto merge of #12417 - jonas-schievink:pr-msg-style, r=jonas-schievink
minor: Update commit/PR style guide

What matters for the changelog is having PR title/description from the user's perspective, while commits can be internal.
2022-05-30 13:56:54 +00:00
Jonas Schievink 592bc5106c Update commit/PR style 2022-05-30 15:55:40 +02:00
Lukas Wirth ea594c4c44 Use char for trigger character 2022-05-30 14:17:58 +02:00
bors edb2e571fe Auto merge of #12416 - Veykril:inlay-hints, r=Veykril
Add implicit static lifetime hints
2022-05-30 12:00:54 +00:00
Lukas Wirth aced76d0ff Add implicit static lifetime hints 2022-05-30 13:59:58 +02:00
bors 9ceaff91d3 Auto merge of #12406 - harpsword:fix-add-inlayHints-closures-without-block, r=Veykril
fix: add an option to show inlay hint for return type of closures wit…

fix #12321
2022-05-30 11:36:55 +00:00
bors bd0c2344f2 Auto merge of #12387 - 00nktk:fix-mod-rename, r=Veykril
fix(ide-db): correct single-file module rename

Fixes a bug where rust-analyzer would emit `WorkspaceEdit`s with paths to dirs instead of files for the following project layout.

lib.rs
```rust
mod foo;
```

foo.rs
```rust
mod bar {
    struct Bar;
}
```
Also fixes emitted paths for modules with mod.rs.
The bug resulted in panic in helix editor when attempting to rename a module.
2022-05-30 11:29:55 +00:00
bors e4ead8a7c6 Auto merge of #12412 - yue4u:fix/visibility-completion, r=Veykril
fix: Retrigger visibility completion after parentheses

close #12390

This PR add `(` to trigger_characters as discussed in original issue.

Some questions:

1. Is lsp's `ctx.trigger_character` from `params.context` is the same as `ctx.original_token` inside actually completions?
    1. If not what's the difference?
    2. if they are the same, it's unnecessary to pass it down from handler at all.
    3.  if they are the same, maybe we could parse it from fixture directly instead of using the `check_with_trigger_character` I added.
2. Some completion fixtures written as `($0)` ( https://github.com/rust-lang/rust-analyzer/blob/master/crates/ide-completion/src/tests/fn_param.rs#L105 as an example), If I understand correctly they are not invoked outside tests at all?
    1. using `ctx.original_token` directly would break these tests as well as parsing trigger_character from fixture for now.
    2. I think it make sense to allow `(` triggering these cases?
3. I hope this line up with #12144
2022-05-30 11:22:10 +00:00
yue4u 1b5f0462ed fix: visibility completion 2022-05-30 00:06:48 +09:00
bors f94fa62d69 Auto merge of #12409 - lowr:fix/usize-overflow, r=Veykril
fix overflow during type inference for tuple struct patterns

The following code causes integer overflow during type inference for (malformed) tuple struct patterns.

```rust
struct S(usize);
let S(.., a, b) = S(1);
```

It has been panicking only in debug builds, and working in a way in release builds but it was inconsistent with type inference for tuple patterns:

```rust
struct S(usize);
let S(.., a, b) = S(1); // a -> unknown, b -> usize
let (.., a, b) = (1,);  // a -> usize, b -> unknown
```

With this PR, the overflow no longer happens by utilizing `saturating_sub()` like in other places and type inference for tuple struct patterns is in line with that for tuple patterns.
2022-05-29 08:45:15 +00:00
Ryo Yoshida be2fa2b31b
fix overflow during tuple struct type inference 2022-05-29 16:22:33 +09:00
harpsword 55509548e8 fix: add an option to show inlay hint for return type of closures without block 2022-05-28 22:12:30 +08:00
Nikita Podoliako d98c04aac1 fix(ide-db): correct single-file module rename 2022-05-28 15:07:22 +03:00
bors 6c9fc4fec2 Auto merge of #12402 - Veykril:feat-docs, r=Veykril
minor: Freshen up goto feature docs

Fixes https://github.com/rust-lang/rust-analyzer/issues/2541
2022-05-27 13:47:56 +00:00
Lukas Wirth 86576072ab minor: Freshen up goto feature docs 2022-05-27 15:47:31 +02:00
bors bd06902f90 Auto merge of #12395 - feniljain:fix_bugs, r=Veykril
fix: f32 and f64 representation during lowering

should fix #12380
2022-05-27 12:44:08 +00:00
bors 145bad473d Auto merge of #12341 - vemoo:exclude_dirs, r=Veykril
make `files.excludeDirs` work

There's a small issue because if all projects are excluded, this: 01d412f4d7/crates/rust-analyzer/src/main_loop.rs (L114) will be shown.
I thought about not showing it if `files.excludeDirs` is set, but that is not necessarily correct.

Fixes #7755
2022-05-27 12:35:48 +00:00
bors 732eb9a167 Auto merge of #12399 - Joehoel:patch-1, r=lnicola
typo: missing comma
2022-05-26 18:15:54 +00:00
Joël Kuijper f872b61c56
typo: missing comma 2022-05-26 20:12:43 +02:00
bors c567771605 Auto merge of #12397 - Hofer-Julian:patch-1, r=lnicola
Fix typo
2022-05-26 17:14:55 +00:00
Hofer-Julian 2916cd2a86
Fix typo 2022-05-26 19:12:49 +02:00
feniljain 1f4870ff1c fix: f32 and f64 representation during lowering 2022-05-26 20:03:05 +05:30
bors 37c7f3c4cf Auto merge of #12393 - Veykril:hir-def, r=Veykril
internal: Remove `Interned` usage from nameres collector
2022-05-26 11:01:08 +00:00
Lukas Wirth 7913ae69b9 internal: Remove Interned usage from nameres collector 2022-05-26 12:59:57 +02:00
bors 92f363059a Auto merge of #12388 - Veykril:statusitem, r=Veykril
internal: Make use of the statusBarItem colors in VSCode

Fixes https://github.com/rust-lang/rust-analyzer/issues/7736
2022-05-26 10:31:23 +00:00
Lukas Wirth 02c2377229 internal: Use statusBarItem colors for status item in VSCode 2022-05-26 12:31:07 +02:00
bors 5b69a34fb5 Auto merge of #12386 - fasterthanlime:gh-12372-test, r=Veykril
Add test for #12372 (generate enum variant in different file)

The test currently fails but I'm not sure why.

The "Right" output seems to contain only the contents of `foo.rs`, without the magic comments:

<img width="967" alt="image" src="https://user-images.githubusercontent.com/7998310/170310707-e69b21eb-d4f8-46c1-8a0a-9b4071289e26.png">

cc `@Veykril`
2022-05-25 16:42:29 +00:00
Amos Wenger c06c4f9682 Make test pass 2022-05-25 18:31:08 +02:00