golang/go

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

Open

#75,422 建立於 2025年9月11日

在 GitHub 查看
 (5 留言) (0 反應) (0 負責人)Go (133,883 star) (19,008 fork)batch import
AnalysisFeatureRequestToolsgoplshelp wanted

描述

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

貢獻者指南