blob: 7f92e8f07a723a5aa867d5cee8e5eb93e2a6cfd6 [file]
// RUN_PIPELINE_TILL: FRONTEND
// CHECK_TYPE
// ISSUE: KT-37070
class KotlinClass(private val name: String) : Comparable<KotlinClass> {
override operator fun compareTo(other: KotlinClass): Int {
return name.compareTo(other.name)
}
}
// TESTCASE NUMBER: 1
fun case1(kotlinClass: KotlinClass?) {
val value = kotlinClass?.let {
it
}
value.checkType { _<KotlinClass?>() }
val lambda = kotlinClass?.let {
{it}
}
lambda.checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Function1<Unit, KotlinClass?>>() }
}
// TESTCASE NUMBER: 2
fun case2(kotlinClass: KotlinClass) {
val value = kotlinClass.let {
it
}
value.checkType { _<KotlinClass>() }
val lambda = kotlinClass.let {
{it}
}
lambda.checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Function1<Unit, KotlinClass?>>() }
}
/* GENERATED_FIR_TAGS: classDeclaration, funWithExtensionReceiver, functionDeclaration, functionalType, infix,
lambdaLiteral, localProperty, nullableType, operator, override, primaryConstructor, propertyDeclaration, safeCall,
typeParameter, typeWithExtension */