Prohibit inline modifier on property, getter or setter
This commit is contained in:
@@ -77,7 +77,7 @@ public object ModifierCheckerCore {
|
|||||||
COMPANION_KEYWORD to EnumSet.of(OBJECT),
|
COMPANION_KEYWORD to EnumSet.of(OBJECT),
|
||||||
LATEINIT_KEYWORD to EnumSet.of(MEMBER_PROPERTY),
|
LATEINIT_KEYWORD to EnumSet.of(MEMBER_PROPERTY),
|
||||||
DATA_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS),
|
DATA_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS),
|
||||||
INLINE_KEYWORD to EnumSet.of(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, PROPERTY),
|
INLINE_KEYWORD to EnumSet.of(FUNCTION),
|
||||||
NOINLINE_KEYWORD to EnumSet.of(VALUE_PARAMETER),
|
NOINLINE_KEYWORD to EnumSet.of(VALUE_PARAMETER),
|
||||||
TAILREC_KEYWORD to EnumSet.of(FUNCTION),
|
TAILREC_KEYWORD to EnumSet.of(FUNCTION),
|
||||||
EXTERNAL_KEYWORD to EnumSet.of(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER),
|
EXTERNAL_KEYWORD to EnumSet.of(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER),
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
import java.io.*
|
import java.io.*
|
||||||
|
|
||||||
inline val InputStream.buffered : BufferedInputStream
|
<!WRONG_MODIFIER_TARGET!>inline<!> val InputStream.buffered : BufferedInputStream
|
||||||
get() = if(this is BufferedInputStream) <!DEBUG_INFO_SMARTCAST!>this<!> else BufferedInputStream(this)
|
get() = if(this is BufferedInputStream) <!DEBUG_INFO_SMARTCAST!>this<!> else BufferedInputStream(this)
|
||||||
|
|
||||||
inline val Reader.buffered : BufferedReader
|
<!WRONG_MODIFIER_TARGET!>inline<!> val Reader.buffered : BufferedReader
|
||||||
get() = if(this is BufferedReader) <!DEBUG_INFO_SMARTCAST!>this<!> else BufferedReader(this)
|
get() = if(this is BufferedReader) <!DEBUG_INFO_SMARTCAST!>this<!> else BufferedReader(this)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,9 +15,12 @@ abstract class A() {
|
|||||||
class FinalClass() {
|
class FinalClass() {
|
||||||
<!NON_FINAL_MEMBER_IN_FINAL_CLASS!>open<!> fun foo() {}
|
<!NON_FINAL_MEMBER_IN_FINAL_CLASS!>open<!> fun foo() {}
|
||||||
val i: Int = 1
|
val i: Int = 1
|
||||||
<!WRONG_MODIFIER_TARGET!>open<!> get(): Int = field
|
<!WRONG_MODIFIER_TARGET!>open<!> <!WRONG_MODIFIER_TARGET!>inline<!> get(): Int = field
|
||||||
var j: Int = 1
|
var j: Int = 1
|
||||||
<!WRONG_MODIFIER_TARGET!>open<!> set(v: Int) {}
|
<!WRONG_MODIFIER_TARGET!>open<!> <!WRONG_MODIFIER_TARGET!>inline<!> set(v: Int) {}
|
||||||
|
|
||||||
|
<!WRONG_MODIFIER_TARGET!>inline<!> val f: ()->Unit
|
||||||
|
get() = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
<!INCOMPATIBLE_MODIFIERS!>private<!> <!INCOMPATIBLE_MODIFIERS!>public<!> class C
|
<!INCOMPATIBLE_MODIFIERS!>private<!> <!INCOMPATIBLE_MODIFIERS!>public<!> class C
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ package illegal_modifiers {
|
|||||||
|
|
||||||
public final class FinalClass {
|
public final class FinalClass {
|
||||||
public constructor FinalClass()
|
public constructor FinalClass()
|
||||||
|
public final val f: () -> kotlin.Unit
|
||||||
public final val i: kotlin.Int = 1
|
public final val i: kotlin.Int = 1
|
||||||
public final var j: kotlin.Int
|
public final var j: kotlin.Int
|
||||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ inline public fun myArrayList<T>(vararg values: T): ArrayList<T> {
|
|||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
inline public val <T> ArrayList<T>.myHead: T
|
public val <T> ArrayList<T>.myHead: T
|
||||||
get() {
|
get() {
|
||||||
return get(0)
|
return get(0)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user