mirror of
https://github.com/go-gitea/gitea.git
synced 2026-08-10 05:24:18 +09:00
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:
@@ -5,13 +5,25 @@ package reqctx
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"maps"
|
||||
"reflect"
|
||||
"sync"
|
||||
|
||||
"gitea.dev/modules/process"
|
||||
)
|
||||
|
||||
// MustContextValue returns the value stored under key. A missing or mistyped value can only
|
||||
// be a programming error, and callers can't do anything useful with a zero value, so it panics.
|
||||
func MustContextValue[T any](ctx context.Context, key any) T {
|
||||
value, ok := ctx.Value(key).(T)
|
||||
if !ok {
|
||||
panic(fmt.Sprintf("context value %v is %T, expected %s", key, ctx.Value(key), reflect.TypeFor[T]()))
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
type ContextDataProvider interface {
|
||||
GetData() ContextData
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user