chore: enable forcetypeassert linter, fix issues (#38804)

Enable [`forcetypeassert`](https://github.com/gostaticanalysis/forcetypeassert)
linter to prevent unchecked type assertions. ~650 issues fixed, most
fixes were clean, some use `setting.PanicInDevOrTesting`.

The only behaviour changes are where code would previously send a 500 error
or panic, a 4xx error is now emitted.

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
silverwind
2026-08-09 12:25:06 +02:00
committed by GitHub
parent fac8bf2eca
commit 76a81b24f9
248 changed files with 1110 additions and 995 deletions
+7 -5
View File
@@ -64,15 +64,17 @@ func CreateTimeLimitCode[T time.Time | string](data string, minutes int, startTi
const format = "200601021504"
var start time.Time
var startTimeAny any = startTimeGeneric
if t, ok := startTimeAny.(time.Time); ok {
start = t
} else {
switch startTime := any(startTimeGeneric).(type) {
case time.Time:
start = startTime
case string:
var err error
start, err = time.ParseInLocation(format, startTimeAny.(string), time.Local)
start, err = time.ParseInLocation(format, startTime, time.Local)
if err != nil {
return "" // return an invalid code because the "parse" failed
}
default:
panic(fmt.Sprintf("unsupported start time type %T", startTime)) // it shouldn't happen
}
startStr := start.Format(format)
end := start.Add(time.Minute * time.Duration(minutes))