cue
cue copied to clipboard
cmd/cue: exp gengotypes fails to handle conflicting imports
What version of CUE are you using (cue version)?
cue version v0.13.1
go version go1.24.4
-buildmode exe
-compiler gc
-trimpath true
CGO_ENABLED 0
GOARCH arm64
GOOS darwin
GOARM64 v8.0
cue.lang.version v0.13.0
Does this issue reproduce with the latest stable release?
Yes
What did you do?
Execute cue exp gengotypes with the following source:
package v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
)
#Object: {
metadata: metav1.ObjectMeta @go(,type="k8s.io/apimachinery/pkg/apis/meta/v1".ObjectMeta)
values: apiextensionsv1.JSON@go(,type="k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1".JSON)
}
What did you expect to see?
// Code generated by "cue exp gengotypes"; DO NOT EDIT.
package v1alpha1
import (
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
type Object struct {
Metadata metav1.ObjectMeta `json:"metadata"`
Values apiextensionsv1.JSON `json:"values"`
}
What did you see instead?
The generated Go-code cannot be compiled because the imports includes conflicting package names.
// Code generated by "cue exp gengotypes"; DO NOT EDIT.
package v1alpha1
import (
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1"
)
type Object struct {
Metadata v1.ObjectMeta `json:"metadata"`
Values v1.JSON `json:"values"`
}