-
Notifications
You must be signed in to change notification settings - Fork 107
internal/cuegen incompatible with cuelang.org/go v0.16.0 #404
Copy link
Copy link
Open
Description
Overview
The internal/cuegen/cue.go file uses ast.Field.Optional (a token.Pos), which was removed in cuelang.org/go v0.16.0. The field was replaced with ast.Field.Constraint (a token.Token), where token.OPTION represents an optional field.
This causes a compilation error when a downstream project's dependency graph pulls in CUE v0.16.0:
vendor/github.com/redpanda-data/benthos/v4/internal/cuegen/cue.go:171:3:
unknown field Optional in struct literal of type ast.FieldAffected Code
The affected code is in doScalarField():
return &ast.Field{
Label: label,
Value: val,
Optional: optional, // no longer exists in cuelang.org/go v0.16.0
}, nilThe new CUE API equivalent would be:
return &ast.Field{
Label: label,
Value: val,
Constraint: token.OPTION, // when the field should be optional
}, nilReproduction
- In a Go project that depends on
benthos/v4, updatecuelang.org/goto v0.16.0 - Run
go build ./...(orgolangci-lint) - Compilation fails with the error above
Versions
- cuelang.org/go v0.16.0 (breaking change)
- benthos v4.68.0 (latest, still pins CUE v0.15.4)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels