golang/go

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

Open

#75 422 ouverte le 11 sept. 2025

Voir sur GitHub
 (5 commentaires) (0 réactions) (0 assignés)Go (19 008 forks)batch import
AnalysisFeatureRequestToolsgoplshelp wanted

Métriques du dépôt

Stars
 (133 883 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

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".

Guide contributeur