Skip to content

Commit 0fb9b7b

Browse files
Zxillyadonovan
authored andcommitted
gopls: use slices package for reverse slice
slices has been supported in go1.21 and go1.22 Fixes golang/go#66222 Change-Id: I7b319e649632a713200dcaabd1e68d1f01e1b2f2 GitHub-Last-Rev: fc1d59d GitHub-Pull-Request: #484 Reviewed-on: https://go-review.googlesource.com/c/tools/+/572116 LUCI-TryBot-Result: Go LUCI <[email protected]> Reviewed-by: David Chase <[email protected]> Reviewed-by: Alan Donovan <[email protected]>
1 parent c21ae4c commit 0fb9b7b

File tree

3 files changed

+6
-10
lines changed

3 files changed

+6
-10
lines changed

gopls/internal/golang/completion/postfix_snippets.go

+2-5
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,8 @@ var postfixTmpls = []postfixTmpl{{
102102
label: "reverse",
103103
details: "reverse slice",
104104
body: `{{if and (eq .Kind "slice") .StmtOK -}}
105-
{{$i := .VarName nil "i"}}{{$j := .VarName nil "j" -}}
106-
for {{$i}}, {{$j}} := 0, len({{.X}})-1; {{$i}} < {{$j}}; {{$i}}, {{$j}} = {{$i}}+1, {{$j}}-1 {
107-
{{.X}}[{{$i}}], {{.X}}[{{$j}}] = {{.X}}[{{$j}}], {{.X}}[{{$i}}]
108-
}
109-
{{end}}`,
105+
{{.Import "slices"}}.Reverse({{.X}})
106+
{{- end}}`,
110107
}, {
111108
label: "range",
112109
details: "range over slice",

gopls/internal/test/integration/completion/postfix_snippet_test.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,11 @@ func _() {
108108
after: `
109109
package foo
110110
111+
import "slices"
112+
111113
func _() {
112114
var foo []int
113-
for i, j := 0, len(foo)-1; i < j; i, j = i+1, j-1 {
114-
foo[i], foo[j] = foo[j], foo[i]
115-
}
116-
115+
slices.Reverse(foo)
117116
}
118117
`,
119118
},

gopls/internal/test/marker/testdata/completion/postfix.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func _() {
6363
foo.len //@snippet(" //", postfixLen, "len(foo)")
6464
foo.print //@snippet(" //", postfixPrint, `fmt.Printf("foo: %v\n", foo)`)
6565
foo.rang //@snippet(" //", postfixRange, "for ${1:}, ${2:} := range foo {\n\t$0\n}")
66-
foo.reverse //@snippet(" //", postfixReverse, "for i, j := 0, len(foo)-1; i < j; i, j = i+1, j-1 {\n\tfoo[i], foo[j] = foo[j], foo[i]\n}\n")
66+
foo.reverse //@snippet(" //", postfixReverse, "slices.Reverse(foo)")
6767
foo.sort //@snippet(" //", postfixSort, "sort.Slice(foo, func(i, j int) bool {\n\t$0\n})")
6868
foo.va //@snippet(" //", postfixVar, "${1:} := foo")
6969
foo.ifnotnil //@snippet(" //", postfixIfNotNil, "if foo != nil {\n\t$0\n}")

0 commit comments

Comments
 (0)