Skip to content

Commit

Permalink
generated code: always return typed value if present
Browse files Browse the repository at this point in the history
Previously, RequestWith would ignore any return if an error was
encountered.

Now, RequestWith returns any value present even if there is an error --
basically a typed pass through.

We also pipe the output through gofumpt twice now to ensure we get
desired output:

   ref: mvdan/gofumpt#132
  • Loading branch information
twmb committed Jun 29, 2021
1 parent 52f2a81 commit f95859e
Show file tree
Hide file tree
Showing 3 changed files with 293 additions and 277 deletions.
8 changes: 4 additions & 4 deletions generate/gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -697,12 +697,12 @@ func (s Struct) WriteDecodeFunc(l *LineWriter) {

func (s Struct) WriteRequestWithFunc(l *LineWriter) {
l.Write("// RequestWith is requests v on r and returns the response or an error.")
l.Write("// For sharded requests, the response may be merged and still return an error.")
l.Write("// It is better to rely on client.RequestSharded than to rely on proper merging behavior.")
l.Write("func (v *%s) RequestWith(ctx context.Context, r Requestor) (*%s, error) {", s.Name, s.ResponseKind)
l.Write("kresp, err := r.Request(ctx, v)")
l.Write("if err != nil {")
l.Write("return nil, err")
l.Write("}")
l.Write("return kresp.(*%s), nil", s.ResponseKind)
l.Write("resp, _ := kresp.(*%s)", s.ResponseKind)
l.Write("return resp, err")
l.Write("}")
}

Expand Down
2 changes: 1 addition & 1 deletion generate/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ func (l *LineWriter) Write(line string, args ...interface{}) {
l.line++
}

//go:generate sh -c "go run . | gofumpt > ../pkg/kmsg/generated.go"
//go:generate sh -c "go run . | gofumpt | gofumpt > ../pkg/kmsg/generated.go"
func main() {
const dir = "definitions"
const enums = "enums"
Expand Down

0 comments on commit f95859e

Please sign in to comment.