diff --git a/src/go/go2go/instantiate.go b/src/go/go2go/instantiate.go index 0afa8ed251..f7731df6fa 100644 --- a/src/go/go2go/instantiate.go +++ b/src/go/go2go/instantiate.go @@ -464,6 +464,15 @@ func (t *translator) instantiateExpr(ta *typeArgs, e ast.Expr) ast.Expr { } } return e + case *ast.Ellipsis: + elt := t.instantiateExpr(ta, e.Elt) + if elt == e.Elt { + return e + } + return &ast.Ellipsis{ + Ellipsis: e.Ellipsis, + Elt: elt, + } case *ast.BasicLit: return e case *ast.FuncLit: diff --git a/src/go/go2go/rewrite.go b/src/go/go2go/rewrite.go index 597b1bd4d6..94db2469bb 100644 --- a/src/go/go2go/rewrite.go +++ b/src/go/go2go/rewrite.go @@ -407,9 +407,9 @@ func (t *translator) translateExpr(pe *ast.Expr) { } switch e := (*pe).(type) { case *ast.Ident: - return + case *ast.Ellipsis: + t.translateExpr(&e.Elt) case *ast.BasicLit: - return case *ast.FuncLit: t.translateFieldList(e.Type.TParams) t.translateFieldList(e.Type.Params)