Implement additional declaration checks for inline classes
- Implementation by delegation is prohibited - Delegated properties are prohibited
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
|
||||
class Val {
|
||||
operator fun getValue(thisRef: Any?, kProp: Any?) = 1
|
||||
}
|
||||
|
||||
class Var {
|
||||
operator fun getValue(thisRef: Any?, kProp: Any?) = 2
|
||||
operator fun setValue(thisRef: Any?, kProp: Any?, value: Int) {}
|
||||
}
|
||||
|
||||
|
||||
object ValObject {
|
||||
operator fun getValue(thisRef: Any?, kProp: Any?) = 1
|
||||
}
|
||||
|
||||
object VarObject {
|
||||
operator fun getValue(thisRef: Any?, kProp: Any?) = 2
|
||||
operator fun setValue(thisRef: Any?, kProp: Any?, value: Int) {}
|
||||
}
|
||||
|
||||
inline class Z(val data: Int) {
|
||||
val testVal <!DELEGATED_PROPERTY_INSIDE_INLINE_CLASS!>by Val()<!>
|
||||
var testVar <!DELEGATED_PROPERTY_INSIDE_INLINE_CLASS!>by Var()<!>
|
||||
|
||||
val testValBySingleton <!DELEGATED_PROPERTY_INSIDE_INLINE_CLASS!>by ValObject<!>
|
||||
var testVarBySingleton <!DELEGATED_PROPERTY_INSIDE_INLINE_CLASS!>by VarObject<!>
|
||||
}
|
||||
Reference in New Issue
Block a user