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 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