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:
parent
6bf2667d4e
commit
c6d3d0b0ad
@ -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}}
|
||||||
|
|
||||||
|
@ -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}}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user