FirForLoopChecker: report also OPERATOR_MODIFIER if appropriate + minor

This commits checks iterator/hasNext/next functions whether they are
declared as operator or not. Also, it changes logic of hasNext/next
error reporting, now we're able to report errors about both these
functions.
This commit is contained in:
Mikhail Glukhikh
2021-04-16 15:24:16 +03:00
parent 2e14b65644
commit a736d62edd
16 changed files with 222 additions and 52 deletions
+29
View File
@@ -2,6 +2,10 @@ package
public fun test(): kotlin.Unit
public fun test2(): kotlin.Unit
public fun test3(/*0*/ i: kotlin.Int, /*1*/ d: kotlin.Double, /*2*/ b: kotlin.Boolean): kotlin.Unit
public operator fun kotlin.Boolean.iterator(): MyBooleanIterator
public operator fun kotlin.Double.iterator(): MyDoubleIterator
public fun kotlin.Int.iterator(): MyIntIterator
public open class Anc : Base {
public constructor Anc()
@@ -65,3 +69,28 @@ public final class Example2 {
public final operator fun rangeTo(/*0*/ o: Example2): Example2
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyBooleanIterator {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract fun hasNext(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract operator fun next(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyDoubleIterator {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract operator fun hasNext(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract fun next(): kotlin.Double
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyIntIterator {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract operator fun hasNext(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract operator fun next(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}