报告基于位置的析构声明,这些声明使用自定义 componentN 函数,并且需要针对基于名称的析构进行迁移。

启用新的基于名称的析构后,圆括号 (x, y) 将用于基于名称的析构,而方括号 [x, y] 则应当用于基于位置的析构。

该检查会在以下情况下发出警告:

示例:


  val (x, y) = listOf(1, 2) // 警告:使用自定义 componentN
  for ((key, value) in mapOf(1 to "one")) { } // 没有警告:key 和 value 为 Map.Entry 属性

  data class Person(val name: String, val age: Int) {
      operator fun component3(): String = name + age
  }
  val (name, age, rendered) = Person("John", 30) // 警告:component3 为自定义

此检查属于基于名称的析构的迁移计划的一部分。