diff options
Diffstat (limited to 'src/go/types/subst.go')
-rw-r--r-- | src/go/types/subst.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/go/types/subst.go b/src/go/types/subst.go index 1934ebab2b..178f717283 100644 --- a/src/go/types/subst.go +++ b/src/go/types/subst.go @@ -97,6 +97,18 @@ func (subst *subster) typ(typ Type) Type { case *Basic: // nothing to do + case *Alias: + rhs := subst.typ(t.fromRHS) + if rhs != t.fromRHS { + // This branch cannot be reached because the RHS of an alias + // may only contain type parameters of an enclosing function. + // Such function bodies are never "instantiated" and thus + // substitution is not called on locally declared alias types. + // TODO(gri) adjust once parameterized aliases are supported + panic("unreachable for unparameterized aliases") + // return subst.check.newAlias(t.obj, rhs) + } + case *Array: elem := subst.typOrNil(t.elem) if elem != t.elem { |