Vladyslav Katasonov
86ff1d4809
allow &mut param
when extracting function
...
Recognise &mut as variable modification.
This allows extracting functions with
`&mut var` with `var` being in outer scope
2021-02-04 00:27:31 +03:00
Vladyslav Katasonov
f102616aae
allow modifications of vars from outer scope inside extracted function
...
It currently allows only directly setting variable.
No `&mut` references or methods.
2021-02-03 23:45:03 +03:00
Vladyslav Katasonov
82787febde
allow local variables to be used after extracted body
...
when variable is defined inside extracted body
export this variable to original scope via return value(s)
2021-02-03 21:11:12 +03:00
Vladyslav Katasonov
313aa5f3a2
change TODO to FIXME
2021-02-03 17:47:21 +03:00
Vladyslav Katasonov
f0d2bb9131
disable test for downgrading mutability on extract
2021-02-03 17:46:57 +03:00
Vladyslav Katasonov
88b3034636
convert IdentPat to Pat via Into
...
before child getter was used
2021-02-03 17:45:36 +03:00
Vladyslav Katasonov
1e6f13a0be
support extracting methods; no mut lowering
...
currently mut refernce will *not* be downgraded to shared
if it is sufficient(see relevant test for example)
2021-02-03 12:27:53 +03:00
Vladyslav Katasonov
bc3ae81a87
initial version of extract function assist
...
there are a few currently limitations:
* no modifications of function body
* does not handle mutability and references
* no method support
* may produce incorrect results
2021-02-03 10:57:11 +03:00
Lukas Wirth
b883a52712
Enable fill_match_arms in macros
2021-01-27 22:32:40 +01:00
Dániel Buga
789efede82
Add failing test case
2021-01-26 14:48:03 +01:00
Dániel Buga
5728d7186e
Deduplicate variant matching
2021-01-22 23:39:43 +01:00
Dániel Buga
24f0cd8293
replace_if_let_with_match: don't assume sad pattern
2021-01-22 23:29:51 +01:00
bors[bot]
b16add934d
Merge #7310 #7395
...
7310: Add assist: add lifetime to type r=matklad a=bnjjj
close #7200
7395: Obtain `ModuleId`'s `DefMap` through a method r=jonas-schievink a=jonas-schievink
Once `ModuleId` can represent modules inside block expressions, this will be required in order to obtain the correct `DefMap`. Otherwise existing code might use a `LocalModuleId` from the wrong `DefMap` and cause a panic.
bors r+
Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-01-22 15:45:50 +00:00
Benjamin Coenen
06f1c8f5a1
Add assist: add lifetime to type #7200
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2021-01-21 09:53:24 +01:00
Jonas Schievink
82146737ac
Treat BlockExpr as a potential module origin
2021-01-20 20:05:48 +01:00
Aleksey Kladov
46b4f89c92
.
2021-01-20 01:56:11 +03:00
Kirill Bulatov
ca65488276
Show deprecated completions for deprecated traits
2021-01-19 01:08:59 +02:00
bors[bot]
342bf41022
Merge #7297 #7338
...
7297: Propose trait associated items and autoimport traits on completion r=matklad a=SomeoneToIgnore
![trait_imports](https://user-images.githubusercontent.com/2690773/104819998-6faeb480-583a-11eb-8b45-b7351b51b90e.gif )
Closes #7248
7338: Parse `impl const Trait` r=Veykril a=Veykril
Closes #7313
bors r+
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-18 19:40:11 +00:00
Benjamin Coenen
35d9944c17
Add assist: add lifetime to type #7200
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2021-01-18 20:38:52 +01:00
bors[bot]
9daba961f2
Merge #7291
...
7291: Wrap remaining self/super/crate in Name{Ref} r=matklad a=Veykril
That should be the remaining special casing for `self` 🎉
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-18 16:13:06 +00:00
Benjamin Coenen
557cf513fa
Add assist: add lifetime to type #7200
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2021-01-17 15:15:23 +01:00
Kirill Bulatov
db335a1bbf
Add flyimport completion for trait assoc items
2021-01-16 20:44:12 +02:00
Kirill Bulatov
6742f38e49
Share import_assets and related entities
2021-01-16 19:33:36 +02:00
Lukas Wirth
98718e0544
Wrap remaining self/super/crate in Name{Ref}
2021-01-15 22:18:43 +01:00
unexge
cbe9335954
Add test mark for skipping single use item
2021-01-15 22:57:10 +03:00
unexge
c303014f39
Create new nodes only when applying changes
2021-01-15 22:35:42 +03:00
unexge
a3a722de9f
Add Unmerge Use assist
2021-01-15 22:14:51 +03:00
bors[bot]
a8587f153b
Merge #7286
...
7286: Remove useless wrapper r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-15 17:16:27 +00:00
Aleksey Kladov
6dbba4d75d
Remove useless wrapper
2021-01-15 20:15:33 +03:00
Daiki Ihara
85cd3524e2
Add support for yiled keyword
2021-01-15 23:35:17 +09:00
Lukas Wirth
d5095329a1
Phase out SourceFileEdits in favour of a plain HashMap
2021-01-14 22:43:36 +01:00
Lukas Wirth
f51457a643
Group file source edits by FileId
2021-01-14 18:35:22 +01:00
Fisher Darling
ba00bb4af9
Sort impls by trait definition
...
Closes #6110
2021-01-13 16:04:37 -07:00
Lukas Wirth
2c1777a2e2
Ensure uniqueness of file ids in reference search via hashmap
2021-01-12 15:51:02 +01:00
Lukas Wirth
fbdb32adfc
Group references by FileId
2021-01-12 01:03:04 +01:00
Lukas Wirth
e618d12903
Replace SyntaxKind usage with T! macro where applicable
2021-01-10 17:14:01 +01:00
Aleksey Kladov
f459375f48
Better fixture highlight
2021-01-07 19:11:27 +03:00
Kevaundray Wedderburn
72b9a4fbd3
Change <|> to $0 - Rebase
2021-01-07 12:09:23 +00:00
Aleksey Kladov
c8ace3a295
Remove some stale deprecations
2021-01-07 13:54:18 +03:00
Aleksey Kladov
f8a0561178
Align config's API with usage
...
The config now is mostly immutable, optimize for that.
2021-01-06 21:22:24 +03:00
Aleksey Kladov
25edc3c60a
Better target for move module
2021-01-06 16:32:45 +03:00
Aleksey Kladov
f9707cde68
Rename expr -> tail_expr
2021-01-05 15:51:13 +03:00
Michael-F-Bryan
7b4b4ef026
Created an inline-function assist ( fixes #6863 )
2021-01-05 04:18:57 +08:00
Aleksey Kladov
46afdb6e9b
rename exrtract_assignment -> pull
...
Vertical code motions are conventionally called "pull up" / "push
down".
"extract" is used for introducing new names.
2021-01-04 16:41:57 +03:00
Jesse Bakker
ba4c42af02
Support assignment to FieldExpr for extract_assignment assist
2021-01-03 15:46:57 +01:00
bors[bot]
520b8a5a4d
Merge #7115
...
7115: Migrate HasSource::source to return Option r=matklad a=nick96
I've made a start on fixing #6913 based on the provided work plan, migrating `HasSource::source` to return an `Option`. The simple cases are migrated but there are a few that I'm unsure exactly how they should be handled:
- Logging the processing of functions in `AnalysisStatsCmd::run`: In verbose mode it includes the path to the module containing the function and the syntax range. I've handled this with an if-let but would it be better to blow up here with `expect`? I'm not 100% on the code paths but if we're processing a function definition then the source should exist.
I've handled `source()` in all code paths as `None` being a valid return value but are there some cases where we should just blow up? Also, all I've done is bubble up the returned `None`s, there may be some places where we can recover and still provide something.
Co-authored-by: Nick Spain <nicholas.spain@stileeducation.com>
Co-authored-by: Nick Spain <nicholas.spain96@gmail.com>
2021-01-03 08:56:17 +00:00
cynecx
59fe884ef5
Fix warnings on rust-nightly
2021-01-02 20:48:39 +01:00
Jesse Bakker
bfe6a8e71a
Add support for MatchExpr to extract_assigment assist
2021-01-02 17:10:46 +01:00
Jesse Bakker
31204e3590
Add extract-assignment assist
2021-01-02 16:59:01 +01:00
Nick Spain
6800c606ec
Handle missing source in target_data_for_def
2021-01-02 21:53:52 +11:00