cue icon indicating copy to clipboard operation
cue copied to clipboard

cmd/cue: exp gengotypes fails to handle conflicting imports

Open phoban01 opened this issue 10 months ago • 0 comments

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"`
}

phoban01 avatar Jun 17 '25 15:06 phoban01