diff --git a/pkg/agent/typed.go b/pkg/agent/typed.go index ee8e81b9c..47edd52f0 100644 --- a/pkg/agent/typed.go +++ b/pkg/agent/typed.go @@ -69,8 +69,7 @@ func RunTyped[T any]( } func typeName[T any]() string { - var zero T - t := reflect.TypeOf(zero) + t := reflect.TypeFor[T]() if t.Kind() == reflect.Pointer { t = t.Elem() } diff --git a/pkg/agent/typed_test.go b/pkg/agent/typed_test.go index c81f8939e..48d513de7 100644 --- a/pkg/agent/typed_test.go +++ b/pkg/agent/typed_test.go @@ -120,6 +120,24 @@ func TestTypeName(t *testing.T) { assert.Equal(t, "status", typeName[Status]()) }, ) + + t.Run( + "any interface returns output", + func(t *testing.T) { + t.Parallel() + + assert.Equal(t, "output", typeName[any]()) + }, + ) + + t.Run( + "named interface returns lowercased name", + func(t *testing.T) { + t.Parallel() + + assert.Equal(t, "error", typeName[error]()) + }, + ) } func TestRunTyped(t *testing.T) {