ループのような関数のラムダ式内にある break または continue の使用箇所を報告します。

break および continue キーワードは常に実際のループ (forwhiledo-while) に適用されます。 break および continue が関数に適用されることはありません。たとえば、break および continueforEachfiltermap に適用されません。

ループのような関数 (例: 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)
        }
    }