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