diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 7e167edf465c..37324b856153 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1159,13 +1159,14 @@ linters-settings: max: 5 ireturn: - # ireturn allows using `allow` and `reject` settings at the same time. + # ireturn does not allow using `allow` and `reject` settings at the same time. # Both settings are lists of the keywords and regular expressions matched to interface or package names. # keywords: # - `empty` for `interface{}` # - `error` for errors # - `stdlib` for standard library # - `anon` for anonymous interfaces + # - `generic` for generic interfaces added in go 1.18 # By default, it allows using errors, empty interfaces, anonymous interfaces, # and interfaces provided by the standard library. diff --git a/test/testdata/configs/ireturn_reject_generics.yml b/test/testdata/configs/ireturn_reject_generics.yml new file mode 100644 index 000000000000..90289d1306ae --- /dev/null +++ b/test/testdata/configs/ireturn_reject_generics.yml @@ -0,0 +1,4 @@ +linters-settings: + ireturn: + reject: + - generic diff --git a/test/testdata/configs/ireturn_stdlib_reject.yml b/test/testdata/configs/ireturn_reject_stdlib.yml similarity index 100% rename from test/testdata/configs/ireturn_stdlib_reject.yml rename to test/testdata/configs/ireturn_reject_stdlib.yml diff --git a/test/testdata/ireturn_reject_generics.go b/test/testdata/ireturn_reject_generics.go new file mode 100644 index 000000000000..ea5be6884c7d --- /dev/null +++ b/test/testdata/ireturn_reject_generics.go @@ -0,0 +1,25 @@ +//golangcitest:args -Eireturn +//golangcitest:config_path testdata/configs/ireturn_reject_generics.yml +package testdata + +import ( + "bytes" + "io" +) + +func NewWriter() io.Writer { + var buf bytes.Buffer + return &buf +} + +func TestError() error { + return nil +} + +func Get[K comparable, V int64 | float64](m map[K]V) V { // want `Get returns generic interface \(V\)` + var s V + for _, v := range m { + s += v + } + return s +} diff --git a/test/testdata/ireturn_reject_stdlib.go b/test/testdata/ireturn_reject_stdlib.go index 8f09e785cf68..3c935b855b7e 100644 --- a/test/testdata/ireturn_reject_stdlib.go +++ b/test/testdata/ireturn_reject_stdlib.go @@ -1,5 +1,5 @@ //golangcitest:args -Eireturn -//golangcitest:config_path testdata/configs/ireturn_stdlib_reject.yml +//golangcitest:config_path testdata/configs/ireturn_reject_stdlib.yml package testdata import (