1
0
mirror of https://github.com/golang/go synced 2024-11-05 11:56:12 -07:00
go/internal/lsp/source
Josh Baum 110bd3ba6b internal/lsp: make function extraction smarter
In the previous implementation, the extracted function would
sometimes include superfluous parameters and return values. It
might also  unnecessarily initialize variables. This CL introduces
3 rules to limit this behavior. (1) a variable is not passed as a
parameter to the extracted function if its first use within the
function is its own redefinition. (2) a variable is not returned
from the extracted function if its first use after the function is its
own redefinition. (3) when possible, we redefine variables in the call
expression to the extracted function.

Change-Id: Ideb5a7eff8a1bf462c83271a2f043116ff5d8b76
Reviewed-on: https://go-review.googlesource.com/c/tools/+/244770
Run-TryBot: Josh Baum <joshbaum@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-08-06 19:37:29 +00:00
..
code_lens.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
command.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
comment_test.go internal/lsp: convert comments to markdown before sending to client 2019-10-04 18:35:38 +00:00
comment.go internal/lsp: fix errors found by staticcheck 2020-03-19 19:20:54 +00:00
completion_builtin.go internal/lsp/source: simplify variadic logic in completion 2020-08-06 02:28:45 +00:00
completion_format.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
completion_keywords.go internal/lsp/source: offer loop keyword completions in range stmt 2020-03-12 04:57:24 +00:00
completion_labels.go internal/lsp: use one context throughout completion 2020-04-06 16:51:37 +00:00
completion_literal.go internal/lsp/source: simplify variadic logic in completion 2020-08-06 02:28:45 +00:00
completion_snippet.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
completion_statements.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
completion.go internal/lsp/source: simplify variadic logic in completion 2020-08-06 02:28:45 +00:00
deep_completion.go internal/lsp: use one context throughout completion 2020-04-06 16:51:37 +00:00
diagnostics.go internal/lsp: separate LSP files from FS files 2020-08-03 22:16:06 +00:00
extract.go internal/lsp: make function extraction smarter 2020-08-06 19:37:29 +00:00
folding_range.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
format_test.go internal/lsp: handle bad formatting with CRLF line endings 2020-07-28 16:05:17 +00:00
format.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
gc_annotations.go internal/lsp: add options to control which details gc_details shows 2020-08-05 22:37:31 +00:00
highlight.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
hover.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
identifier_test.go internal/lsp/source: add a unit test for searchForEnclosing 2020-07-28 18:51:24 +00:00
identifier.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
implementation.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
options.go internal/lsp: add options to control which details gc_details shows 2020-08-05 22:37:31 +00:00
references.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
rename_check.go internal/lsp: add changeMethods logic to rename check 2020-07-13 19:50:33 +00:00
rename.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
signature_help.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
source_test.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
symbols.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
types_format.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
util.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
view.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
workspace_symbol.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00