Test of warning diagnostics from various analyzers:
copylocks, printf, slog, tests, timeformat, and nilness.

-- go.mod --
module example.com
go 1.12

-- flags --
-min_go=go1.21

-- bad_test.go --
package analyzer

import (
	"fmt"
	"sync"
	"testing"
	"time"
)

// copylocks
func _() {
	var x sync.Mutex
	_ = x //@diag("x", re"assignment copies lock value to _: sync.Mutex")
}

// printf
func _() {
	printfWrapper("%s") //@diag(re`printfWrapper\(.*\)`, re"example.com.printfWrapper format %s reads arg #1, but call has 0 args")
}

func printfWrapper(format string, args ...interface{}) {
	fmt.Printf(format, args...)
}

// tests
func Testbad(t *testing.T) { //@diag("", re"Testbad has malformed name: first letter after 'Test' must not be lowercase")
}

// timeformat
func _() {
	now := time.Now()
	fmt.Println(now.Format("2006-02-01")) //@diag("2006-02-01", re"2006-02-01 should be 2006-01-02")
}

// nilness
func _(ptr *int) {
	if ptr == nil {
		_ = *ptr //@diag("*ptr", re"nil dereference in load")
	}
}

-- bad_test_go121.go --
//go:build go1.21

package analyzer

import "log/slog"

// slog
func _() {
	slog.Info("msg", 1) //@diag("1", re`slog.Info arg "1" should be a string or a slog.Attr`)
}
