Add inspection for redundant overrides that only calls the super method

So #KT-19428 Fixed
This commit is contained in:
takahirom
2017-08-15 12:45:38 +03:00
committed by Mikhail Glukhikh
parent 8af7a25f8e
commit 806aa7d4c1
18 changed files with 317 additions and 1 deletions
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.KotlinRedundantOverrideInspection
@@ -0,0 +1,15 @@
// PROBLEM: none
@Target(AnnotationTarget.FUNCTION)
annotation class Annotation
open class Foo {
open fun simple() {
}
}
class Bar : Foo() {
@Annotation override <caret>fun simple() {
super.simple()
}
}
@@ -0,0 +1,10 @@
open class Foo {
open fun arguments(arg1: Int, arg2: Long) {
}
}
class Bar : Foo() {
override <caret>fun arguments(arg1: Int, arg2: Long) {
super.arguments(arg1, arg2)
}
}
@@ -0,0 +1,7 @@
open class Foo {
open fun arguments(arg1: Int, arg2: Long) {
}
}
class Bar : Foo() {
}
@@ -0,0 +1,11 @@
// PROBLEM: none
open class Foo {
open fun arguments(arg1: Int, arg2: Int) {
}
}
class Bar : Foo() {
override <caret>fun arguments(arg1: Int, arg2: Int) {
super.arguments(arg2, arg1)
}
}
@@ -0,0 +1,10 @@
open class Foo {
open fun simple() {
}
}
class Bar : Foo() {
override <caret>fun simple() {
super.simple()
}
}
@@ -0,0 +1,7 @@
open class Foo {
open fun simple() {
}
}
class Bar : Foo() {
}
@@ -0,0 +1,15 @@
// PROBLEM: none
open class Foo {
open fun simple() {
}
open fun callDifferentSuperMethod() {
}
}
class Bar : Foo() {
override <caret>fun callDifferentSuperMethod() {
super.simple()
}
}
@@ -0,0 +1,12 @@
// PROBLEM: none
open class Foo {
open fun simple() {
}
}
class Bar : Foo() {
override <caret>fun simple() {
1 + 1;
}
}
@@ -0,0 +1,13 @@
// PROBLEM: none
open class Foo {
open fun simple() {
}
}
class Bar : Foo() {
final override <caret>fun simple() {
super.simple()
}
}
@@ -0,0 +1,13 @@
// PROBLEM: none
open class Foo {
protected open fun simple() {
}
}
class Bar : Foo() {
public override <caret>fun simple() {
super.simple()
}
}
@@ -0,0 +1,8 @@
open class Foo {
open fun singleExpression() {
}
}
class Bar : Foo() {
override <caret>fun singleExpression() = super.singleExpression()
}
@@ -0,0 +1,7 @@
open class Foo {
open fun singleExpression() {
}
}
class Bar : Foo() {
}
@@ -0,0 +1,14 @@
// PROBLEM: none
interface First {
fun foo() = 2
}
interface Second {
fun foo() = 3
}
class Diamond : First, Second {
override <caret>fun foo(): Int {
return super<First>.foo()
}
}