nilaway どんなもの? nil パニックによるランタイムエラーになる箇所を指摘してくれる静的解析ツール スタンドアロンで動く。golangci-lintで使用するにはカスタマイズが必要。 先行技術やツールと比べてどこがすごい? 標準パッケージに同梱されているnilness[1]ではチェックできないnil パニックとなりうる箇所を指摘する 関数やパッケージの境界を跨いでnilフローを追跡 nil インターフェース値を報告 例えば以下のコードでは、nilnessはエラーを報告してくれないが、nilawayはnilパニックを報告してくれる。 var p *P if someCondition { p = &P{} } print(p.f) // nilness reports NO error here, but nilaway does. 技術のキモはどこ? Our main idea