Prohibit properties with backing fields inside inline classes

This commit is contained in:
Mikhail Zarechenskiy
2018-05-07 00:15:06 +03:00
parent 29d15b9990
commit 043c3d9a97
8 changed files with 95 additions and 9 deletions
@@ -0,0 +1,34 @@
// !LANGUAGE: +InlineClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface A {
val goodSize: Int
}
interface B {
val badSize: Int
}
inline class Foo(val x: Int) : A, B {
val a0
get() = 0
<!PROPERTY_WITH_BACKING_FIELD_INSIDE_INLINE_CLASS!>val a1<!> = 0
var a2: Int
get() = 1
set(value) {}
<!PROPERTY_WITH_BACKING_FIELD_INSIDE_INLINE_CLASS!>var a3: Int<!> = 0
get() = 1
set(value) {
field = value
}
override val goodSize: Int
get() = 0
<!PROPERTY_WITH_BACKING_FIELD_INSIDE_INLINE_CLASS!>override val badSize: Int<!> = 0
<!PROPERTY_WITH_BACKING_FIELD_INSIDE_INLINE_CLASS!>lateinit var lateinitProperty: String<!>
}