diff options
| author | korzhao <korzhao95@gmail.com> | 2021-09-25 01:13:27 +0800 |
|---|---|---|
| committer | Dan Scales <danscales@google.com> | 2021-09-25 17:06:17 +0000 |
| commit | ba7673069d9be4972a864023d74e9e0dd6a77b80 (patch) | |
| tree | fb4ee910c0145e6d776350eb49e9a5af10885d6b /test/typeparam/issue48598.go | |
| parent | 8854368cb076ea9a2b71c8b3c8f675a8e19b751c (diff) | |
| download | go-ba7673069d9be4972a864023d74e9e0dd6a77b80.tar.xz | |
cmd/compile: add required CONVIFACE nodes when translating OFUNCINST node
In CL 349614. we removed the early transformation code that
was needed to create the implicit CONVIFACE nodes.
Because the transformCall function is not called when translating OFUNCINST.
So we add in needed CONVIFACE nodes via typecheckaste().
Fixes #48598
Change-Id: If9dc7040cdc38ef2e52fdbb08c840095651426f2
Reviewed-on: https://go-review.googlesource.com/c/go/+/351856
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Dan Scales <danscales@google.com>
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'test/typeparam/issue48598.go')
| -rw-r--r-- | test/typeparam/issue48598.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/typeparam/issue48598.go b/test/typeparam/issue48598.go new file mode 100644 index 0000000000..ea360f2135 --- /dev/null +++ b/test/typeparam/issue48598.go @@ -0,0 +1,28 @@ +// run -gcflags=-G=3 + +// 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 main + +type Iterator[T any] interface { + Iterate() +} + +type IteratorFunc[T any] func(fn func(T) bool) + +func (f IteratorFunc[T]) Iterate() { +} + +func FromIterator[T any](it Iterator[T]) { + it.Iterate() +} + +func Foo[T, R any]() { + FromIterator[R](IteratorFunc[R](nil)) +} + +func main() { + Foo[int, int]() +} |
