WhenWithOnlyElse: don't remove when subject variable if needed

#KT-30975 Fixed
This commit is contained in:
Toshiaki Kameyama
2019-04-18 19:45:33 +09:00
committed by Dmitry Gridin
parent 7f1d30058a
commit e955dcfc14
44 changed files with 636 additions and 12 deletions
@@ -0,0 +1,14 @@
fun test() {
when (val a = create()) {
else -> {
use(a, a)
foo()
}
}<caret>
}
fun create(): String = ""
fun use(s: String, t: String) {}
fun foo() {}
@@ -0,0 +1,11 @@
fun test() {
<caret>val a = create()
use(a, a)
foo()
}
fun create(): String = ""
fun use(s: String, t: String) {}
fun foo() {}
@@ -0,0 +1,14 @@
fun test() {
when (val a = create()) {
else -> {
use("")
foo()
}
}<caret>
}
fun create(): String = ""
fun use(s: String) {}
fun foo() {}
@@ -0,0 +1,11 @@
fun test() {
<caret>val a = create()
use("")
foo()
}
fun create(): String = ""
fun use(s: String) {}
fun foo() {}
@@ -0,0 +1,12 @@
fun test() {
when (val a = 42) {
else -> {
use("")
foo()
}
}<caret>
}
fun use(s: String) {}
fun foo() {}
@@ -0,0 +1,8 @@
fun test() {
<caret>use("")
foo()
}
fun use(s: String) {}
fun foo() {}
@@ -0,0 +1,14 @@
fun test() {
when (val a = create()) {
else -> {
use(a)
foo()
}
}<caret>
}
fun create(): String = ""
fun use(s: String) {}
fun foo() {}
@@ -0,0 +1,10 @@
fun test() {
<caret>use(create())
foo()
}
fun create(): String = ""
fun use(s: String) {}
fun foo() {}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
fun test() {
val x = when (val a = create()) {
else -> {
use(a, a)
}
}<caret>
}
fun create(): String = ""
fun use(s: String, t: String) {}
@@ -0,0 +1,11 @@
// WITH_RUNTIME
fun test() {
val x = <caret>run {
val a = create()
use(a, a)
}
}
fun create(): String = ""
fun use(s: String, t: String) {}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
fun test() {
val x = when (val a = create()) {
else -> {
use("")
}
}<caret>
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,11 @@
// WITH_RUNTIME
fun test() {
val x = <caret>run {
val a = create()
use("")
}
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun test() {
val x = when (val a = 42) {
else -> {
use("")
}
}<caret>
}
fun use(s: String) {}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun test() {
val x = <caret>run {
use("")
}
}
fun use(s: String) {}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
fun test() {
val x = when (val a = create()) {
else -> {
use(a)
}
}<caret>
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun test() {
val x = <caret>run {
use(create())
}
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,11 @@
fun hasAnnotation() {
when (@Bar val a = create()) {
else -> use(a)
}<caret>
}
fun create(): String = ""
fun use(s: String) {}
annotation class Bar
@@ -0,0 +1,10 @@
fun hasAnnotation() {
<caret>@Bar val a = create()
use(a)
}
fun create(): String = ""
fun use(s: String) {}
annotation class Bar
@@ -0,0 +1,9 @@
// WITH_RUNTIME
fun test() {
<caret>when (val a = 42) {
else -> use(a, a)
}
val a = 33
}
fun use(i: Int, j: Int) {}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun test() {
<caret>run {
val a = 42
use(a, a)
}
val a = 33
}
fun use(i: Int, j: Int) {}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
fun test() {
<caret>when (val a = 42) {
else -> {
use(a, a)
use(a, a)
}
}
val a = 33
}
fun use(i: Int, j: Int) {}
@@ -0,0 +1,11 @@
// WITH_RUNTIME
fun test() {
<caret>run {
val a = 42
use(a, a)
use(a, a)
}
val a = 33
}
fun use(i: Int, j: Int) {}
@@ -0,0 +1,9 @@
fun test() {
<caret>when (val a = 42) {
else -> use(a)
}
val a = 33
}
fun use(i: Int) {}
@@ -0,0 +1,7 @@
fun test() {
<caret>use(42)
val a = 33
}
fun use(i: Int) {}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun test() {
val x = <caret>when (val a = 42) {
else -> use(a, a)
}
val a = 33
}
fun use(i: Int, j: Int) {}
@@ -0,0 +1,11 @@
// WITH_RUNTIME
fun test() {
val x = <caret>run {
val a = 42
use(a, a)
}
val a = 33
}
fun use(i: Int, j: Int) {}
@@ -0,0 +1,9 @@
fun test() {
when (val a = create()) {
else -> use(a, a)
}<caret>
}
fun create(): String = ""
fun use(s: String, t: String) {}
@@ -0,0 +1,8 @@
fun test() {
<caret>val a = create()
use(a, a)
}
fun create(): String = ""
fun use(s: String, t: String) {}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun test() {
val x = when (val a = create()) {
else -> use(a, a)
}<caret>
}
fun create(): String = ""
fun use(s: String, t: String) {}
@@ -0,0 +1,11 @@
// WITH_RUNTIME
fun test() {
val x = <caret>run {
val a = create()
use(a, a)
}
}
fun create(): String = ""
fun use(s: String, t: String) {}
@@ -0,0 +1,9 @@
fun test() {
when (val a = create()) {
else -> use("")
}<caret>
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,8 @@
fun test() {
<caret>val a = create()
use("")
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,7 @@
fun test() {
when (val a = 42) {
else -> use("")
}<caret>
}
fun use(s: String) {}
@@ -0,0 +1,5 @@
fun test() {
<caret>use("")
}
fun use(s: String) {}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun test() {
val x = when (val a = create()) {
else -> use("")
}<caret>
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,11 @@
// WITH_RUNTIME
fun test() {
val x = <caret>run {
val a = create()
use("")
}
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun test() {
val x = when (val a = 42) {
else -> use("")
}<caret>
}
fun use(s: String) {}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun test() {
val x = <caret>use("")
}
fun use(s: String) {}
@@ -0,0 +1,9 @@
fun test() {
when (val a = create()) {
else -> use(a)
}<caret>
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,7 @@
fun test() {
<caret>use(create())
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun test() {
val x = when (val a = create()) {
else -> use(a)
}<caret>
}
fun create(): String = ""
fun use(s: String) {}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun test() {
val x = <caret>use(create())
}
fun create(): String = ""
fun use(s: String) {}