以下の内容はhttps://blog.utgw.net/entry/2026/02/24/153341より取得しました。


Go 1.26.0時点のgo fix -inlineコマンドはジェネリックな関数の型引数を省略した呼び出しをインライン化しない

冒頭に貼ったツイートが全てです。func Ptr[T any](x T) *T のようなジェネリックな関数を、Go 1.26.0の go fix コマンドでインライン化する場合、呼び出す際に型引数を渡していないとインライン化されません。

//go:fix inline
func Ptr[T any](x T) *T {
 return new(x)
}

func f() {
 _ = Ptr[int](1) // new(int(1)) にインライン化される
 _ = Ptr(1) // インライン化されない
}

go fix -inline の実装上で明示的にエラーが返るようになっている*1ので、現状はそういうものだと捉えることになりそうです。

一方で go fix -newexpr コマンドであれば、上述したような関数をインライン化できます。newexpr Analyzerが対象とする関数の形に強い仮定を置いている*2一方で、 go fix -inline では一般的な関数のインライン展開を考える必要があるので、このような差が生じているのでしょう。

ここで宣伝

2/27 (金) の kamakura.go #8 でGo 1.26の new 関数などの話をします。鎌倉に来れる方はぜひお越しください。




以上の内容はhttps://blog.utgw.net/entry/2026/02/24/153341より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14