Generating more simple construct instead of "let" in some cases

This commit is contained in:
Valentin Kipyatkov
2016-04-06 12:25:39 +03:00
parent a760ef3665
commit ff0bb4fbb8
7 changed files with 52 additions and 3 deletions
@@ -0,0 +1,12 @@
// WITH_RUNTIME
fun foo(list: List<String>) {
var result: String? = null
<caret>for (s in list) {
if (s.length > 0) {
result = s.substring(0, s.length - 1)
break
}
}
}
fun bar(s: String): String = s
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo(list: List<String>) {
<caret>val result: String? = list.firstOrNull { it.length > 0 }?.let { it.substring(0, it.length - 1) }
}
fun bar(s: String): String = s
@@ -1,4 +1,4 @@
// WITH_RUNTIME
fun foo(list: List<String>): Int? {
<caret>return list.firstOrNull { it.isNotEmpty() }?.let { it.length }
<caret>return list.firstOrNull { it.isNotEmpty() }?.length
}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun foo(list: List<String?>) {
var result: String? = null
<caret>for (s in list) {
if (s != "") {
result = s?.substring(1)
break
}
}
}
@@ -0,0 +1,4 @@
// WITH_RUNTIME
fun foo(list: List<String?>) {
<caret>val result: String? = list.firstOrNull { it != "" }?.substring(1)
}