diff options
Diffstat (limited to 'gopls/internal/lsp/testdata/inlay_hint/type_params.go.golden')
-rw-r--r-- | gopls/internal/lsp/testdata/inlay_hint/type_params.go.golden | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gopls/internal/lsp/testdata/inlay_hint/type_params.go.golden b/gopls/internal/lsp/testdata/inlay_hint/type_params.go.golden new file mode 100644 index 000000000..4819963b7 --- /dev/null +++ b/gopls/internal/lsp/testdata/inlay_hint/type_params.go.golden @@ -0,0 +1,47 @@ +-- inlayHint -- +//go:build go1.18 +// +build go1.18 + +package inlayHint //@inlayHint("package") + +func main() { + ints< map[string]int64> := map[string]int64{ + "first": 34, + "second": 12, + } + + floats< map[string]float64> := map[string]float64{ + "first": 35.98, + "second": 26.99, + } + + SumIntsOrFloats[string, int64](<m: >ints) + SumIntsOrFloats[string, float64](<m: >floats) + + SumIntsOrFloats<[string, int64]>(<m: >ints) + SumIntsOrFloats<[string, float64]>(<m: >floats) + + SumNumbers<[string, int64]>(<m: >ints) + SumNumbers<[string, float64]>(<m: >floats) +} + +type Number interface { + int64 | float64 +} + +func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V { + var s V + for _< K>, v< V> := range m { + s += v + } + return s +} + +func SumNumbers[K comparable, V Number](m map[K]V) V { + var s V + for _< K>, v< V> := range m { + s += v + } + return s +} + |