73 lines
1.6 KiB
Go
73 lines
1.6 KiB
Go
//golangcitest:args -Egocritic
|
|
//golangcitest:config_path testdata/configs/gocritic.yml
|
|
package testdata
|
|
|
|
import (
|
|
"flag"
|
|
"io"
|
|
"log"
|
|
"strings"
|
|
)
|
|
|
|
var _ = *flag.Bool("global1", false, "") // want `flagDeref: immediate deref in \*flag.Bool\(.global1., false, ..\) is most likely an error; consider using flag\.BoolVar`
|
|
|
|
type size1 struct {
|
|
a [12]bool
|
|
}
|
|
|
|
type size2 struct {
|
|
size1
|
|
b [12]bool
|
|
}
|
|
|
|
func gocriticAppendAssign() {
|
|
var positives, negatives []int
|
|
positives = append(negatives, 1)
|
|
negatives = append(negatives, -1)
|
|
log.Print(positives, negatives)
|
|
}
|
|
|
|
func gocriticDupSubExpr(x bool) {
|
|
if x && x { // want "dupSubExpr: suspicious identical LHS and RHS.*"
|
|
log.Print("x is true")
|
|
}
|
|
}
|
|
|
|
func gocriticHugeParamSize1(ss size1) {
|
|
log.Print(ss)
|
|
}
|
|
|
|
func gocriticHugeParamSize2(ss size2) { // want "hugeParam: ss is heavy \\(24 bytes\\); consider passing it by pointer"
|
|
log.Print(ss)
|
|
}
|
|
|
|
func gocriticHugeParamSize2Ptr(ss *size2) {
|
|
log.Print(*ss)
|
|
}
|
|
|
|
func gocriticSwitchTrue() {
|
|
switch true {
|
|
case false:
|
|
log.Print("false")
|
|
default:
|
|
log.Print("default")
|
|
}
|
|
}
|
|
|
|
func goCriticPreferStringWriter(w interface {
|
|
io.Writer
|
|
io.StringWriter
|
|
}) {
|
|
w.Write([]byte("test")) // want "ruleguard: w\\.WriteString\\(\"test\"\\) should be preferred.*"
|
|
}
|
|
|
|
func gocriticStringSimplify() {
|
|
s := "Most of the time, travellers worry about their luggage."
|
|
s = strings.Replace(s, ",", "", -1) // want "ruleguard: this Replace call can be simplified.*"
|
|
log.Print(s)
|
|
}
|
|
|
|
func gocriticRuleWrapperFunc() {
|
|
strings.Replace("abcabc", "a", "d", -1) // want "ruleguard: this Replace call can be simplified.*"
|
|
}
|