Implement intention to add labeled return to last expression in a lambda

So #KT-20439 Fixed
This commit is contained in:
shiraji
2018-01-07 22:05:44 +03:00
committed by Mikhail Glukhikh
parent 769e28519e
commit 59f6dc07cf
26 changed files with 311 additions and 11 deletions
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.intentions.AddLabeledReturnInLambdaIntention
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@find"
fun foo() {
listOf(1,2,3).find({
<caret>true
})
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@find"
fun foo() {
listOf(1,2,3).find({
return@find true
})
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@label"
fun foo() {
listOf(1,2,3).find label@{
<caret>true
}
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@label"
fun foo() {
listOf(1,2,3).find label@{
return@label true
}
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo() {
for (i in 10..100) {
<caret>true
}
}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@bar"
private fun <T> List<T>.bar(a: (T) -> Boolean, b: (T) -> Boolean) {}
fun foo() {
listOf(1,2,3).bar({
true
}) {
<caret>true
}
}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@bar"
private fun <T> List<T>.bar(a: (T) -> Boolean, b: (T) -> Boolean) {}
fun foo() {
listOf(1,2,3).bar({
true
}) {
return@bar true
}
}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@bar"
private fun <T> List<T>.bar(a: (T) -> Boolean, b: (T) -> Boolean) {}
fun foo() {
listOf(1,2,3).bar({
<caret>true
}) {
true
}
}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@bar"
private fun <T> List<T>.bar(a: (T) -> Boolean, b: (T) -> Boolean) {}
fun foo() {
listOf(1,2,3).bar({
return@bar true
}) {
true
}
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@find"
fun foo() {
listOf(1,2,3).find {
<caret>true
}
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@find"
fun foo() {
listOf(1,2,3).find {
return@find true
}
}
@@ -0,0 +1,9 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo() {
listOf(1,2,3).find {
<caret>1
true
}
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@find"
fun foo(): Int? {
return listOf(1,2,3).find {
<caret>true
}
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// INTENTION_TEXT: "Add return@find"
fun foo(): Int? {
return listOf(1,2,3).find {
return@find true
}
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo() {
listOf(1,2,3).forEach {
<caret>true
}
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo() {
listOf(1,2,3).find {
return@find <caret>true
}
}
@@ -0,0 +1,9 @@
// IS_APPLICABLE: false
// WITH_RUNTIME
fun foo(): Boolean {
listOf(1,2,3).find {
return <caret>true
}
return false
}