[FE 1.0] Substituted possible fixed type variables after completion in accordance with @OverloadResolutionByLambdaReturnType
^KT-48031 Fixed
This commit is contained in:
committed by
teamcity
parent
5b5da025f4
commit
3ed87c29c7
+5
-4
@@ -15,9 +15,7 @@ import org.jetbrains.kotlin.resolve.calls.components.candidate.CallableReference
|
||||
import org.jetbrains.kotlin.resolve.calls.components.candidate.SimpleResolutionCandidate
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.NewConstraintSystem
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.addEqualityConstraintIfCompatible
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.KotlinConstraintSystemCompleter
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintSystemCompletionMode
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.TrivialConstraintTypeInferenceOracle
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.*
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintStorage.Empty.hasContradiction
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.ExpectedTypeConstraintPositionImpl
|
||||
import org.jetbrains.kotlin.resolve.calls.model.*
|
||||
@@ -304,7 +302,10 @@ class KotlinCallCompleter(
|
||||
|
||||
private fun ResolutionCandidate.substitutedReturnType(): UnwrappedType? {
|
||||
val returnType = resolvedCall.candidateDescriptor.returnType?.unwrap() ?: return null
|
||||
return resolvedCall.freshVariablesSubstitutor.safeSubstitute(returnType)
|
||||
val substitutedReturnTypeWithVariables = resolvedCall.freshVariablesSubstitutor.safeSubstitute(returnType)
|
||||
return (getResultingSubstitutor() as? NewTypeSubstitutorByConstructorMap)
|
||||
?.safeSubstitute(substitutedReturnTypeWithVariables)
|
||||
?: substitutedReturnTypeWithVariables
|
||||
}
|
||||
|
||||
private fun ResolutionCandidate.addExpectedTypeConstraint(
|
||||
|
||||
+3
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImp
|
||||
import org.jetbrains.kotlin.resolve.calls.model.*
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.*
|
||||
import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||
import org.jetbrains.kotlin.types.model.TypeSubstitutorMarker
|
||||
import java.util.ArrayList
|
||||
|
||||
sealed class ResolutionCandidate : Candidate, KotlinDiagnosticsHolder {
|
||||
@@ -55,6 +56,8 @@ sealed class ResolutionCandidate : Candidate, KotlinDiagnosticsHolder {
|
||||
private var newSystem: NewConstraintSystemImpl? = null
|
||||
private var currentApplicability: CandidateApplicability = CandidateApplicability.RESOLVED
|
||||
|
||||
fun getResultingSubstitutor(): TypeSubstitutorMarker? = newSystem?.buildCurrentSubstitutor()
|
||||
|
||||
abstract fun getSubResolvedAtoms(): List<ResolvedAtom>
|
||||
abstract fun addResolvedKtPrimitive(resolvedAtom: ResolvedAtom)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user