Nullability and Type Safety
Detects null-forgiving operator (!) overuse, pragma warning disables for nullable, and unchecked as-casts that bypass the type system.
Why this rule exists
Every ! and #pragma warning disable nullable is a promise to the compiler that the developer knows better. When that promise is wrong, you get a NullReferenceException with no help from the type system.
Code example
+ var name = user!.Profile!.DisplayName!;+ var name = user?.Profile?.DisplayName
+ ?? throw new InvalidOperationException("Profile missing");Configuration
Disable or adjust the severity of this rule in .gauntletci.json:
{
"rules": {
"GCI0043": { "enabled": true, "severity": "Info" }
}
}See Configuration for the full schema.
Related rules
Implemented in src/GauntletCI.Core/Rules/Implementations/GCI0043_*.cs.
Eric Cogen -- Founder, GauntletCI
Twenty years in .NET production. Most of those years, the bugs that hurt me were not the ones tests caught. They were the assumptions I did not know I was making: a removed guard clause, a renamed method that still did the old thing, a catch {} that turned a page into a silent dashboard lie. GauntletCI is the checklist I wish I had run before every commit. It runs the rules I learned the hard way, so you do not have to.
