blob: 544f829823a7e65fc1505423ac732271a44eab85 [file]
// RUN_PIPELINE_TILL: FRONTEND
// CHECK_TYPE
interface G {
operator fun get(x: Int, y: Int): Int = x + y
operator fun set(x: Int, y: Int, value: Int) {}
}
fun foo1(a: Int?, b: G) {
b[a!!, a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>] = a
checkSubtype<Int>(a)
}
fun foo2(a: Int?, b: G) {
b[0, a!!] = a
checkSubtype<Int>(a)
}
fun foo3(a: Int?, b: G) {
val r = b[a!!, a]
checkSubtype<Int>(a)
checkSubtype<Int>(r)
}
fun foo4(a: Int?, b: G) {
val r = b[0, a!!]
checkSubtype<Int>(a)
checkSubtype<Int>(r)
}
/* GENERATED_FIR_TAGS: additiveExpression, assignment, checkNotNullCall, classDeclaration, funWithExtensionReceiver,
functionDeclaration, functionalType, infix, integerLiteral, interfaceDeclaration, localProperty, nullableType, operator,
propertyDeclaration, smartcast, typeParameter, typeWithExtension */