mirror of https://github.com/golang/go.git
internal/lsp: add parameterized slice test for simplifyslice analysis
Add a test for a parameterized slice to make sure that the simplify slice analysis still finds the simplification. Change-Id: I20d5f064bcae60c752f0dee53472dd5db0b18a89 Reviewed-on: https://go-review.googlesource.com/c/tools/+/352089 Trust: Suzy Mueller <suzmue@golang.org> Run-TryBot: Suzy Mueller <suzmue@golang.org> gopls-CI: kokoro <noreply+kokoro@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
parent
2189684b10
commit
6f5fd9bf41
|
|
@ -9,9 +9,14 @@ import (
|
|||
|
||||
"golang.org/x/tools/go/analysis/analysistest"
|
||||
"golang.org/x/tools/internal/lsp/analysis/simplifyslice"
|
||||
"golang.org/x/tools/internal/typeparams"
|
||||
)
|
||||
|
||||
func Test(t *testing.T) {
|
||||
testdata := analysistest.TestData()
|
||||
analysistest.RunWithSuggestedFixes(t, testdata, simplifyslice.Analyzer, "a")
|
||||
tests := []string{"a"}
|
||||
if typeparams.Enabled {
|
||||
tests = append(tests, "typeparams")
|
||||
}
|
||||
analysistest.RunWithSuggestedFixes(t, testdata, simplifyslice.Analyzer, tests...)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
// Copyright 2021 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
//
|
||||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
package testdata
|
||||
|
||||
type List[E any] []E
|
||||
|
||||
// TODO(suzmue): add a test for generic slice expressions when https://github.com/golang/go/issues/48618 is closed.
|
||||
// type S interface{ ~[]int }
|
||||
|
||||
var (
|
||||
a [10]byte
|
||||
b [20]float32
|
||||
p List[int]
|
||||
|
||||
_ = p[0:]
|
||||
_ = p[1:10]
|
||||
_ = p[2:len(p)] // want "unneeded: len\\(p\\)"
|
||||
_ = p[3:(len(p))]
|
||||
_ = p[len(a) : len(p)-1]
|
||||
_ = p[0:len(b)]
|
||||
_ = p[2:len(p):len(p)]
|
||||
|
||||
_ = p[:]
|
||||
_ = p[:10]
|
||||
_ = p[:len(p)] // want "unneeded: len\\(p\\)"
|
||||
_ = p[:(len(p))]
|
||||
_ = p[:len(p)-1]
|
||||
_ = p[:len(b)]
|
||||
_ = p[:len(p):len(p)]
|
||||
)
|
||||
|
||||
func foo[E any](a List[E]) {
|
||||
_ = a[0:len(a)] // want "unneeded: len\\(a\\)"
|
||||
}
|
||||
39
internal/lsp/analysis/simplifyslice/testdata/src/typeparams/typeparams.go.golden
vendored
Normal file
39
internal/lsp/analysis/simplifyslice/testdata/src/typeparams/typeparams.go.golden
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
// Copyright 2021 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
//
|
||||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
package testdata
|
||||
|
||||
type List[E any] []E
|
||||
|
||||
// TODO(suzmue): add a test for generic slice expressions when https://github.com/golang/go/issues/48618 is closed.
|
||||
// type S interface{ ~[]int }
|
||||
|
||||
var (
|
||||
a [10]byte
|
||||
b [20]float32
|
||||
p List[int]
|
||||
|
||||
_ = p[0:]
|
||||
_ = p[1:10]
|
||||
_ = p[2:] // want "unneeded: len\\(p\\)"
|
||||
_ = p[3:(len(p))]
|
||||
_ = p[len(a) : len(p)-1]
|
||||
_ = p[0:len(b)]
|
||||
_ = p[2:len(p):len(p)]
|
||||
|
||||
_ = p[:]
|
||||
_ = p[:10]
|
||||
_ = p[:] // want "unneeded: len\\(p\\)"
|
||||
_ = p[:(len(p))]
|
||||
_ = p[:len(p)-1]
|
||||
_ = p[:len(b)]
|
||||
_ = p[:len(p):len(p)]
|
||||
)
|
||||
|
||||
func foo[E any](a List[E]) {
|
||||
_ = a[0:] // want "unneeded: len\\(a\\)"
|
||||
}
|
||||
Loading…
Reference in New Issue