Prohibit irrelevant fields in @JvmRecord classes

^KT-43677 In Progress
This commit is contained in:
Denis.Zharkov
2020-11-27 18:53:06 +03:00
parent 1b575d7903
commit 033f43794d
6 changed files with 86 additions and 7 deletions
@@ -46,3 +46,8 @@ fun main() {
<!LOCAL_JVM_RECORD!>@JvmRecord<!>
class Local
}
class Outer {
@JvmRecord
<!INNER_JVM_RECORD!>inner<!> class Inner(val name: String)
}
@@ -0,0 +1,40 @@
// !LANGUAGE: +JvmRecordSupport
// SKIP_TXT
interface I
val i: I = object : I {}
@JvmRecord
class MyRec1(val name: String) : <!DELEGATION_BY_IN_JVM_RECORD!>I by i<!>
@JvmRecord
class MyRec2(val name: String) {
<!FIELD_IN_JVM_RECORD!>val x: Int = 0<!>
}
@JvmRecord
class MyRec3(val name: String) {
<!FIELD_IN_JVM_RECORD!>val y: String
get() = field + "1"<!>
init {
y = ""
}
}
@JvmRecord
class MyRec4(val name: String) {
<!FIELD_IN_JVM_RECORD!>val z: Int by lazy { 1 }<!>
}
@JvmRecord
class MyRec5(val name: String) {
val w: String get() = name + "1"
}