cmd/cue/cmd/getgo: don't be clever

Also include local types, even if they are not used.

We can still drop the addtional "enum" type as that
is a figment of cue get go's imagination and will
never be used by generated code.

Fixes #634

Change-Id: I304fc833a3a5af5b4cb24c0f37ee0fd6f368dba3
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/8205
Reviewed-by: CUE cueckoo <cueckoo@gmail.com>
Reviewed-by: Paul Jolly <paul@myitcv.org.uk>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/cmd/cue/cmd/get_go.go b/cmd/cue/cmd/get_go.go
index f70a1bc..2dbdab7 100644
--- a/cmd/cue/cmd/get_go.go
+++ b/cmd/cue/cmd/get_go.go
@@ -237,9 +237,6 @@
 }
 
 func (e *extractor) filter(name string) bool {
-	if !ast.IsExported(name) {
-		return true
-	}
 	for _, ex := range e.exclusions {
 		if ex.MatchString(name) {
 			return true
@@ -637,7 +634,7 @@
 
 			}
 
-			if len(enums) > 0 {
+			if len(enums) > 0 && ast.IsExported(name) {
 				enumName := "#enum" + name
 				cueast.AddComment(a[len(a)-1], internal.NewComment(false, enumName))
 
diff --git a/cmd/cue/cmd/testdata/code/go/pkg1/file1.go b/cmd/cue/cmd/testdata/code/go/pkg1/file1.go
index ff3548b..1d20764 100644
--- a/cmd/cue/cmd/testdata/code/go/pkg1/file1.go
+++ b/cmd/cue/cmd/testdata/code/go/pkg1/file1.go
@@ -111,7 +111,13 @@
 	return nil, nil
 }
 
-type excludeType int
+type localType int
+
+const (
+	localConst localType = 1
+
+	_ = localConst // silence linter
+)
 
 type Inline struct {
 	Kind string
diff --git a/cmd/cue/cmd/testdata/pkg/cuelang.org/go/cmd/cue/cmd/testdata/code/go/pkg1/file1_go_gen.cue b/cmd/cue/cmd/testdata/pkg/cuelang.org/go/cmd/cue/cmd/testdata/code/go/pkg1/file1_go_gen.cue
index 1552fb2..d9ef845 100644
--- a/cmd/cue/cmd/testdata/pkg/cuelang.org/go/cmd/cue/cmd/testdata/code/go/pkg1/file1_go_gen.cue
+++ b/cmd/cue/cmd/testdata/pkg/cuelang.org/go/cmd/cue/cmd/testdata/code/go/pkg1/file1_go_gen.cue
@@ -80,6 +80,10 @@
 #CustomYAML: {
 }
 
+_#localType: int
+
+_#localConst: _#localType & 1
+
 #Inline: Kind: string
 
 #NoInline: Kind: string