Florian Diebold
a4a4a1854e
Fix type parameter defaults
...
They should not be applied in expression or pattern contexts, unless there are
other explicitly given type args.
2020-06-05 20:09:13 +02:00
Mikhail Rakhmanov
5dda995538
Fix review comments
2020-06-05 13:17:17 +02:00
Mikhail Rakhmanov
74c3e7a1ad
Remove unnecessary return
2020-06-05 11:45:41 +02:00
Jess Balint
921306757b
introduce_named_lifetime assist wasn't applicable when type parameter
...
followed anonymous lifetime token
(fixes #4684 )
2020-06-04 17:31:21 -05:00
Mikhail Rakhmanov
b0c8a2be7b
Remove AsName import
2020-06-04 10:03:44 +02:00
Mikhail Rakhmanov
a6d3c77bdd
Fixed tests
2020-06-03 20:43:57 +02:00
Mikhail Rakhmanov
eefa10bc6b
Merge branch 'master' into assists_extract_enum
2020-06-03 20:10:54 +02:00
Mikhail Rakhmanov
a9d5675848
Fix incorrect behaviour if not resolved
2020-06-03 20:10:33 +02:00
Aleksey Kladov
285717de33
Rename assist
2020-06-01 15:41:16 +02:00
Aleksey Kladov
d08232b10d
Cleanup imports
2020-06-01 15:35:41 +02:00
bors[bot]
09df51dab8
Merge #4664
...
4664: Generate feature documentation from code r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-05-31 10:50:11 +00:00
Aleksey Kladov
8915183d7d
Don't require module docs for Features and Assists
2020-05-31 09:59:38 +02:00
bors[bot]
5d84028170
Merge #4562
...
4562: Assist: replace anonymous lifetime with a named one r=matklad a=jbalint
(fixes #4523 )
Co-authored-by: Jess Balint <jbalint@gmail.com>
2020-05-30 08:01:00 +00:00
Jess Balint
bd8aa04bae
add support for naming anon lifetimes in function return type
2020-05-28 15:10:14 -05:00
Mikhail Rakhmanov
08aa8e1de7
Further refactoring under review comments
2020-05-24 14:53:12 +02:00
Mikhail Rakhmanov
e2974ba8f7
Remove unnecessary set_file and change variable positions for better readability
2020-05-23 11:57:12 +02:00
Mikhail Rakhmanov
3a244e02b5
Remove unwraps where possible
2020-05-23 11:53:02 +02:00
Jess Balint
4967b811dd
tweak syntax
2020-05-22 19:09:37 -05:00
Mikhail Rakhmanov
6ee1c60c9c
Further review fixes
2020-05-23 01:41:08 +02:00
Mikhail Rakhmanov
4984520ef5
Use default instead of new in AssistDirector
2020-05-23 01:27:11 +02:00
Mikhail Rakhmanov
fce10200a0
Better naming and fix some review comments
2020-05-23 01:23:40 +02:00
kjeremy
d8af45472e
Remove unnecessary clone that prevented clippy from moving on
2020-05-22 17:13:14 -04:00
Mikhail Rakhmanov
ef1aaeb595
More formatting
2020-05-22 22:59:17 +02:00
Mikhail Rakhmanov
97ffe3c6e8
Refactor AssistDirector
2020-05-22 22:47:25 +02:00
Mikhail Rakhmanov
04a35784df
Formatting and remove unused imports
2020-05-22 22:43:52 +02:00
Mikhail Rakhmanov
5cd4eb6dd6
Add preliminary implementation of extract struct from enum variant
2020-05-22 22:28:30 +02:00
Aleksey Kladov
2c04aad2d2
KISS SourceChange
...
The idea behind requiring the label is a noble one, but we are not
really using it consistently anyway, and it should be easy to retrofit
later, should we need it.
2020-05-22 18:04:26 +02:00
Jess Balint
d42fd8efb6
use char range
2020-05-22 10:15:59 -05:00
Jess Balint
1f9e02c74e
fix generated docs issue
2020-05-22 09:25:55 -05:00
Jess Balint
1fae96a8d4
handle the case of conflicting lifetime param name
...
- and clean/format code
2020-05-22 08:51:37 -05:00
Jess Balint
2ab79c6f4d
Assist: replace anonymous lifetime with a named one
...
(fixes #4523 )
2020-05-21 21:04:02 -05:00
Aleksey Kladov
ff28c79ebd
Remove dead code for handling cursor positions
2020-05-21 15:08:03 +02:00
Aleksey Kladov
4fdb1eac08
Remove unused cursor positions
2020-05-21 10:37:11 +02:00
Aleksey Kladov
70930d3bb2
Remove set_cursor
2020-05-21 00:03:42 +02:00
Aleksey Kladov
4ac0abd296
Snippetify unwrap -> match
2020-05-21 00:01:08 +02:00
Aleksey Kladov
8300132ed0
More snippets
2020-05-20 23:50:42 +02:00
Aleksey Kladov
5e13e4eba1
More snippets
2020-05-20 23:33:03 +02:00
Aleksey Kladov
fd77170718
Snippetify introduce/inline var
2020-05-20 23:07:17 +02:00
Aleksey Kladov
65fa586410
Relax cursor position tests in assists
...
Those will be replaced with snippets anyway
2020-05-20 22:55:37 +02:00
Aleksey Kladov
ba3a58d1b2
Snippetify fix_visibility
2020-05-20 14:13:17 +02:00
Aleksey Kladov
c446fd76a2
Snippetify fill_match_arms
2020-05-20 14:01:10 +02:00
Aleksey Kladov
a622b54ac0
Don't set cursor in change_visibility
2020-05-20 13:48:31 +02:00
Aleksey Kladov
74da16f6f9
Cleanup imports
2020-05-20 13:45:00 +02:00
Aleksey Kladov
cec773926f
Split change_ and fix_ visibility assists
2020-05-20 13:33:13 +02:00
Aleksey Kladov
ecac5d7de2
Switch to new magic marks
2020-05-20 13:02:53 +02:00
Aleksey Kladov
d18d1c0594
Significantly more glorious marks
2020-05-20 13:00:50 +02:00
bors[bot]
4d3fd62f89
Merge #4530
...
4530: Use snippets in change_return_type_to_result r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-05-20 09:10:52 +00:00
Aleksey Kladov
33e111483f
Use snippets in change_return_type_to_result
2020-05-20 11:10:15 +02:00
Aleksey Kladov
d8881d98d3
Fix Some|None order in fill_match_arms
2020-05-20 10:51:48 +02:00
Aleksey Kladov
d790a443f3
wip
2020-05-20 10:30:18 +02:00
Aleksey Kladov
2e74df4e2b
Cleanup
2020-05-20 10:28:58 +02:00
Aleksey Kladov
36a5ca9a84
Minor
2020-05-20 10:26:14 +02:00
Aleksey Kladov
45e343a0ef
Minor
2020-05-20 10:20:21 +02:00
Aleksey Kladov
9b2bd022dc
Snippetify add_new
2020-05-20 10:17:46 +02:00
bors[bot]
efac093093
Merge #4525
...
4525: Better cursor placement when adding impl members r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-05-20 00:11:25 +00:00
Aleksey Kladov
767d169a2a
Better cursor placement when adding impl members
2020-05-20 02:07:21 +02:00
bors[bot]
b26dbf8009
Merge #4524
...
4524: Use snippets in add_missing_members r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-05-19 23:54:08 +00:00
Aleksey Kladov
a04cababaa
Use snippets in add_missing_members
2020-05-20 01:53:21 +02:00
bors[bot]
a36202390c
Merge #4521 #4522
...
4521: Use snippets in add_function r=matklad a=matklad
bors r+
🤖
4522: Explain the purpose of `ast::make` module more clearly r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-05-19 23:30:48 +00:00
Aleksey Kladov
e6fc0bdffb
Moderate cleanup of add_function
2020-05-20 01:30:12 +02:00
Aleksey Kladov
4de2749db8
Explain the purpose of ast::make
module more clearly
2020-05-20 01:28:46 +02:00
Aleksey Kladov
8eb3272ad6
Use snippets in add function
2020-05-20 01:23:05 +02:00
Aleksey Kladov
9c3acd3028
Cleanup
2020-05-20 01:23:05 +02:00
Aleksey Kladov
0146a95a39
Cleanup
2020-05-20 01:23:05 +02:00
Aleksey Kladov
80545e5d3a
New assist: add turbo fish
2020-05-20 00:27:10 +02:00
Aleksey Kladov
2bf6b16a7f
Server side of SnippetTextEdit
2020-05-19 20:28:27 +02:00
Aleksey Kladov
fa2e5299c3
Add snippet support for some assists
2020-05-19 20:28:27 +02:00
Aleksey Kladov
c847c079fd
Add AssistConfig
2020-05-19 20:28:27 +02:00
bors[bot]
12d82687cd
Merge #4273
...
4273: Trigger add_vis assist on paths/record fields as well r=flodiebold a=TimoFreiberg
Resolves #4037 .
- [x] Function defs
- [x] ADT defs
- [x] Enum variants
- [x] Consts
- [x] Statics
- [x] Traits
- [x] Type aliases
- [x] Modules
- [x] Record fields (using different implementation)
- [x] struct fields
- [x] enum variant fields
- ❌ union fields (`Semantics::resolve_record_field` seems to not work for union fields, so I think this can be handled in a future PR)
- [x] More tests?
- [x] Improve test fixture code and documentation a bit (see [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/resolve_path.20between.20fixture.20files ))
Co-authored-by: Timo Freiberg <timo.freiberg@gmail.com>
2020-05-14 14:29:22 +00:00
bors[bot]
f1587ac263
Merge #4445
...
4445: Correctly fill default type parameters r=flodiebold a=montekki
Fixes #3877
So, basically even if the parameters are omitted from the `impl` block, check the parameters in `trait` if they have a default type, and if they do go from `hir` to `ast::TypeArg`. I've added a helper for that but I am not sure that it's a proper way to go from `hir` to `ast` here.
Co-authored-by: Fedor Sakharov <fedor.sakharov@gmail.com>
2020-05-14 11:20:42 +00:00
Fedor Sakharov
2dfbec149f
Fix formatting
2020-05-14 10:31:34 +03:00
Fedor Sakharov
7e9396c7eb
Change type_arg to type_ref func
2020-05-14 10:14:04 +03:00
Fedor Sakharov
a55ad20388
Use generic_defaults and display_source_code
2020-05-14 09:56:20 +03:00
Trevor Spiteri
2d0a949236
Use back ticks instead of single quotes around code
2020-05-14 01:06:07 +02:00
Fedor Sakharov
00f3b6c59a
Correctly fill default type parameters
2020-05-13 16:07:44 +03:00
bors[bot]
0063ad970d
Merge #4358
...
4358: add if let and while let postfix for Option and Result #4348 r=matklad a=bnjjj
close #4348
I also added `while let` for iterator or stream it could be useful
![iflet](https://user-images.githubusercontent.com/5719034/81278000-676c6b80-9055-11ea-87ad-6b8476dd983f.gif )
Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-11 18:08:26 +00:00
bors[bot]
a3dbd272e0
Merge #4406 #4410 #4411 #4417
...
4406: Update cargo-metadata r=matklad a=edwin0cheng
This PR update `cargo-metadata` to 0.10.0 and it also relax the` serde-derive` deps to 1.0 for tests in `proc-macro-srv`.
cc @robojumper
r= @matklad , I think you would have something to say related to https://github.com/serde-rs/json/issues/647#issue-593788429 ?
4410: Improve wording in comment r=matklad a=edwin0cheng
4411: do not remove then block when you unwrap else block #4361 r=matklad a=bnjjj
close #4361
4417: Omit default types in HirDisplay SourceCode mode r=matklad a=TimoFreiberg
Closes #4390
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
Co-authored-by: Timo Freiberg <timo.freiberg@gmail.com>
2020-05-10 17:37:07 +00:00
Timo Freiberg
cbbbd48325
Omit default types in HirDisplay SourceCode mode
2020-05-10 18:10:15 +02:00
Timo Freiberg
66db88d226
Trigger change_visibility assist when on an invisible struct field
...
Union fields apparently don't work :(
2020-05-10 16:51:12 +02:00
Benjamin Coenen
98a7bb2435
do not remove then block when you unwrap else block #4361
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-10 15:31:51 +02:00
Timo Freiberg
7568d07709
Trigger change_visibility assist when on a path to an invisible def
2020-05-10 13:54:04 +02:00
Benjamin Coenen
92b2230fef
add if let and while let postfix for Option and Result
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-10 12:45:35 +02:00
bors[bot]
f1cb5b8a29
Merge #4392
...
4392: Add From should not move the cursor r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-05-09 14:22:06 +00:00
Aleksey Kladov
d9828a57fc
Add From should not move the cursor
2020-05-09 16:21:10 +02:00
Aleksey Kladov
e201e7834d
Ascribe more correct types
2020-05-09 15:57:53 +02:00
Aleksey Kladov
5c04d8544c
unindent -> dedent
2020-05-09 14:48:43 +02:00
Aleksey Kladov
231fddab54
More fluent indent API
2020-05-09 14:40:11 +02:00
Aleksey Kladov
c6334285e3
Fix visibility
2020-05-09 13:59:25 +02:00
Timo Freiberg
64e6b8200b
Use new HirDisplay variant in add_function assist
2020-05-08 17:14:45 +02:00
Aleksey Kladov
1e790ea314
Simplify
2020-05-07 17:32:01 +02:00
Aleksey Kladov
28fcff125a
Nicer API
2020-05-07 17:29:23 +02:00
Aleksey Kladov
c6b81bc013
Rename AssitLabel -> Assist
2020-05-07 17:18:28 +02:00
Aleksey Kladov
4867968d22
Refactor assists API to be more convenient for adding new assists
...
It now duplicates completion API in its shape.
2020-05-07 16:27:54 +02:00
Benjamin Coenen
51c02ab84f
add Ok wrapping
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-06 17:45:55 +02:00
Aleksey Kladov
020ca6695f
Simplify
2020-05-06 16:39:11 +02:00
Aleksey Kladov
0970c3454b
Rename
2020-05-06 16:10:35 +02:00
Aleksey Kladov
fdd4df97ba
Use SourceChange for assists
2020-05-06 15:43:47 +02:00
Aleksey Kladov
1116c9a0e9
Fix TODO
2020-05-06 13:21:49 +02:00
Aleksey Kladov
233f01c9ba
Move target to AssistLabel
...
Target is used for assists sorting, so we need it before we compute
the action.
2020-05-06 12:51:28 +02:00
Aleksey Kladov
eea431180e
Regenerate
2020-05-06 10:21:35 +02:00
Aleksey Kladov
d308ff910b
Merge doc_tests and tests
2020-05-06 10:18:12 +02:00
Aleksey Kladov
25e6bbde01
Merge assits::test_helpers and tests
2020-05-06 10:16:55 +02:00
Aleksey Kladov
ca9e0f5fe9
Fixup tests
2020-05-05 23:48:26 +02:00
Aleksey Kladov
4a6fa8f0df
Rename AtomTextEdit -> Indel
2020-05-05 23:15:49 +02:00
Aleksey Kladov
381cbc6088
Minor cleanups
2020-05-05 22:14:01 +02:00
Aleksey Kladov
df00da15c4
Fix compilation
2020-05-05 20:45:44 +02:00
Aleksey Kladov
aee22c73c3
Move group_label where it belongs
2020-05-05 20:42:52 +02:00
Aleksey Kladov
6c2414430a
use GroupLabel for type safety
2020-05-05 20:34:45 +02:00
Aleksey Kladov
d5b9282ede
Minor rename
2020-05-05 20:33:10 +02:00
Aleksey Kladov
13c078db9c
Flip Assist::new arguments
2020-05-05 20:30:33 +02:00
Edwin Cheng
92665358cd
Rename ImplItem to AssocItem
2020-05-05 23:56:10 +08:00
bors[bot]
f68e099777
Merge #4265
...
4265: Make `change_visibility` assist work for tuple struct fields r=matklad a=Jesse-Bakker
Fixes #4206
Co-authored-by: Jesse Bakker <git@jessebakker.com>
2020-05-05 14:42:33 +00:00
Aleksey Kladov
d7450222a9
Simplify
2020-05-04 14:55:24 +02:00
Aleksey Kladov
802617ccc2
Simplify
2020-05-04 14:16:10 +02:00
Edwin Cheng
2034002413
Support auto-import in macro
2020-05-03 03:24:55 +08:00
Jesse Bakker
b5c330bf5a
Make change_visibility
assist work for tuple struct field visibility
2020-05-02 18:25:38 +02:00
Benjamin Coenen
6d5f3922f7
Add unwrap block assist #4156
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-02 12:31:11 +02:00
Benjamin Coenen
0b40876b99
Merge branch 'master' of github.com:rust-analyzer/rust-analyzer
2020-05-02 12:25:04 +02:00
Benjamin Coenen
eea21738ab
Add unwrap block assist #4156
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-02 12:20:39 +02:00
Aleksey Kladov
b73dbbfbf2
Add missing members generates indented blocks
2020-05-02 11:53:07 +02:00
Aleksey Kladov
4f2134cc33
Introduce EffectExpr
2020-05-02 11:21:39 +02:00
Benjamin Coenen
df7899e47a
Add unwrap block assist #4156
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-01 16:41:29 +02:00
Benjamin Coenen
dc34162450
Merge branch 'master' of github.com:rust-analyzer/rust-analyzer
2020-05-01 16:26:30 +02:00
Edwin Cheng
44f5e2048c
Remove lower_path from AssistCtx to Semantic
2020-05-01 20:05:12 +08:00
Edwin Cheng
bdcf6f5658
Introduce LowerCtx for path lowering
2020-05-01 20:01:17 +08:00
Benjamin Coenen
bbe22640b8
Add unwrap block assist #4156
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-29 14:53:47 +02:00
Aleksey Kladov
b4dd475257
More principled approach for finding From trait
2020-04-29 14:51:44 +02:00
Benjamin Coenen
76733f0cd4
Add unwrap block assist #4156
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-29 14:08:30 +02:00
Aleksey Kladov
7c3c289dab
Use specific pattern when translating if-let-else to match
...
We *probably* should actually use the same machinery here, as we do
for fill match arms, but just special-casing options and results seems
to be a good first step.
2020-04-29 11:59:11 +02:00
Aleksey Kladov
73bef854ab
Move shared assist code to utils
2020-04-29 10:38:51 +02:00
Aleksey Kladov
63a462f37c
Switch to TryFrom
2020-04-25 11:59:18 +02:00
Aleksey Kladov
8843588fca
Convert tests to text-size
2020-04-25 11:59:18 +02:00
Aleksey Kladov
b1d5817dd1
Convert code to text-size
2020-04-25 11:59:18 +02:00
Timo Freiberg
f2f882bc44
Add pub(crate)
to functions generated in other module
2020-04-21 23:04:44 +02:00
Timo Freiberg
74780a15f6
Jump to sourceChanges in other files
2020-04-21 23:04:44 +02:00
Timo Freiberg
ba8faf3efc
Add target file information to AssistAction
2020-04-21 23:04:44 +02:00
Timo Freiberg
317fc650d5
Make add_function generate functions in other modules via qualified path
2020-04-21 23:04:44 +02:00
Kirill Bulatov
ce06a6b422
Do not add default and closure types in 'add explicit type' assist
2020-04-21 22:56:40 +03:00
Aleksey Kladov
8a04372fec
Fix panic in split_imports assist
...
The fix is admittedly quit literally just papering over.
Long-term, I see two more principled approaches:
* we switch to a fully tree-based impl, without parse . to_string
step; with this approach, there shouldn't be any panics. The results
might be nonsensical, but so was the original input.
* we preserve the invariant that re-parsing constructed node is an
identity, and make all the `make_xxx` method return an `Option`.
closes #4044
2020-04-20 16:34:01 +02:00
Jeremy Kolb
d7f3d858ad
Some clippy fixes
2020-04-19 15:15:49 -04:00
Timo Freiberg
1231418f31
Change add_function assist to use todo!()
2020-04-13 22:17:06 +02:00
IceSentry
ed0eedb1dd
Fix PR
2020-04-13 13:59:30 -04:00
IceSentry
2e279ca031
Generalize test and clean up imports
2020-04-12 21:34:01 -04:00
IceSentry
abdf725c55
Fix double comma when merge imports on second line
...
This fixes the a bug when merging imports from the second line when it already has a comma it would previously insert a comma.
There's probably a better way to check for a COMMA.
This also ends up with a weird indentation, but rust-fmt can easily deal with it so I'm not sure how to resolve that.
Closes #3832
2020-04-12 21:29:14 -04:00
Laurențiu Nicola
e809328c12
Remove more unnecessary braces
2020-04-12 18:20:03 +03:00
Aleksey Kladov
5e5eb6a108
Align grammar for record patterns and literals
...
The grammar now looks like this
[name_ref :] pat
2020-04-12 00:00:15 +02:00
bors[bot]
fd06fe7b13
Merge #3925
...
3925: Implement assist "Reorder field names" r=matklad a=geoffreycopin
This PR implements the "Reorder record fields" assist as discussed in issue #3821 .
Adding a `RecordFieldPat` variant to the `Pat` enum seemed like the easiest way to handle the `RecordPat` children as a single sequence of elements, maybe there is a better way ?
Co-authored-by: Geoffrey Copin <copin.geoffrey@gmail.com>
2020-04-11 18:40:46 +00:00
Geoffrey Copin
d9089245fe
Generate doc
2020-04-11 20:32:58 +02:00
Geoffrey Copin
d362fcfc1c
Fix doc tests
2020-04-11 20:32:48 +02:00
Geoffrey Copin
25a0ce2e9e
Add documentation comment
2020-04-11 19:39:10 +02:00