报告类循环函数的 lambda 内的 breakcontinue 用法。

breakcontinue 关键字始终适用于实际循环(forwhiledo-while)。 breakcontinue 从不适用于函数;例如,breakcontinue 不适用于 forEachfiltermap

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

由于 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)
        }
    }