Inspectopedia
 
2024.3

Non-exhaustive 'when' statements will be prohibited since 1.7

Warning
New
Last modified: 03 December 2024

Reports a non-exhaustive when statements that will lead to compilation error since 1.7.

Motivation types:

  • Problematic/meaningless usage patterns need to be discouraged/blocked (e.g. counterintuitive behaviors)

    • Code is error-prone

  • Inconsistency in the design (things are done differently in different contexts)

Impact types:

  • Compilation. Some code that used to compile won't compile any more

    • There were cases when such code worked with no exceptions

      • Some such code could compile without any warnings

More details: KT-47709: Make when statements with enum, sealed, and Boolean subjects exhaustive by default

The quick-fix adds the missing else -> {} branch.

Example:

After the quick-fix is applied:

This inspection only reports if the Kotlin language level of the project or module is 1.6 or higher.