tektoncd/pipeline

struct `pipelineTask` has a mix value and pointer receivers

Aperta

#7092 aperta il 5 set 2023

 (6 commenti) (1 reazione) (1 assegnatario)Go (1943 fork)auto 404
area/apigood first issuekind/bug

Metriche repository

Star
 (9013 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

We have a mix of value and pointer receiver functions for pipelineTask:

grep -r "func (pt \*PipelineTask)" pkg/apis/pipeline/v1/
pkg/apis/pipeline/v1//pipeline_types.go:func (pt *PipelineTask) IsMatrixed() bool {
pkg/apis/pipeline/v1//pipeline_types.go:func (pt *PipelineTask) TaskSpecMetadata() PipelineTaskMetadata {
pkg/apis/pipeline/v1//pipeline_defaults.go:func (pt *PipelineTask) SetDefaults(ctx context.Context) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateBetaFields(ctx context.Context) *apis.FieldError {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateMatrix(ctx context.Context) (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateResultsFromMatrixedPipelineTasksNotConsumed(matrixedPipelineTasks sets.String) (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateWorkspaces(workspaceNames sets.String) (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) extractAllParams() Params {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateExecutionStatusVariablesDisallowed() (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateExecutionStatusVariablesAllowed(ptNames sets.String) (errs *apis.FieldError) {
grep -r "func (pt PipelineTask)" pkg/apis/pipeline/v1/ 
pkg/apis/pipeline/v1//pipeline_types.go:func (pt PipelineTask) HashKey() string {
pkg/apis/pipeline/v1//pipeline_types.go:func (pt PipelineTask) Deps() []string {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) ValidateName() *apis.FieldError {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) Validate(ctx context.Context) (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) validateEmbeddedOrType() (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) validateRefOrSpec() (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) validateCustomTask() (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) validateTask(ctx context.Context) (errs *apis.FieldError) {

Such usage is not recommended by the Go documentation:

Struct PipelineTask has methods on both value and pointer receivers. Such usage is not recommended by the Go Documentation. 

Evaluate which one is the best approach and convert all of them to one common syntax.

/kind bug

Guida contributor