Add "Throwable not thrown" Inspection

#KT-11629 Fixed
This commit is contained in:
Toshiaki Kameyama
2019-01-21 18:25:08 +09:00
committed by Mikhail Glukhikh
parent e0aeb8f7ec
commit 20aa8ebdb0
28 changed files with 412 additions and 0 deletions
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.KotlinThrowableNotThrownInspection
@@ -0,0 +1,7 @@
// PROBLEM: Throwable instance 'FooException' is not thrown
// FIX: none
class FooException : RuntimeException()
fun test() {
<caret>FooException()
}
@@ -0,0 +1,9 @@
// PROBLEM: Result of 'createError' call is not thrown
// FIX: none
class FooException : RuntimeException()
fun createError() = FooException()
fun test() {
createError<caret>()
}
@@ -0,0 +1,8 @@
// PROBLEM: none
fun foo() {
throw RuntimeException()
}
fun test() {
<caret>foo()
}
@@ -0,0 +1,6 @@
// PROBLEM: none
class FooException : Exception()
class Test {
val e = <caret>FooException()
}
+13
View File
@@ -0,0 +1,13 @@
// PROBLEM: Throwable instance 'FooException' is not thrown
// FIX: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(i: Int) {
if (i == 1) {
<caret>FooException()
} else {
createException()
}
}
@@ -0,0 +1,12 @@
// PROBLEM: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(i: Int) {
throw if (i == 1) {
<caret>FooException()
} else {
createException()
}
}
@@ -0,0 +1,13 @@
// PROBLEM: Throwable instance 'FooException' is not thrown
// FIX: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(i: Int) {
val e = if (i == 1) {
<caret>FooException()
} else {
createException()
}
}
@@ -0,0 +1,13 @@
// PROBLEM: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(i: Int) {
val e = if (i == 1) {
<caret>FooException()
} else {
createException()
}
throw e
}
@@ -0,0 +1,10 @@
// PROBLEM: none
class FooException : RuntimeException()
fun test(i: Int) {
val x = if (i == 1) {
throw <caret>FooException()
} else {
0
}
}
@@ -0,0 +1,8 @@
// PROBLEM: none
fun foo(): RuntimeException? {
return RuntimeException()
}
fun test() {
<caret>foo()
}
@@ -0,0 +1,7 @@
// PROBLEM: Throwable instance 'FooException' is not thrown
// FIX: none
class FooException : Exception()
fun test() {
val e = <caret>FooException()
}
@@ -0,0 +1,7 @@
// PROBLEM: none
class FooException : Exception()
fun test() {
val e = <caret>FooException()
throw e
}
@@ -0,0 +1,7 @@
// PROBLEM: none
class FooException : Exception()
fun test() {
val e = <caret>FooException()
val e2 = e
}
@@ -0,0 +1,6 @@
// PROBLEM: none
class FooException : RuntimeException()
fun test(i: Int?) {
val x = i ?: throw <caret>FooException()
}
@@ -0,0 +1,9 @@
// PROBLEM: none
class FooException : RuntimeException()
class BarException : RuntimeException()
fun test(i: Int?): RuntimeException {
val x = i ?: return <caret>FooException()
return BarException()
}
@@ -0,0 +1,8 @@
// PROBLEM: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(): FooException {
return <caret>createException()
}
@@ -0,0 +1,6 @@
// PROBLEM: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test() = <caret>createException()
@@ -0,0 +1,6 @@
// PROBLEM: none
class FooException : RuntimeException()
fun test() {
throw <caret>FooException()
}
@@ -0,0 +1,12 @@
// PROBLEM: Result of 'createException' call is not thrown
// FIX: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(i: Int) {
when (i) {
1 -> FooException()
else -> <caret>createException()
}
}
@@ -0,0 +1,11 @@
// PROBLEM: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(i: Int) {
throw when (i) {
1 -> FooException()
else -> <caret>createException()
}
}
@@ -0,0 +1,12 @@
// PROBLEM: Result of 'createException' call is not thrown
// FIX: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(i: Int) {
val e = when (i) {
1 -> FooException()
else -> <caret>createException()
}
}
@@ -0,0 +1,12 @@
// PROBLEM: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(i: Int) {
val e = when (i) {
1 -> FooException()
else -> <caret>createException()
}
throw e
}
@@ -0,0 +1,11 @@
// PROBLEM: none
class FooException : RuntimeException()
fun createException() = FooException()
fun test(i: Int) {
val x = when (i) {
1 -> 10
else -> throw <caret>createException()
}
}