KT-5875 Support code completion after "return@"

#KT-5875 Fixed
This commit is contained in:
Valentin Kipyatkov
2014-12-26 18:58:24 +03:00
parent 95285f7a2e
commit cdb5ec3492
15 changed files with 232 additions and 25 deletions
@@ -9,11 +9,10 @@ fun foo() = <caret>
// EXIST: null
// EXIST: object
// EXIST: package
// EXIST: return
// EXIST: super
// EXIST: throw
// EXIST: true
// EXIST: try
// EXIST: when
// EXIST: while
// NUMBER: 16
// NUMBER: 15
@@ -10,11 +10,10 @@ val prop: Int
// EXIST: null
// EXIST: object
// EXIST: package
// EXIST: return
// EXIST: super
// EXIST: throw
// EXIST: true
// EXIST: try
// EXIST: when
// EXIST: while
// NUMBER: 16
// NUMBER: 15
@@ -9,11 +9,10 @@ var a : Int = <caret>
// EXIST: null
// EXIST: object
// EXIST: package
// EXIST: return
// EXIST: super
// EXIST: throw
// EXIST: true
// EXIST: try
// EXIST: when
// EXIST: while
// NUMBER: 16
// NUMBER: 15
@@ -0,0 +1,14 @@
fun foo() {
takeHandler1 {
takeHandler2({ ret<caret> })
}
}
inline fun takeHandler1(handler: () -> Unit){}
inline fun takeHandler2(handler: () -> Unit){}
// INVOCATION_COUNT: 1
// EXIST: { lookupString: "return", itemText: "return", tailText: null, attributes: "bold" }
// EXIST: { lookupString: "return@takeHandler1", itemText: "return", tailText: "@takeHandler1", attributes: "bold" }
// EXIST: { lookupString: "return@takeHandler2", itemText: "return", tailText: "@takeHandler2", attributes: "bold" }
// NUMBER: 3
@@ -0,0 +1,13 @@
fun foo() {
takeHandler1 {
takeHandler2 { <caret> }
}
}
fun takeHandler1(handler: () -> Unit){}
inline fun takeHandler2(handler: () -> Unit){}
// INVOCATION_COUNT: 1
// ABSENT: return
// EXIST: { lookupString: "return@takeHandler1", itemText: "return", tailText: "@takeHandler1", attributes: "bold" }
// EXIST: { lookupString: "return@takeHandler2", itemText: "return", tailText: "@takeHandler2", attributes: "bold" }
@@ -0,0 +1,13 @@
fun foo() {
takeHandler1 {
takeHandler2 { <caret> }
}
}
fun takeHandler1(handler: () -> Unit){}
fun takeHandler2(handler: () -> Unit){}
// INVOCATION_COUNT: 1
// ABSENT: return
// ABSENT: return@takeHandler1
// EXIST: { lookupString: "return@takeHandler2", itemText: "return", tailText: "@takeHandler2", attributes: "bold" }
@@ -0,0 +1,12 @@
fun foo() {
takeHandler @label {
<caret>
}
}
fun takeHandler(handler: () -> Unit){}
// INVOCATION_COUNT: 1
// ABSENT: return
// ABSENT: "return@takeHandler"
// EXIST: { lookupString: "return@label", itemText: "return", tailText: "@label", attributes: "bold" }
@@ -0,0 +1,12 @@
fun foo() {
takeHandler @label {
<caret>
}
}
inline fun takeHandler(handler: () -> Unit){}
// INVOCATION_COUNT: 1
// EXIST: { lookupString: "return", itemText: "return", tailText: null, attributes: "bold" }
// ABSENT: "return@takeHandler"
// EXIST: { lookupString: "return@label", itemText: "return", tailText: "@label", attributes: "bold" }
@@ -0,0 +1,13 @@
fun foo() {
takeHandler1 {
takeHandler2({ return@<caret> })
}
}
inline fun takeHandler1(handler: () -> Unit){}
inline fun takeHandler2(handler: () -> Unit){}
// INVOCATION_COUNT: 1
// EXIST: { lookupString: "return@takeHandler1", itemText: "return", tailText: "@takeHandler1", attributes: "bold" }
// EXIST: { lookupString: "return@takeHandler2", itemText: "return", tailText: "@takeHandler2", attributes: "bold" }
// NUMBER: 2
@@ -0,0 +1,6 @@
val property: Int
get() {
<caret>
}
// EXIST: return
@@ -0,0 +1,3 @@
fun foo(p: Int?): Int = p ?: <caret>
// ABSENT: return
@@ -0,0 +1,9 @@
inline fun run (p: () -> Unit) {}
fun foo() = run {
<caret>
}
// INVOCATION_COUNT: 1
// EXIST: { lookupString: "return@run", itemText: "return", tailText: "@run", attributes: "bold" }
// ABSENT: return