Supported usages as destructuring declaration for other class

This commit is contained in:
Valentin Kipyatkov
2016-08-25 21:23:56 +03:00
parent 80520b44c0
commit 696f382291
5 changed files with 37 additions and 6 deletions
@@ -8,4 +8,4 @@ class JavaClass {
}
public void takeA(A a){}
}
}
@@ -1,6 +1,6 @@
import pack.A
fun test(javaClass: JavaClass) {
fun test(javaClass: JavaClass, javaClass2: JavaClass2) {
val a = A(1, "2", Any())
a.n
a.component1()
@@ -0,0 +1,16 @@
package pack
data class B(val a: A, val n: Int)
class C {
operator fun component1(): A = TODO()
operator fun component2() = 0
}
fun f(b: B, c: C) {
val (a, n) = b
val (x, y, z) = a
val (a1, n1) = c
val (x1, y1, z1) = a1
}
@@ -12,4 +12,6 @@
[dataClass.2.kt] Value read 33 val (x, y) = list[0]
[dataClass.2.kt] Value read 5 a.n
[dataClass.2.kt] Value read 8 val (x, y, z) = a
[dataClass.2.kt] Value read 9 val (x1, y1, z1) = f()
[dataClass.2.kt] Value read 9 val (x1, y1, z1) = f()
[dataClass.3.kt] Value read 12 val (x, y, z) = a
[dataClass.3.kt] Value read 15 val (x1, y1, z1) = a1