Prohibiting incorrect transformations of loops with expression-embedded break or continue + allowed "?: continue" pattern for mapNotNull

This commit is contained in:
Valentin Kipyatkov
2016-04-22 11:35:13 +03:00
parent cfc82c55c7
commit a6132c7db9
14 changed files with 195 additions and 7 deletions
@@ -0,0 +1,12 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Replace with 'flatMap{}.mapNotNull{}.mapTo(){}'"
fun foo(list: List<String>, target: MutableList<String>) {
<caret>for (s in list) {
for (i in s.indices) {
val v = bar(i) ?: continue
target.add(v.substring(1))
}
}
}
fun bar(p: Int): String? = null