228bda9fb3
Summary: Filter out gas linter error checks for fmt.Fprintf commands. This required defining a custom linter around gas that additionally included the offending code. Notes: Gas format, without piping it through gometalinter, gives output like this: $ gas -fmt=csv geth/jail/console/console.go geth/jail/console/console.go,21,Errors unhandled.,LOW,HIGH,"fmt.Fprintf(w, ""%s: %s"", consoleEventName, formatForConsole(fn.ArgumentList))" Gometalinter, by default, does not grab the line of code when it filters gas errors. To resolve this, I created a wrapper around gas (I wasn't sure what to call this "gas wrapper", I opted for gasv2, open to other names). The first part of the regular expression was taken directly from gometalinter (see https://github.com/alecthomas/gometalinter/blob/master/linters.go#L236), and I then appended ,\".*\" to additionally grab the line of code of the offending line. Lastly, I excluded ".*Errors unhandled.*fmt.Fprintf.*" to filter out only fmt.Fprintf errors around omitted errors. Also as a result of this change, gas lint output will now include the offending code. Closes #590
36 lines
763 B
JSON
36 lines
763 B
JSON
{
|
|
"Exclude": [
|
|
".*_mock.go",
|
|
"geth/jail/doc.go",
|
|
".*Errors unhandled.*fmt.Fprint.*gasv2.*"
|
|
],
|
|
"Skip": ["helpers", "static"],
|
|
"Vendor": true,
|
|
"Test": true,
|
|
"Linters": {
|
|
"gasv2": {
|
|
"Command": "gas -fmt=csv",
|
|
"Pattern": "^(?P<path>.*?\\.go),(?P<line>\\d+),(?P<message>[^,]+,[^,]+,[^,]+,\".*\")"
|
|
}
|
|
},
|
|
"Enable": [
|
|
"deadcode",
|
|
"errcheck",
|
|
"gasv2",
|
|
"goconst",
|
|
"gocyclo",
|
|
"gofmt",
|
|
"golint",
|
|
"ineffassign",
|
|
"interfacer",
|
|
"megacheck",
|
|
"misspell",
|
|
"structcheck",
|
|
"unconvert",
|
|
"unparam",
|
|
"varcheck",
|
|
"vet"
|
|
],
|
|
"Cyclo": 16,
|
|
"Deadline": "200s"
|
|
}
|