报告从 1.7 版开始会导致编译错误的非详尽 when 语句。

动机类型:

影响类型:

更多详细信息: KT-47709:默认情况下使带有 enum、sealed 和 Boolean 对象的 when 语句详尽

快速修复会添加缺少的 else -> {} 分支。

示例:


  sealed class Base {
      class A : Base()
      class B : Base()
  }

  fun test(base: Base) {
      when (base) {
          is Base.A -> ""
      }
  }

在应用快速修复后:


  sealed class Base {
      class A : Base()
      class B : Base()
  }

  fun test(base: Base) {
      when (base) {
          is Base.A -> ""
          else -> {}
      }
  }

仅当项目或模块的 Kotlin 语言级别为 1.6 或更高时,此检查才会报告。