All rules
GCI0051WarnData Integrity

Numeric Coercion Risks

Detects implicit numeric conversions that risk truncation, overflow, or loss of precision. Flags unchecked downcasts, float-to-int conversions, and assignments from large types to small types.

Why this rule exists

Numeric truncation is silent. An int cast from a long value that exceeds Int32.MaxValue wraps around without warning. Precision loss in float-to-int conversions causes calculations to diverge. checked{} throws on overflow, making the failure visible.

Code example

Triggers the rule
+ int size = collection.Length;  // Length is long, could truncate
+ int ratio = (int)(totalRatio * 100);  // float to int precision loss
Passes the rule
+ int size = checked((int)collection.Length);  // throws on overflow
+ decimal ratio = (decimal)totalRatio * 100;  // use decimal for precision

Configuration

Disable or adjust the severity of this rule in .gauntletci.json:

{
  "rules": {
    "GCI0051": { "enabled": true, "severity": "Warn" }
  }
}

See Configuration for the full schema.

Related rules

Implemented in src/GauntletCI.Core/Rules/Implementations/GCI0051_*.cs.

About the author

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.