1
0
mirror of https://github.com/golang/go synced 2024-11-26 16:46:58 -07:00

[dev.typeparams] go/types: fix the type parameter index in applyTypeFunc

We should preserve type parameter indices when transforming them using
applyTypeFunc.

Change-Id: Ib75f5cf1a146bd7e6850368fa954c1affcba3ad1
Reviewed-on: https://go-review.googlesource.com/c/go/+/327269
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Robert Griesemer <gri@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
Rob Findley 2021-06-11 12:40:42 -04:00 committed by Robert Findley
parent 6bf2667d4e
commit c6d3d0b0ad
2 changed files with 2 additions and 2 deletions

View File

@ -802,7 +802,7 @@ func (check *Checker) applyTypeFunc(f func(Type) Type, x Type) Type {
// type param is placed in the current package so export/import // type param is placed in the current package so export/import
// works as expected. // works as expected.
tpar := NewTypeName(nopos, check.pkg, "<type parameter>", nil) tpar := NewTypeName(nopos, check.pkg, "<type parameter>", nil)
ptyp := check.NewTypeParam(tpar, 0, &emptyInterface) // assigns type to tpar as a side-effect ptyp := check.NewTypeParam(tpar, tp.index, &emptyInterface) // assigns type to tpar as a side-effect
tsum := newUnion(rtypes, tildes) tsum := newUnion(rtypes, tildes)
ptyp.bound = &Interface{complete: true, tset: &TypeSet{types: tsum}} ptyp.bound = &Interface{complete: true, tset: &TypeSet{types: tsum}}

View File

@ -806,7 +806,7 @@ func (check *Checker) applyTypeFunc(f func(Type) Type, x Type) Type {
// type param is placed in the current package so export/import // type param is placed in the current package so export/import
// works as expected. // works as expected.
tpar := NewTypeName(token.NoPos, check.pkg, "<type parameter>", nil) tpar := NewTypeName(token.NoPos, check.pkg, "<type parameter>", nil)
ptyp := check.NewTypeParam(tpar, 0, &emptyInterface) // assigns type to tpar as a side-effect ptyp := check.NewTypeParam(tpar, tp.index, &emptyInterface) // assigns type to tpar as a side-effect
tsum := newUnion(rtypes, tildes) tsum := newUnion(rtypes, tildes)
ptyp.bound = &Interface{complete: true, tset: &TypeSet{types: tsum}} ptyp.bound = &Interface{complete: true, tset: &TypeSet{types: tsum}}