Closed tamird closed 3 years ago
in CockroachDB we have a large amount of generated code, mostly from https://github.com/gogo/protobuf and yacc. Running gocyclo gives this:
gocyclo
$ gocyclo -top 10 . 645 parser (*sqlParserImpl).Parse sql/parser/yaccpar:156:1 233 roachpb (*RequestUnion).Unmarshal roachpb/api.pb.go:8930:1 233 roachpb (*ResponseUnion).Unmarshal roachpb/api.pb.go:9706:1 163 roachpb (*ErrorDetail).Unmarshal roachpb/errors.pb.go:2972:1 128 roachpb (*Transaction).Unmarshal roachpb/data.pb.go:2618:1 114 sql (*TableDescriptor).Unmarshal sql/structured.pb.go:1868:1 102 log (*LogEntry).Unmarshal util/log/log.pb.go:280:1 101 sql simplifyOneAndExpr sql/analyze.go:257:1 94 gossip (*Response).Unmarshal gossip/gossip.pb.go:796:1 93 gossip (*Request).Unmarshal gossip/gossip.pb.go:460:1
Of these, sql simplifyOneAndExpr sql/analyze.go:257 is the only hand-written function. To be useful, we need a way to teach gocyclo to ignore certain files, packages, or functions.
sql simplifyOneAndExpr sql/analyze.go:257
Just implemented an ignore flag for gocyclo.
ignore
$ gocyclo -ignore "yacc|\.pb\." .
Get it here.
in CockroachDB we have a large amount of generated code, mostly from https://github.com/gogo/protobuf and yacc. Running
gocyclo
gives this:Of these,
sql simplifyOneAndExpr sql/analyze.go:257
is the only hand-written function. To be useful, we need a way to teach gocyclo to ignore certain files, packages, or functions.