NilAway — инструмент статического анализа для обнаружения потенциальных nil-паник в коде на Go, который позволяет ловить их во время компиляции, а не во время выполнения.



Команда Uber постаралась, сделав похожий на nilness инструмент с гораздо более сложными и мощными методами статического анализа для отслеживания потоков nil как внутри пакета, так и между пакетами.



var p *P

if someCondition {

p = &P{}

}

print(p.f)




Результат 👇



go.uber.org/example.go:12:9: error: Potential nil panic detected. Observed nil flow from source to dereference point:

-> go.uber.org/example.go:12:9: unassigned variable p accessed field f




👉 @juniorGolang