Prohibit inline modifier on property, getter or setter

This commit is contained in:
Alexey Tsvetkov
2015-10-17 00:43:37 +03:00
parent 7a1b6ed13f
commit c459e78a7d
5 changed files with 10 additions and 6 deletions
@@ -77,7 +77,7 @@ public object ModifierCheckerCore {
COMPANION_KEYWORD to EnumSet.of(OBJECT),
LATEINIT_KEYWORD to EnumSet.of(MEMBER_PROPERTY),
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),
TAILREC_KEYWORD to EnumSet.of(FUNCTION),
EXTERNAL_KEYWORD to EnumSet.of(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER),
@@ -2,10 +2,10 @@
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)
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)
@@ -15,9 +15,12 @@ abstract class A() {
class FinalClass() {
<!NON_FINAL_MEMBER_IN_FINAL_CLASS!>open<!> fun foo() {}
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
<!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
@@ -29,6 +29,7 @@ package illegal_modifiers {
public final class FinalClass {
public constructor FinalClass()
public final val f: () -> kotlin.Unit
public final val i: kotlin.Int = 1
public final var j: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
+1 -1
View File
@@ -19,7 +19,7 @@ inline public fun myArrayList<T>(vararg values: T): ArrayList<T> {
return c
}
inline public val <T> ArrayList<T>.myHead: T
public val <T> ArrayList<T>.myHead: T
get() {
return get(0)
}