golang/go

x/tools/gopls/internal/analysis/modernize: add pass to use reflect.TypeAssert

Open

#75.422 aberto em 11 de set. de 2025

Ver no GitHub
 (5 comments) (0 reactions) (0 assignees)Go (19.008 forks)batch import
AnalysisFeatureRequestToolsgoplshelp wanted

Métricas do repositório

Stars
 (133.883 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

https://go.dev/cl/702735 replaced v.Interface().(T) with reflect.TypeAssert[T](v), where v is a reflect.Value, and demonstrated a significant performance improvement. Although the new code is 7 chars longer, it is more direct and arguably clearer. We should add a modernizer to automate this transformation when v.Interface().(T) appears in a two-value (x, ok := ...) context in a file using go1.25 or later. The doc comment for TypeAssert states that they are "semantically equivalent".

Guia do colaborador