// RUN_PIPELINE_TILL: FRONTEND
fun create(): Map<String, String> = null!!

operator fun <K, V> Map<K, V>.iterator(): Iterator<Map.Entry<K, V>> = null!!

operator fun <K, V> Map.Entry<K, V>.component1() = key

operator fun <K, V> Map.Entry<K, V>.component2() = value

class MyClass {
    private var m: Map<String, String>? = null
    fun foo(): Int {
        var res = 0
        m = create()
        // See KT-7428
        for ((k, v) in <!ITERATOR_ON_NULLABLE!>m<!>)
            res += (k.length + v.length)
        return res
    }
}

/* GENERATED_FIR_TAGS: additiveExpression, assignment, checkNotNullCall, classDeclaration, forLoop,
funWithExtensionReceiver, functionDeclaration, integerLiteral, localProperty, nullableType, operator,
propertyDeclaration, typeParameter */
