Generating "firstOrNull()?.let {...}"

This commit is contained in:
Valentin Kipyatkov
2016-04-06 12:16:22 +03:00
parent fba9b123dd
commit a760ef3665
6 changed files with 52 additions and 2 deletions
@@ -0,0 +1,13 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
fun foo(list: List<String?>) {
var result: String? = null
<caret>for (s in list) {
if (s != null && s.length > 0) {
result = bar(s)
break
}
}
}
fun bar(s: String?): String? = s
@@ -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 = bar(s)
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 { bar(it) }
}
fun bar(s: String): String = s
@@ -1,5 +1,4 @@
// WITH_RUNTIME
// IS_APPLICABLE: false
fun foo(list: List<String>): Int? {
<caret>for (s in list) {
if (s.isNotEmpty()) {
@@ -0,0 +1,4 @@
// WITH_RUNTIME
fun foo(list: List<String>): Int? {
<caret>return list.firstOrNull { it.isNotEmpty() }?.let { it.length }
}