cmd/internal/gc: unembed Node.Func

This is a follow-up to CL 7360.

It was generated with eg and gofmt -r.

The only manual changes are the unembedding in syntax.go
and backporting changes from y.go to go.y.

Passes toolstash -cmp.

Change-Id: I3d6d06ecb659809a4bc8592395d5b9a18967218e
Reviewed-on: https://go-review.googlesource.com/8053
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
diff --git a/src/cmd/internal/gc/dcl.go b/src/cmd/internal/gc/dcl.go
index 4e298a3..846ec7d 100644
--- a/src/cmd/internal/gc/dcl.go
+++ b/src/cmd/internal/gc/dcl.go
@@ -197,7 +197,7 @@
 			Fatal("automatic outside function")
 		}
 		if Curfn != nil {
-			Curfn.Dcl = list(Curfn.Dcl, n)
+			Curfn.Func.Dcl = list(Curfn.Func.Dcl, n)
 		}
 		if n.Op == OTYPE {
 			declare_typegen++
@@ -445,7 +445,7 @@
 			n.Closure = c
 			c.Closure = n
 			c.Xoffset = 0
-			Curfn.Cvars = list(Curfn.Cvars, c)
+			Curfn.Func.Cvars = list(Curfn.Func.Cvars, c)
 		}
 
 		// return ref to closure var, not original
@@ -1486,7 +1486,7 @@
 	s1 := Pkglookup(s.Name+"·f", s.Pkg)
 	if s1.Def == nil {
 		s1.Def = newfuncname(s1)
-		s1.Def.Shortname = newname(s)
+		s1.Def.Func.Shortname = newname(s)
 		funcsyms = list(funcsyms, s1.Def)
 	}
 	s.Fsym = s1