generated from JavierSegoviaCordoba/kotlin-template-javiersc
-
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add
diagnostics/missing-data-class
tests
- Loading branch information
1 parent
e4dc633
commit ac12cce
Showing
14 changed files
with
617 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
101 changes: 101 additions & 0 deletions
101
...compiler/test-data/diagnostics/missing-data-class/simple-1-level-deep-update-each.fir.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
FILE: simple-1-level-deep-update-each.kt | ||
package com.javiersc.kotlin.kopy.playground | ||
|
||
public final fun diagnostics(): R|kotlin/Unit| { | ||
lval qux0: R|com/javiersc/kotlin/kopy/playground/Qux| = R|com/javiersc/kotlin/kopy/playground/Qux.Qux|(Int(7)) | ||
lval baz0: R|com/javiersc/kotlin/kopy/playground/Baz| = R|com/javiersc/kotlin/kopy/playground/Baz.Baz|(R|<local>/qux0|, R|kotlin/collections/listOf|<R|kotlin/String|>(vararg(String(Random 0), String(Random 1)))) | ||
lval bar0: R|com/javiersc/kotlin/kopy/playground/Bar| = R|com/javiersc/kotlin/kopy/playground/Bar.Bar|(R|<local>/baz0|, Boolean(true)) | ||
lval foo0: R|com/javiersc/kotlin/kopy/playground/Foo| = R|com/javiersc/kotlin/kopy/playground/Foo.Foo|(R|<local>/bar0|, Char(W)) | ||
lval foo61: R|com/javiersc/kotlin/kopy/playground/Foo| = R|<local>/foo0|.R|SubstitutionOverride<com/javiersc/kotlin/kopy/playground/Foo.invoke: R|com/javiersc/kotlin/kopy/playground/Foo|>|(<L> = foo0@fun R|com/javiersc/kotlin/kopy/playground/Foo|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> { | ||
(this@R|special/anonymous|, this@R|special/anonymous|.R|com/javiersc/kotlin/kopy/playground/Foo.bar|.R|com/javiersc/kotlin/kopy/playground/Bar.baz|.R|com/javiersc/kotlin/kopy/playground/Baz.texts|).R|SubstitutionOverride<com/javiersc/kotlin/kopy/playground/Foo.updateEach: R|kotlin/Unit|>|<R|kotlin/String|>(<L> = updateEach@fun <anonymous>(it: R|kotlin/String|): R|kotlin/String| <inline=NoInline> { | ||
^ <strcat>(R|<local>/it|, String( foo)) | ||
} | ||
) | ||
} | ||
) | ||
} | ||
@R|com/javiersc/kotlin/kopy/Kopy|() public final data class Qux : R|kotlin/Any|, R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Qux>| { | ||
public constructor(number: R|kotlin/Int|): R|com/javiersc/kotlin/kopy/playground/Qux| { | ||
super<R|kotlin/Any|>() | ||
} | ||
|
||
public final val number: R|kotlin/Int| = R|<local>/number| | ||
public get(): R|kotlin/Int| | ||
|
||
public final operator fun component1(): R|kotlin/Int| | ||
|
||
public final fun copy(number: R|kotlin/Int| = this@R|com/javiersc/kotlin/kopy/playground/Qux|.R|com/javiersc/kotlin/kopy/playground/Qux.number|): R|com/javiersc/kotlin/kopy/playground/Qux| | ||
|
||
public open override fun _initKopyable(): R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Qux>| { | ||
} | ||
|
||
public open override val _atomic: R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Qux>| | ||
public get(): R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Qux>| | ||
|
||
} | ||
@R|com/javiersc/kotlin/kopy/Kopy|() public final class Baz : R|kotlin/Any|, R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Baz>| { | ||
public constructor(qux: R|com/javiersc/kotlin/kopy/playground/Qux|, texts: R|kotlin/collections/List<kotlin/String>|): R|com/javiersc/kotlin/kopy/playground/Baz| { | ||
super<R|kotlin/Any|>() | ||
} | ||
|
||
public final val qux: R|com/javiersc/kotlin/kopy/playground/Qux| = R|<local>/qux| | ||
public get(): R|com/javiersc/kotlin/kopy/playground/Qux| | ||
|
||
public final val texts: R|kotlin/collections/List<kotlin/String>| = R|<local>/texts| | ||
public get(): R|kotlin/collections/List<kotlin/String>| | ||
|
||
public open override fun _initKopyable(): R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Baz>| { | ||
} | ||
|
||
public open override val _atomic: R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Baz>| | ||
public get(): R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Baz>| | ||
|
||
} | ||
@R|com/javiersc/kotlin/kopy/Kopy|() public final data class Bar : R|kotlin/Any|, R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Bar>| { | ||
public constructor(baz: R|com/javiersc/kotlin/kopy/playground/Baz|, isValid: R|kotlin/Boolean|): R|com/javiersc/kotlin/kopy/playground/Bar| { | ||
super<R|kotlin/Any|>() | ||
} | ||
|
||
public final val baz: R|com/javiersc/kotlin/kopy/playground/Baz| = R|<local>/baz| | ||
public get(): R|com/javiersc/kotlin/kopy/playground/Baz| | ||
|
||
public final val isValid: R|kotlin/Boolean| = R|<local>/isValid| | ||
public get(): R|kotlin/Boolean| | ||
|
||
public final operator fun component1(): R|com/javiersc/kotlin/kopy/playground/Baz| | ||
|
||
public final operator fun component2(): R|kotlin/Boolean| | ||
|
||
public final fun copy(baz: R|com/javiersc/kotlin/kopy/playground/Baz| = this@R|com/javiersc/kotlin/kopy/playground/Bar|.R|com/javiersc/kotlin/kopy/playground/Bar.baz|, isValid: R|kotlin/Boolean| = this@R|com/javiersc/kotlin/kopy/playground/Bar|.R|com/javiersc/kotlin/kopy/playground/Bar.isValid|): R|com/javiersc/kotlin/kopy/playground/Bar| | ||
|
||
public open override fun _initKopyable(): R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Bar>| { | ||
} | ||
|
||
public open override val _atomic: R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Bar>| | ||
public get(): R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Bar>| | ||
|
||
} | ||
@R|com/javiersc/kotlin/kopy/Kopy|() public final data class Foo : R|kotlin/Any|, R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Foo>| { | ||
public constructor(bar: R|com/javiersc/kotlin/kopy/playground/Bar|, letter: R|kotlin/Char|): R|com/javiersc/kotlin/kopy/playground/Foo| { | ||
super<R|kotlin/Any|>() | ||
} | ||
|
||
public final val bar: R|com/javiersc/kotlin/kopy/playground/Bar| = R|<local>/bar| | ||
public get(): R|com/javiersc/kotlin/kopy/playground/Bar| | ||
|
||
public final val letter: R|kotlin/Char| = R|<local>/letter| | ||
public get(): R|kotlin/Char| | ||
|
||
public final operator fun component1(): R|com/javiersc/kotlin/kopy/playground/Bar| | ||
|
||
public final operator fun component2(): R|kotlin/Char| | ||
|
||
public final fun copy(bar: R|com/javiersc/kotlin/kopy/playground/Bar| = this@R|com/javiersc/kotlin/kopy/playground/Foo|.R|com/javiersc/kotlin/kopy/playground/Foo.bar|, letter: R|kotlin/Char| = this@R|com/javiersc/kotlin/kopy/playground/Foo|.R|com/javiersc/kotlin/kopy/playground/Foo.letter|): R|com/javiersc/kotlin/kopy/playground/Foo| | ||
|
||
public open override fun _initKopyable(): R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Foo>| { | ||
} | ||
|
||
public open override val _atomic: R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Foo>| | ||
public get(): R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Foo>| | ||
|
||
} |
22 changes: 22 additions & 0 deletions
22
kopy-compiler/test-data/diagnostics/missing-data-class/simple-1-level-deep-update-each.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// !LANGUAGE: +ContextReceivers | ||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -MISSING_DEPENDENCY_CLASS -MISSING_DEPENDENCY_SUPERCLASS | ||
|
||
package com.javiersc.kotlin.kopy.playground | ||
|
||
import com.javiersc.kotlin.kopy.Kopy | ||
|
||
fun diagnostics() { | ||
val qux0 = Qux(number = 7) | ||
val baz0 = Baz(qux = qux0, texts = listOf("Random 0", "Random 1")) | ||
val bar0 = Bar(baz = baz0, isValid = true) | ||
val foo0 = Foo(bar = bar0, letter = 'W') | ||
|
||
val foo61 = foo0 { | ||
bar.<!MISSING_DATA_CLASS!>baz<!>.texts.updateEach { "$it foo" } | ||
} | ||
} | ||
|
||
@Kopy data class Qux(val number: Int) | ||
<!NON_DATA_CLASS_KOPY_ANNOTATED!>@Kopy<!> class Baz(val qux: Qux, val texts: List<String>) | ||
@Kopy data class Bar(val baz: Baz, val isValid: Boolean) | ||
@Kopy data class Foo(val bar: Bar, val letter: Char) |
101 changes: 101 additions & 0 deletions
101
kopy-compiler/test-data/diagnostics/missing-data-class/simple-1-level-deep-update.fir.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
FILE: simple-1-level-deep-update.kt | ||
package com.javiersc.kotlin.kopy.playground | ||
|
||
public final fun diagnostics(): R|kotlin/Unit| { | ||
lval qux0: R|com/javiersc/kotlin/kopy/playground/Qux| = R|com/javiersc/kotlin/kopy/playground/Qux.Qux|(Int(7)) | ||
lval baz0: R|com/javiersc/kotlin/kopy/playground/Baz| = R|com/javiersc/kotlin/kopy/playground/Baz.Baz|(R|<local>/qux0|, String(Random)) | ||
lval bar0: R|com/javiersc/kotlin/kopy/playground/Bar| = R|com/javiersc/kotlin/kopy/playground/Bar.Bar|(R|<local>/baz0|, Boolean(true)) | ||
lval foo0: R|com/javiersc/kotlin/kopy/playground/Foo| = R|com/javiersc/kotlin/kopy/playground/Foo.Foo|(R|<local>/bar0|, Char(W)) | ||
lval foo61: R|com/javiersc/kotlin/kopy/playground/Foo| = R|<local>/foo0|.R|SubstitutionOverride<com/javiersc/kotlin/kopy/playground/Foo.invoke: R|com/javiersc/kotlin/kopy/playground/Foo|>|(<L> = foo0@fun R|com/javiersc/kotlin/kopy/playground/Foo|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> { | ||
(this@R|special/anonymous|, this@R|special/anonymous|.R|com/javiersc/kotlin/kopy/playground/Foo.bar|.R|com/javiersc/kotlin/kopy/playground/Bar.baz|.R|com/javiersc/kotlin/kopy/playground/Baz.text|).R|SubstitutionOverride<com/javiersc/kotlin/kopy/playground/Foo.update: R|kotlin/Unit|>|<R|kotlin/String|>(<L> = update@fun <anonymous>(it: R|kotlin/String|): R|kotlin/String| <inline=NoInline> { | ||
^ <strcat>(R|<local>/it|, String( 2)) | ||
} | ||
) | ||
} | ||
) | ||
} | ||
@R|com/javiersc/kotlin/kopy/Kopy|() public final data class Qux : R|kotlin/Any|, R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Qux>| { | ||
public constructor(number: R|kotlin/Int|): R|com/javiersc/kotlin/kopy/playground/Qux| { | ||
super<R|kotlin/Any|>() | ||
} | ||
|
||
public final val number: R|kotlin/Int| = R|<local>/number| | ||
public get(): R|kotlin/Int| | ||
|
||
public final operator fun component1(): R|kotlin/Int| | ||
|
||
public final fun copy(number: R|kotlin/Int| = this@R|com/javiersc/kotlin/kopy/playground/Qux|.R|com/javiersc/kotlin/kopy/playground/Qux.number|): R|com/javiersc/kotlin/kopy/playground/Qux| | ||
|
||
public open override fun _initKopyable(): R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Qux>| { | ||
} | ||
|
||
public open override val _atomic: R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Qux>| | ||
public get(): R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Qux>| | ||
|
||
} | ||
@R|com/javiersc/kotlin/kopy/Kopy|() public final class Baz : R|kotlin/Any|, R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Baz>| { | ||
public constructor(qux: R|com/javiersc/kotlin/kopy/playground/Qux|, text: R|kotlin/String|): R|com/javiersc/kotlin/kopy/playground/Baz| { | ||
super<R|kotlin/Any|>() | ||
} | ||
|
||
public final val qux: R|com/javiersc/kotlin/kopy/playground/Qux| = R|<local>/qux| | ||
public get(): R|com/javiersc/kotlin/kopy/playground/Qux| | ||
|
||
public final val text: R|kotlin/String| = R|<local>/text| | ||
public get(): R|kotlin/String| | ||
|
||
public open override fun _initKopyable(): R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Baz>| { | ||
} | ||
|
||
public open override val _atomic: R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Baz>| | ||
public get(): R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Baz>| | ||
|
||
} | ||
@R|com/javiersc/kotlin/kopy/Kopy|() public final data class Bar : R|kotlin/Any|, R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Bar>| { | ||
public constructor(baz: R|com/javiersc/kotlin/kopy/playground/Baz|, isValid: R|kotlin/Boolean|): R|com/javiersc/kotlin/kopy/playground/Bar| { | ||
super<R|kotlin/Any|>() | ||
} | ||
|
||
public final val baz: R|com/javiersc/kotlin/kopy/playground/Baz| = R|<local>/baz| | ||
public get(): R|com/javiersc/kotlin/kopy/playground/Baz| | ||
|
||
public final val isValid: R|kotlin/Boolean| = R|<local>/isValid| | ||
public get(): R|kotlin/Boolean| | ||
|
||
public final operator fun component1(): R|com/javiersc/kotlin/kopy/playground/Baz| | ||
|
||
public final operator fun component2(): R|kotlin/Boolean| | ||
|
||
public final fun copy(baz: R|com/javiersc/kotlin/kopy/playground/Baz| = this@R|com/javiersc/kotlin/kopy/playground/Bar|.R|com/javiersc/kotlin/kopy/playground/Bar.baz|, isValid: R|kotlin/Boolean| = this@R|com/javiersc/kotlin/kopy/playground/Bar|.R|com/javiersc/kotlin/kopy/playground/Bar.isValid|): R|com/javiersc/kotlin/kopy/playground/Bar| | ||
|
||
public open override fun _initKopyable(): R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Bar>| { | ||
} | ||
|
||
public open override val _atomic: R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Bar>| | ||
public get(): R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Bar>| | ||
|
||
} | ||
@R|com/javiersc/kotlin/kopy/Kopy|() public final data class Foo : R|kotlin/Any|, R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Foo>| { | ||
public constructor(bar: R|com/javiersc/kotlin/kopy/playground/Bar|, letter: R|kotlin/Char|): R|com/javiersc/kotlin/kopy/playground/Foo| { | ||
super<R|kotlin/Any|>() | ||
} | ||
|
||
public final val bar: R|com/javiersc/kotlin/kopy/playground/Bar| = R|<local>/bar| | ||
public get(): R|com/javiersc/kotlin/kopy/playground/Bar| | ||
|
||
public final val letter: R|kotlin/Char| = R|<local>/letter| | ||
public get(): R|kotlin/Char| | ||
|
||
public final operator fun component1(): R|com/javiersc/kotlin/kopy/playground/Bar| | ||
|
||
public final operator fun component2(): R|kotlin/Char| | ||
|
||
public final fun copy(bar: R|com/javiersc/kotlin/kopy/playground/Bar| = this@R|com/javiersc/kotlin/kopy/playground/Foo|.R|com/javiersc/kotlin/kopy/playground/Foo.bar|, letter: R|kotlin/Char| = this@R|com/javiersc/kotlin/kopy/playground/Foo|.R|com/javiersc/kotlin/kopy/playground/Foo.letter|): R|com/javiersc/kotlin/kopy/playground/Foo| | ||
|
||
public open override fun _initKopyable(): R|com/javiersc/kotlin/kopy/runtime/Kopyable<com/javiersc/kotlin/kopy/playground/Foo>| { | ||
} | ||
|
||
public open override val _atomic: R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Foo>| | ||
public get(): R|kotlinx/atomicfu/AtomicRef<com/javiersc/kotlin/kopy/playground/Foo>| | ||
|
||
} |
22 changes: 22 additions & 0 deletions
22
kopy-compiler/test-data/diagnostics/missing-data-class/simple-1-level-deep-update.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// !LANGUAGE: +ContextReceivers | ||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -MISSING_DEPENDENCY_CLASS -MISSING_DEPENDENCY_SUPERCLASS | ||
|
||
package com.javiersc.kotlin.kopy.playground | ||
|
||
import com.javiersc.kotlin.kopy.Kopy | ||
|
||
fun diagnostics() { | ||
val qux0 = Qux(number = 7) | ||
val baz0 = Baz(qux = qux0, text = "Random") | ||
val bar0 = Bar(baz = baz0, isValid = true) | ||
val foo0 = Foo(bar = bar0, letter = 'W') | ||
|
||
val foo61 = foo0 { | ||
bar.<!MISSING_DATA_CLASS!>baz<!>.text.update { "$it 2" } | ||
} | ||
} | ||
|
||
@Kopy data class Qux(val number: Int) | ||
<!NON_DATA_CLASS_KOPY_ANNOTATED!>@Kopy<!> class Baz(val qux: Qux, val text: String) | ||
@Kopy data class Bar(val baz: Baz, val isValid: Boolean) | ||
@Kopy data class Foo(val bar: Bar, val letter: Char) |
22 changes: 22 additions & 0 deletions
22
kopy-compiler/test-data/diagnostics/missing-data-class/simple-deep-set.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// !LANGUAGE: +ContextReceivers | ||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -MISSING_DEPENDENCY_CLASS -MISSING_DEPENDENCY_SUPERCLASS | ||
|
||
package com.javiersc.kotlin.kopy.playground | ||
|
||
import com.javiersc.kotlin.kopy.Kopy | ||
|
||
fun diagnostics() { | ||
val qux0 = Qux(number = 7) | ||
val baz0 = Baz(qux = qux0, text = "Random") | ||
val bar0 = Bar(baz = baz0, isValid = true) | ||
val foo0 = Foo(bar = bar0, letter = 'W') | ||
|
||
val foo61 = foo0 { | ||
bar.<!MISSING_DATA_CLASS!>baz<!>.qux.number.set(10) | ||
} | ||
} | ||
|
||
@Kopy data class Qux(val number: Int) | ||
<!NON_DATA_CLASS_KOPY_ANNOTATED!>@Kopy<!> class Baz(val qux: Qux, val text: String) | ||
@Kopy data class Bar(val baz: Baz, val isValid: Boolean) | ||
@Kopy data class Foo(val bar: Bar, val letter: Char) |
28 changes: 28 additions & 0 deletions
28
kopy-compiler/test-data/diagnostics/missing-data-class/simple-multiple-deep-assign.kt.TODO
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
// !LANGUAGE: +ContextReceivers | ||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -MISSING_DEPENDENCY_CLASS -MISSING_DEPENDENCY_SUPERCLASS | ||
|
||
package com.javiersc.kotlin.kopy.playground | ||
|
||
import com.javiersc.kotlin.kopy.Kopy | ||
|
||
fun diagnostics() { | ||
val house = House( | ||
squareMeters = 100, | ||
kitchen = Kitchen( | ||
cat = Cat( | ||
name = "Garfield", | ||
age = 5, | ||
), | ||
squareMeters = 10, | ||
) | ||
) | ||
|
||
val house2 = house copy { | ||
<!MISSING_DATA_CLASS!>kitchen<!>.cat.age = 6 | ||
<!MISSING_DATA_CLASS!>kitchen<!>.squareMeters = 45 | ||
} | ||
} | ||
|
||
@Kopy data class House(val squareMeters: Int, val kitchen: Kitchen) | ||
class Kitchen(val cat: Cat, val squareMeters: Int) | ||
data class Cat(val name: String, val age: Int) |
Oops, something went wrong.