Ambiguous non-local 'break' or 'continue'
Reports break or continue usages inside of lambdas of loop-like functions.
break and continue keywords always apply to the real loops (for, while, do-while). break and continue never apply to any function; for example, break and continue don't apply to forEach, filter, map.
Using break or continue inside a loop-like function (for example, forEach) may be confusing. The inspection suggests adding a label to clarify to which statement break or continue applies to.
Since Kotlin doesn't have a concept of loop-like functions, the inspection uses the heuristic. It assumes that functions that don't have one of callsInPlace(EXACTLY_ONCE) or callsInPlace(AT_LEAST_ONCE) contracts are loop-like functions.
Example:
The quick-fix adds clarifying labels:
Locating this inspection
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
AmbiguousNonLocalJump- Via Settings dialog
Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.
Inspection ID: AmbiguousNonLocalJump
Suppressing Inspection
You can suppress this inspection by placing the following comment marker before the code fragment where you no longer want messages from this inspection to appear:
More detailed instructions as well as other ways and options that you have can be found in the product documentation:
Inspection Details | |
|---|---|
By default bundled with: |