val / var are now forbidden on a loop multi declaration parameter #KT-6274 Fixed

VAL_OR_VAR_ON_LOOP_MULTI_PARAMETER error added
KtValVarKeywordOwner interface added for PSIs that have getValOrVarKeyword method
This commit is contained in:
Anton Sukhonosenko
2015-10-26 01:47:16 +03:00
committed by Mikhail Glukhikh
parent 54cb575819
commit 141ffa27dc
17 changed files with 119 additions and 20 deletions
@@ -1,3 +1,18 @@
class Pair {
operator fun component1(): Int = null!!
operator fun component2(): Int = null!!
}
class Coll {
operator fun iterator(): It = It()
}
class It {
operator fun next() = Pair()
operator fun hasNext() = false
}
fun f() {
for (<!VAL_OR_VAR_ON_LOOP_PARAMETER!>val<!> i in 1..4) {
@@ -6,4 +21,12 @@ fun f() {
for (<!VAL_OR_VAR_ON_LOOP_PARAMETER!>var<!> i in 1..4) {
}
for (<!VAL_OR_VAR_ON_LOOP_MULTI_PARAMETER!>val<!> (i,j) in Coll()) {
}
for (<!VAL_OR_VAR_ON_LOOP_MULTI_PARAMETER!>var<!> (i,j) in Coll()) {
}
}
@@ -1,3 +1,29 @@
package
public fun f(): kotlin.Unit
public final class Coll {
public constructor Coll()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun iterator(): It
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class It {
public constructor It()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun hasNext(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun next(): Pair
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Pair {
public constructor Pair()
public final operator fun component1(): kotlin.Int
public final operator fun component2(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}