pkg/text/template: fix Execute builtin

Change-Id: I3fb79c347c2d0878ea0fdb062f53f9903bd9461a
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/2041
Reviewed-by: Marcel van Lohuizen <mpvl@google.com>
diff --git a/cue/builtins.go b/cue/builtins.go
index e435b18..fb621c3 100644
--- a/cue/builtins.go
+++ b/cue/builtins.go
@@ -1854,8 +1854,12 @@
 					if err != nil {
 						return "", err
 					}
+					var x interface{}
+					if err := data.Decode(&x); err != nil {
+						return "", err
+					}
 					buf := &bytes.Buffer{}
-					if err := t.Execute(buf, data); err != nil {
+					if err := t.Execute(buf, x); err != nil {
 						return "", err
 					}
 					return buf.String(), nil
diff --git a/cue/gen.go b/cue/gen.go
index f2b7832..a255876 100644
--- a/cue/gen.go
+++ b/cue/gen.go
@@ -247,7 +247,7 @@
 			case token.VAR:
 				for _, spec := range x.Specs {
 					if ast.IsExported(spec.(*ast.ValueSpec).Names[0].Name) {
-						log.Fatal("var declarations not supported")
+						log.Fatal("gen %s: var declarations not supported", filename)
 					}
 				}
 				printer.Fprint(g.decls, g.fset, x)
@@ -257,12 +257,12 @@
 				// TODO: support type declarations.
 				for _, spec := range x.Specs {
 					if ast.IsExported(spec.(*ast.TypeSpec).Name.Name) {
-						log.Fatal("type declarations not supported")
+						log.Fatal("gen %s: type declarations not supported", filename)
 					}
 				}
 				continue
 			default:
-				log.Fatalf("unexpected spec of type %s", x.Tok)
+				log.Fatalf("gen %s: unexpected spec of type %s", filename, x.Tok)
 			}
 		case *ast.FuncDecl:
 			g.genFun(x)
diff --git a/pkg/text/template/manual.go b/pkg/text/template/manual.go
index 3895917..646f5e8 100644
--- a/pkg/text/template/manual.go
+++ b/pkg/text/template/manual.go
@@ -27,8 +27,12 @@
 	if err != nil {
 		return "", err
 	}
+	var x interface{}
+	if err := data.Decode(&x); err != nil {
+		return "", err
+	}
 	buf := &bytes.Buffer{}
-	if err := t.Execute(buf, data); err != nil {
+	if err := t.Execute(buf, x); err != nil {
 		return "", err
 	}
 	return buf.String(), nil