KT-51243 Fix parameterized contextual lambda
^KT-51243 Fixed
This commit is contained in:
committed by
teamcity
parent
efd5beb49b
commit
d857142514
+11
-2
@@ -19,11 +19,11 @@ import org.jetbrains.kotlin.resolve.calls.model.LambdaWithTypeVariableAsExpected
|
||||
import org.jetbrains.kotlin.resolve.calls.model.PostponedCallableReferenceMarker
|
||||
import org.jetbrains.kotlin.resolve.calls.model.PostponedResolvedAtomMarker
|
||||
import org.jetbrains.kotlin.types.model.KotlinTypeMarker
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
|
||||
// --------------------------- Variables ---------------------------
|
||||
|
||||
|
||||
|
||||
// -------------------------- Atoms --------------------------
|
||||
|
||||
sealed class PostponedResolvedAtom : PostponedResolvedAtomMarker {
|
||||
@@ -62,7 +62,16 @@ class ResolvedLambdaAtom(
|
||||
|
||||
lateinit var returnStatements: Collection<FirStatement>
|
||||
|
||||
override val inputTypes: Collection<ConeKotlinType> get() = receiver?.let { parameters + it } ?: parameters
|
||||
override val inputTypes: Collection<ConeKotlinType>
|
||||
get() {
|
||||
if (receiver == null && contextReceivers.isEmpty()) return parameters
|
||||
return ArrayList<ConeKotlinType>(parameters.size + contextReceivers.size + (if (receiver != null) 1 else 0)).apply {
|
||||
addAll(parameters)
|
||||
addIfNotNull(receiver)
|
||||
addAll(contextReceivers)
|
||||
}
|
||||
}
|
||||
|
||||
override val outputType: ConeKotlinType get() = returnType
|
||||
|
||||
fun replaceExpectedType(expectedType: ConeKotlinType, newReturnType: ConeTypeVariableType) {
|
||||
|
||||
Reference in New Issue
Block a user