append🎉append()は引数が無くても問題ありませんでしたが、今回Vetで警告とするようになりました。valuesstaticcheckでは2019年から実装されていたものと同じ内容ですね。組み込み関数で扱いが特別なためのようです。(update)既存のbuildtagで変更があったようです。directives更新が多く差分は調べきれませんでしたが、これはそもそもなにをするものなのかをご紹介。コード内で使用されていないbuildtagや矛盾するtagなどを検出します。以下のようなコードが対象です。https://cs.opensource.google/go/x/tools/+/refs/tags/v0.19.0:go/analysis/passes/buildtag/testdata/src/a/buildtag.go*2新しく入りそうなもの関連で調べていたところ、以下のようなスペース混入を検知する実装が新たに入りそうでした。これは助かりそうです。してしまっているものを警告するようになりました。deferで関数が終了した経過時間を出してくれそうに思えますが、コード記述された出力結果を保持して最後にfmt.Printするといった挙動になります。引数とした関数は即時に評価されるためです。した場合は警告されません。利用するようにすると今度は本題の警告がされます。利用だけしか見ません。実行リストに仲間入り。実行リストに仲間入り。ポインタやエラーでない値を渡すことを警告してくれます。サポートとしているようなので注意が必要です。実行リストに仲間入り。スタックトレース周りの警告になります。以下のようなコードが対象のようです。実行リストに仲間入り。インターフェイス間の不可能なアサーションを検知します。実行リストに仲間入り。容量が確保(バッファリング)されていないと警告されます。mainに書いて碌にtestもできずにそのままというパターンが結構ありそうなので助かりそうです。calls🎉log/slogで、引数のkeyが文字列でない場合や数が一致しない場合、警告するようになりました。value)以下のような場合でBADKEY表記になってしまうパターンですね。出荷済みの内容のようです。実行リストに仲間入り。整数から文字列への型変換を警告します。strconv.Itoa(i)をすべきかと思われます。実行リストに仲間入り。しているという警告ですね。検知はできないようでした。これに関しては、tenntennさんが以前、起稿されています。ほしいとか、弊社のgopher会で少し盛り上がりました。実行リストに仲間入り。2006-02-02や2006-01-01は検出してくれないのが微妙な感あります。するほどの内容か疑問でしたが、Vetに入るということは一定数以上の対象が存在しているということですね。2006-02-01していたのを発見。本件の対象外ですが、検知するキッカケになってよかったです。さいごにVetとうまく付き合って、不幸なバグを回避していきたいですね。nakagawa*2:Playgroundで試せず。困った時の公式test参照*3:Playgroundで試せず。