KT-34644 Give return keyword more priority in completion where appropriate
- See `returnExpressionItems::returnIsProbableInPosition` to get an idea where return is supposed to be more appropriate - End of the block (except for top level block of unit function or cycle) or as single expression in if or when - Right side of the elvis operator (which is not already in return) - Add additional `probable_keyword` weigher to signalize about probable keyword (for now it is only for `return`) - ^KT-34644 Fixed
This commit is contained in:
committed by
Roman Golyshev
parent
de11b4cb64
commit
faf4c05fc8
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage() {
|
||||
if (true) {
|
||||
re<caret>
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage() {
|
||||
re<caret>
|
||||
return
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage() {
|
||||
if (true) {
|
||||
re<caret>
|
||||
}
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage() {
|
||||
re<caret>
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage() {
|
||||
for (i in 1..10) {
|
||||
re<caret>
|
||||
}
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage() {
|
||||
for (i in 1..10) re<caret>
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage() {
|
||||
if (true) re<caret>
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage(a: Int?) {
|
||||
a ?: re<caret>
|
||||
return
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
fun returnFun(): Int = 10
|
||||
fun <T> returnAnything(): T = null!!
|
||||
|
||||
fun usage(a: Int?) {
|
||||
a ?: re<caret>
|
||||
}
|
||||
|
||||
// function of the same type as `a` is preferred to return in this case
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
// ORDER: returnAnything
|
||||
idea/idea-completion/testData/weighers/basic/contextualReturn/noReturnType/InWhenSingleExpression.kt
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage(a: Int) {
|
||||
when (a) {
|
||||
10 -> re<caret>
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage(a: Int) {
|
||||
when (a) {
|
||||
10 -> {
|
||||
re<caret>
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
fun returnFun(): Int = 10
|
||||
|
||||
fun usage(): Int {
|
||||
if (true) {
|
||||
re<caret>
|
||||
return 20
|
||||
}
|
||||
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
idea/idea-completion/testData/weighers/basic/contextualReturn/withReturnType/BeginOfTopLevelBlock.kt
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
fun returnFun(): Int = 10
|
||||
|
||||
fun usage(): Int {
|
||||
re<caret>
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
fun returnFun(): Int = 10
|
||||
|
||||
fun usage(): Int {
|
||||
if (true) {
|
||||
re<caret>
|
||||
}
|
||||
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
fun returnFun(): Int = 10
|
||||
|
||||
fun usage(): Int {
|
||||
re<caret>
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
fun returnFun(): Int = 10
|
||||
|
||||
fun usage(): Int {
|
||||
for (i in 1..10) {
|
||||
re<caret>
|
||||
}
|
||||
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
fun returnFun(): Int = 10
|
||||
|
||||
fun usage(): Int {
|
||||
for (i in 1..10) re<caret>
|
||||
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
fun returnFun(): Int = 10
|
||||
|
||||
fun usage(): Int {
|
||||
if (true) re<caret>
|
||||
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
fun returnFun() {}
|
||||
|
||||
fun usage(a: Int?): Int {
|
||||
a ?: re<caret>
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
fun reportError(): Nothing
|
||||
|
||||
fun usage(a: Int?): Int {
|
||||
return a ?: a ?: a ?: re<caret>
|
||||
}
|
||||
|
||||
// ORDER: reportError
|
||||
// ORDER: return
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
fun returnFun(): Int = 10
|
||||
fun <T> returnAnything(): T = null!!
|
||||
|
||||
fun usage(a: Int?): Int {
|
||||
a ?: re<caret>
|
||||
return 10
|
||||
}
|
||||
|
||||
// function of the same type as `a` is preferred to return in this case
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
// ORDER: returnAnything
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fun reportError(): Nothing
|
||||
|
||||
fun usage(a: Int?): Int {
|
||||
return if (a == null) re<caret> else a
|
||||
}
|
||||
|
||||
// ORDER: reportError
|
||||
// ORDER: return
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
fun reportError(): Nothing
|
||||
|
||||
fun usage(a: Int?): Int {
|
||||
return when {
|
||||
a == null -> {
|
||||
if (true) { re<caret> }
|
||||
|
||||
10
|
||||
}
|
||||
|
||||
else -> a
|
||||
}
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: reportError
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
fun returnFun(): String = ""
|
||||
|
||||
fun usage(a: Int?): Int {
|
||||
a to re<caret>
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: returnFun
|
||||
// ORDER: return
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fun reportError(): Nothing
|
||||
|
||||
fun usage(a: Int?): Int {
|
||||
return when {
|
||||
a == null -> re<caret>
|
||||
else -> a
|
||||
}
|
||||
}
|
||||
|
||||
// ORDER: reportError
|
||||
// ORDER: return
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fun returnFun(): Int = 10
|
||||
|
||||
fun usage(a: Int): Int {
|
||||
when (a) {
|
||||
10 -> re<caret>
|
||||
}
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
fun returnFun(): Int = 10
|
||||
|
||||
fun usage(a: Int): Int {
|
||||
when (a) {
|
||||
10 -> {
|
||||
re<caret>
|
||||
}
|
||||
}
|
||||
return 10
|
||||
}
|
||||
|
||||
// ORDER: return
|
||||
// ORDER: returnFun
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fun reportError(): Nothing
|
||||
|
||||
fun usage(a: Int?): Int {
|
||||
return when {
|
||||
a == null -> re<caret>
|
||||
else -> a
|
||||
}
|
||||
}
|
||||
|
||||
// ORDER: reportError
|
||||
// ORDER: return
|
||||
Reference in New Issue
Block a user