KT-2632 Check multi-declaraions in for-loops

#KT-2632 Fixed
This commit is contained in:
Andrey Breslav
2012-08-21 19:49:14 +04:00
parent 22974391eb
commit 5b77210c95
10 changed files with 174 additions and 1 deletions
@@ -0,0 +1,14 @@
class A {
fun component1() = 1
fun component2() = 1
}
class C {
fun iterator(): Iterator<A> = null!!
}
fun test() {
for ((x, y) in C()) {
}
}
@@ -0,0 +1,14 @@
class A {
fun component1() = 1
fun component2() = 1.0
}
class C {
fun iterator(): Iterator<A> = null!!
}
fun test() {
for ((x: Double, y: Int) in <!COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH, COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH!>C()<!>) {
}
}
@@ -0,0 +1,15 @@
class A {
<!CONFLICTING_OVERLOADS!>fun component1()<!> = 1
<!CONFLICTING_OVERLOADS!>fun component1()<!> = 1
fun component2() = 1
}
class C {
fun iterator(): Iterator<A> = null!!
}
fun test() {
for ((x, y) in <!COMPONENT_FUNCTION_AMBIGUITY!>C()<!>) {
}
}
@@ -0,0 +1,13 @@
class A {
fun component1() = 1
}
class C {
fun iterator(): Iterator<A> = null!!
}
fun test() {
for ((x, y) in <!COMPONENT_FUNCTION_MISSING!>C()<!>) {
}
}
@@ -0,0 +1,14 @@
class A {
}
fun A.component1() = 1
fun A.component2() = 1
class C {
fun iterator(): Iterator<A> = null!!
}
fun test() {
for ((x, y) in C()) {
}
}
@@ -0,0 +1,14 @@
class A {
fun component1() = 1
fun component2() = 1.0
}
class C {
fun iterator(): Iterator<A> = null!!
}
fun test() {
for ((x: Int, y: Double) in C()) {
}
}
@@ -0,0 +1,14 @@
class A {
fun component1() = 1
fun component2() = 1
}
class C {
fun iterator(): Iterator<A> = null!!
}
fun test() {
for ((<!REDECLARATION!>x<!>, <!REDECLARATION!>x<!>) in C()) {
}
}
@@ -0,0 +1,13 @@
class A {
fun component1() = 1
}
class C {
fun iterator(): Iterator<A> = null!!
}
fun test() {
for ((x) in C()) {
}
}