Nilaway is a static analysis tool and linter plugin for Go designed to identify potential nil pointer dereferences in source code to prevent runtime panics. It functions as an inter-procedural pointer analyzer that tracks data flow across functions and packages to detect memory safety issues.
The tool differentiates itself by tracking pointer states through anonymous functions, closures, and struct initializations. It employs a pointer analysis framework that monitors how values flow through a program to determine if a variable is safe to dereference at a specific point.
The analyzer can be integrated into continuous integration workflows and linting toolchains, exporting its findings in a structured format. It includes configuration utilities to filter analysis scope, allowing users to restrict checks to specific first-party packages.