// build

// Copyright 2022 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 main

type S[K, V any] struct {
	E[V]
}

type E[K any] struct{}

func (e E[K]) M() E[K] {
	return e
}

func G[K, V any](V) {
	_ = (*S[K, V]).M
}

func main() {
	G[*int](new(int))
}