[FIR] Add RedundantModalityModifierChecker
This commit is contained in:
committed by
Mikhail Glukhikh
parent
e7c88a4349
commit
fb5fb44993
+60
@@ -0,0 +1,60 @@
|
||||
// Abstract
|
||||
abstract class Base {
|
||||
// Redundant final
|
||||
<!REDUNDANT_MODALITY_MODIFIER!>final<!> fun foo() {}
|
||||
// Abstract
|
||||
abstract fun bar()
|
||||
// Open
|
||||
open val gav = 42
|
||||
}
|
||||
|
||||
class FinalDerived : Base() {
|
||||
// Redundant final
|
||||
override <!REDUNDANT_MODALITY_MODIFIER!>final<!> fun bar() {}
|
||||
// Non-final member in final class
|
||||
override open val gav = 13
|
||||
}
|
||||
// Open
|
||||
open class OpenDerived : Base() {
|
||||
// Final
|
||||
override final fun bar() {}
|
||||
// Redundant open
|
||||
override <!REDUNDANT_MODALITY_MODIFIER!>open<!> val gav = 13
|
||||
}
|
||||
// Redundant final
|
||||
<!REDUNDANT_MODALITY_MODIFIER!>final<!> class Final
|
||||
// Interface
|
||||
interface Interface {
|
||||
// Redundant
|
||||
<!REDUNDANT_MODALITY_MODIFIER!>abstract<!> fun foo()
|
||||
// Redundant
|
||||
private <!REDUNDANT_MODALITY_MODIFIER!>final<!> fun bar() {}
|
||||
// Redundant
|
||||
<!REDUNDANT_MODALITY_MODIFIER!>open<!> val gav: Int
|
||||
get() = 42
|
||||
}
|
||||
// Derived interface
|
||||
interface Derived : Interface {
|
||||
// Redundant
|
||||
override <!REDUNDANT_MODALITY_MODIFIER!>open<!> fun foo() {}
|
||||
// Redundant
|
||||
<!REDUNDANT_MODALITY_MODIFIER!>final<!> class Nested
|
||||
}
|
||||
// Derived abstract class
|
||||
abstract class AbstractDerived1(override final val gav: Int) : Interface {
|
||||
// Redundant
|
||||
override <!REDUNDANT_MODALITY_MODIFIER!>open<!> fun foo() {}
|
||||
}
|
||||
// Derived abstract class
|
||||
abstract class AbstractDerived2 : Interface {
|
||||
// Final
|
||||
override final fun foo() {}
|
||||
// Redundant
|
||||
override <!REDUNDANT_MODALITY_MODIFIER!>open<!> val gav = 13
|
||||
}
|
||||
// Redundant abstract interface
|
||||
abstract interface AbstractInterface
|
||||
// Redundant final object
|
||||
<!REDUNDANT_MODALITY_MODIFIER!>final<!> object FinalObject
|
||||
// Open interface
|
||||
open interface OpenInterface
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
FILE: RedundantModalityModifierChecker.kt
|
||||
public abstract class Base : R|kotlin/Any| {
|
||||
public constructor(): R|Base| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public abstract fun bar(): R|kotlin/Unit|
|
||||
|
||||
public open val gav: R|kotlin/Int| = Int(42)
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
public final class FinalDerived : R|Base| {
|
||||
public constructor(): R|FinalDerived| {
|
||||
super<R|Base|>()
|
||||
}
|
||||
|
||||
public final override fun bar(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public open override val gav: R|kotlin/Int| = Int(13)
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
public open class OpenDerived : R|Base| {
|
||||
public constructor(): R|OpenDerived| {
|
||||
super<R|Base|>()
|
||||
}
|
||||
|
||||
public final override fun bar(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public open override val gav: R|kotlin/Int| = Int(13)
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
public final class Final : R|kotlin/Any| {
|
||||
public constructor(): R|Final| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface Interface : R|kotlin/Any| {
|
||||
public abstract fun foo(): R|kotlin/Unit|
|
||||
|
||||
private final fun bar(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public open val gav: R|kotlin/Int|
|
||||
public get(): R|kotlin/Int| {
|
||||
^ Int(42)
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface Derived : R|Interface| {
|
||||
public open override fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public final class Nested : R|kotlin/Any| {
|
||||
public constructor(): R|Derived.Nested| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public abstract class AbstractDerived1 : R|Interface| {
|
||||
public constructor(gav: R|kotlin/Int|): R|AbstractDerived1| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final override val gav: R|kotlin/Int| = R|<local>/gav|
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public open override fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
public abstract class AbstractDerived2 : R|Interface| {
|
||||
public constructor(): R|AbstractDerived2| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final override fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public open override val gav: R|kotlin/Int| = Int(13)
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
public abstract interface AbstractInterface : R|kotlin/Any| {
|
||||
}
|
||||
public final object FinalObject : R|kotlin/Any| {
|
||||
private constructor(): R|FinalObject| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public open interface OpenInterface : R|kotlin/Any| {
|
||||
}
|
||||
Reference in New Issue
Block a user