Back to Intellij Community

NegativeIntConstantInLongContext

java/java-impl/resources/inspectionDescriptions/NegativeIntConstantInLongContext.html

2025.3-rc-2491 B
Original Source

Reports negative int hexadecimal constants in long context. Such constants are implicitly widened to long, which means their higher bits will become 1 rather than 0 (e.g., 0xFFFF_FFFF will become 0xFFFF_FFFF_FFFF_FFFFL). Unlikely this is intended, and even if it is, using an explicit long constant would be less confusing.

Example:

// Warning: this is int constant -1 which is widened to long
  // becoming 0xFFFF_FFFF_FFFF_FFFFL.
  long mask = 0xFFFF_FFFF;

New in 2022.3