报告类循环函数的 lambda 内的 break 或 continue 用法。

break 和 continue 关键字始终适用于实际循环(for、while、do-while)。 break 和 continue 从不适用于函数;例如,break 和 continue 不适用于 forEach、filter、map。

在类循环函数(如 forEach)内使用 break或 continue 可能会引起混淆。 该检查会建议添加标签,以澄清 Break 或 Continue 适用于哪条语句。

由于 Kotlin 没有类循环函数的概念,该检查将使用启发。 它假设没有 callsInPlace(EXACTLY_ONCE) 或 callsInPlace(AT_LEAST_ONCE) 其中一个约定的函数是类循环函数。

示例:


    for (file in files) {
        file.readLines().forEach { line ->
            if (line == commentMarkerLine) continue
            println(line)
        }
    }

该快速修复会添加澄清标签:


    loop@ for (file in files) {
        file.readLines().forEach { line ->
            if (line == commentMarkerLine) continue@loop
            println(line)
        }
    }