Convert FoldInitializerAndIfToElvisIntention to inspection and decrease severity to INFO

#KT-19643 Fixed
This commit is contained in:
Dmitry Gridin
2019-06-03 13:42:53 +07:00
parent 8b0b135112
commit 74c177fd26
55 changed files with 194 additions and 212 deletions
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.FoldInitializerAndIfToElvisInspection
@@ -0,0 +1,6 @@
fun foo(p: List<String?>) {
for (i in 1..10) {
val v = p[i]
<caret>if (v == null) break
}
}
@@ -0,0 +1,5 @@
fun foo(p: List<String?>) {
for (i in 1..10) {
val v = p[i] ?: <caret>break
}
}
@@ -0,0 +1,8 @@
fun foo(p: List<String?>): Int {
val v = p[0]
<caret>if (v == null) {
// return -1 if null
return -1
}
return v.length
}
@@ -0,0 +1,6 @@
fun foo(p: List<String?>): Int {
val v = p[0]
?: // return -1 if null
<caret>return -1
return v.length
}
@@ -0,0 +1,6 @@
fun foo(p: List<String?>): Int {
val v = p[0]
// now check if v is null
<caret>if (v == null/* null */) return -1 // return -1
return v.length
}
@@ -0,0 +1,6 @@
fun foo(p: List<String?>): Int {
val v = p[0] ?: /* null */<caret>return -1
// now check if v is null
// return -1
return v.length
}
@@ -0,0 +1,8 @@
fun foo(p: List<String?>): Int {
val v = p[0]
<caret>if (v == null) { // v is null
// we should do something with it
return -1 // let's return -1
} // end of if
return v.length
}
@@ -0,0 +1,8 @@
fun foo(p: List<String?>): Int {
val v = p[0]
?: // v is null
// we should do something with it
return -1 // let's return -1
// end of if
return v.length
}
@@ -0,0 +1,6 @@
fun foo(p: List<String?>) {
for (i in 1..10) {
val v = p[i]
<caret>if (v == null) continue
}
}
@@ -0,0 +1,5 @@
fun foo(p: List<String?>) {
for (i in 1..10) {
val v = p[i] ?: <caret>continue
}
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(): String? = null
fun bar() {
val v: String? = foo()
<caret>if (v == null) throw Exception()
v.length
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
fun foo(): String? = null
fun bar() {
val v: String = foo() ?: throw Exception()
v.length
}
@@ -0,0 +1,9 @@
// WITH_RUNTIME
fun foo(): String? = null
fun bar() {
var v: String? = foo()
<caret>if (v == null) throw Exception()
v = null
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(): String? = null
fun bar() {
var v: String? = foo() ?: throw Exception()
v = null
}
@@ -0,0 +1,6 @@
// PROBLEM: none
fun foo(p: List<String?>): Int {
val v = p[0]
<caret>if (v != null) return -1
return 0
}
@@ -0,0 +1,13 @@
open class A
open class B : A() {
fun b() {}
}
fun test() {
val b = B()
if (<caret>b !is B) {
return
}
b.b()
}
@@ -0,0 +1,10 @@
open class A
open class B : A() {
fun b() {}
}
fun test() {
val b = B() as? B ?: return
b.b()
}
@@ -0,0 +1,21 @@
// PROBLEM: none
interface A {
fun a() {}
}
open class B : A {
fun b() {}
}
interface C : A {
fun c() {}
}
fun test() {
val b = B()
if (<caret>b !is C) {
return
}
b.b()
b.c()
}
@@ -0,0 +1,17 @@
open class A
open class B : A() {
fun b() {}
}
open class C : B() {
fun c() {}
}
fun test() {
val b = B()
if (<caret>b !is C) {
return
}
b.b()
}
@@ -0,0 +1,14 @@
open class A
open class B : A() {
fun b() {}
}
open class C : B() {
fun c() {}
}
fun test() {
val b = B() as? C ?: return
b.b()
}
@@ -0,0 +1,14 @@
// PROBLEM: none
open class A
open class B : A() {
fun b() {}
}
fun test() {
val b = B()
if (<caret>b !is A) {
return
}
b.b()
}
@@ -0,0 +1,10 @@
// PROBLEM: none
fun foo(p: List<String?>) {
val v = p[0]
<caret>if (v == null) {
bar()
return
}
}
fun bar(){}
@@ -0,0 +1,8 @@
// PROBLEM: none
fun foo(p: List<String?>): Int? {
val v = p[0]
<caret>if (v == null) bar()
return v?.length
}
fun bar(){}
@@ -0,0 +1,4 @@
fun foo(arg: Any?) {
val n = arg
if (<caret>n !is Int) return
}
@@ -0,0 +1,3 @@
fun foo(arg: Any?) {
val n = arg as? Int ?: return
}
@@ -0,0 +1,8 @@
// PROBLEM: none
fun test(): String {
val foo = foo()
<caret>if (foo !is String?) return "0"
return "1"
}
fun foo(): Any? = null
@@ -0,0 +1,11 @@
// PROBLEM: none
class C {
var v: String? = null
fun foo(p: List<String?>): Int {
val v = p[0]
<caret>if (this.v == null) return -1
return v!!.length
}
}
@@ -0,0 +1,11 @@
// PROBLEM: none
class C {
var x: String? = null
fun foo(p: List<String?>): Int {
val v = p[0]
<caret>if (x == null) return -1
return v!!.length
}
}
@@ -0,0 +1,5 @@
fun foo(p: List<String?>): Int {
val v = p[0]
<caret>if (v == null) return -1
return v.length
}
@@ -0,0 +1,4 @@
fun foo(p: List<String?>): Int {
val v = p[0] ?: <caret>return -1
return v.length
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(p: List<String?>) {
val v = p[0]
<caret>if (v == null) {
throw RuntimeException()
}
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun foo(p: List<String?>) {
val v = p[0] ?: <caret>throw RuntimeException()
}
@@ -0,0 +1,13 @@
// PROBLEM: none
interface A {
val s: String
}
fun foo() = Any()
fun test(): String {
val y = foo()
<caret>if (y !is A) return y.toString()
return y.s
}
@@ -0,0 +1,13 @@
// PROBLEM: none
interface A {
val s: String
}
fun foo() = Any()
fun test(): String {
val y = foo()
<caret>if (y !is A) return "Expected A: $y"
return y.s
}
@@ -0,0 +1,5 @@
fun foo(p: List<String?>, b: Boolean) {
var v = p[0]
<caret>if (v == null) return
if (b) v = null
}
@@ -0,0 +1,4 @@
fun foo(p: List<String?>, b: Boolean) {
var v: String? = p[0] ?: <caret>return
if (b) v = null
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun test(a: String?, b: String): String {
val x = if (true) a else b
<caret>if (x == null) throw Exception()
return x
}
@@ -0,0 +1,5 @@
// WITH_RUNTIME
fun test(a: String?, b: String): String {
val x = (if (true) a else b) ?: throw Exception()
return x
}