aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/types2/testdata/fixedbugs/issue39754.go2
blob: f70b8d0ce0388757004f3797bac5cae749429177 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Copyright 2020 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 p

type Optional[T any] struct {}

func (_ Optional[T]) Val() (T, bool)

type Box[T any] interface {
	Val() (T, bool)
}

func f[V interface{}, A, B Box[V]]() {}

func _() {
	f[int, Optional[int], Optional[int]]()
	_ = f[int, Optional[int], Optional /* ERROR does not satisfy Box */ [string]]
	// TODO(gri) Provide better position information here.
	//           See TODO in call.go, Checker.arguments.
	f[int, Optional[int], Optional[string]]( /* ERROR does not satisfy Box */ )
}