internal/lsp/analysis/unusedparams: add tests for generics

using the typeparams convention.

Change-Id: I42094b75bd43937bdae099473d6241de887456b4
Reviewed-on: https://go-review.googlesource.com/c/tools/+/353289
Trust: Peter Weinberger <pjw@google.com>
Run-TryBot: Peter Weinberger <pjw@google.com>
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:
Peter Weinberger 2021-09-30 11:12:39 -04:00
parent db89b5a197
commit 36e7bf96e1
2 changed files with 61 additions and 1 deletions

View File

@ -0,0 +1,55 @@
// 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.
package typeparams
import (
"bytes"
"fmt"
"net/http"
)
type parent[T any] interface {
n(f T)
}
type yuh[T any] struct {
a T
}
func (y *yuh[int]) n(f bool) {
for i := 0; i < 10; i++ {
fmt.Println(i)
}
}
func a[T comparable](i1 int, i2 T, i3 int) int { // want "potentially unused parameter: 'i2'"
i3 += i1
_ = func(z int) int { // want "potentially unused parameter: 'z'"
_ = 1
return 1
}
return i3
}
func b[T any](c bytes.Buffer) { // want "potentially unused parameter: 'c'"
_ = 1
}
func z[T http.ResponseWriter](h T, _ *http.Request) { // want "potentially unused parameter: 'h'"
fmt.Println("Before")
}
func l(h http.Handler) http.Handler {
return http.HandlerFunc(z[http.ResponseWriter])
}
func mult(a, b int) int { // want "potentially unused parameter: 'b'"
a += 1
return a
}
func y[T any](a T) {
panic("yo")
}

View File

@ -9,9 +9,14 @@ import (
"golang.org/x/tools/go/analysis/analysistest"
"golang.org/x/tools/internal/lsp/analysis/unusedparams"
"golang.org/x/tools/internal/typeparams"
)
func Test(t *testing.T) {
testdata := analysistest.TestData()
analysistest.Run(t, testdata, unusedparams.Analyzer, "a")
tests := []string{"a"}
if typeparams.Enabled {
tests = append(tests, "typeparams")
}
analysistest.Run(t, testdata, unusedparams.Analyzer, tests...)
}