[NI] Don't always complete builder inference lambda in FULL mode
#KT-41164 Fixed
This commit is contained in:
+2
@@ -82,6 +82,7 @@ class DelegatedPropertyInferenceSession(
|
||||
override fun inferPostponedVariables(
|
||||
lambda: ResolvedLambdaAtom,
|
||||
initialStorage: ConstraintStorage,
|
||||
completionMode: KotlinConstraintSystemCompleter.ConstraintSystemCompletionMode,
|
||||
diagnosticsHolder: KotlinDiagnosticsHolder
|
||||
): Map<TypeConstructor, UnwrappedType> = emptyMap()
|
||||
|
||||
@@ -103,6 +104,7 @@ class InferenceSessionForExistingCandidates(private val resolveReceiverIndepende
|
||||
override fun inferPostponedVariables(
|
||||
lambda: ResolvedLambdaAtom,
|
||||
initialStorage: ConstraintStorage,
|
||||
completionMode: KotlinConstraintSystemCompleter.ConstraintSystemCompletionMode,
|
||||
diagnosticsHolder: KotlinDiagnosticsHolder
|
||||
): Map<TypeConstructor, UnwrappedType> = emptyMap()
|
||||
|
||||
|
||||
+3
-1
@@ -147,7 +147,8 @@ class CoroutineInferenceSession(
|
||||
override fun inferPostponedVariables(
|
||||
lambda: ResolvedLambdaAtom,
|
||||
initialStorage: ConstraintStorage,
|
||||
diagnosticsHolder: KotlinDiagnosticsHolder
|
||||
completionMode: KotlinConstraintSystemCompleter.ConstraintSystemCompletionMode,
|
||||
diagnosticsHolder: KotlinDiagnosticsHolder,
|
||||
): Map<TypeConstructor, UnwrappedType>? {
|
||||
val (commonSystem, effectivelyEmptyConstraintSystem) = buildCommonSystem(initialStorage)
|
||||
if (effectivelyEmptyConstraintSystem) {
|
||||
@@ -160,6 +161,7 @@ class CoroutineInferenceSession(
|
||||
context,
|
||||
builtIns.unitType,
|
||||
partiallyResolvedCallsInfo.map { it.callResolutionResult.resultCallAtom },
|
||||
completionMode,
|
||||
diagnosticsHolder
|
||||
)
|
||||
|
||||
|
||||
+8
-3
@@ -81,15 +81,20 @@ abstract class ManyCandidatesResolver<D : CallableDescriptor>(
|
||||
}
|
||||
|
||||
fun runCompletion(constraintSystem: NewConstraintSystem, atoms: List<ResolvedAtom>) {
|
||||
val completionMode = KotlinConstraintSystemCompleter.ConstraintSystemCompletionMode.FULL
|
||||
kotlinConstraintSystemCompleter.runCompletion(
|
||||
constraintSystem.asConstraintSystemCompleterContext(),
|
||||
KotlinConstraintSystemCompleter.ConstraintSystemCompletionMode.FULL,
|
||||
completionMode,
|
||||
atoms,
|
||||
builtIns.unitType,
|
||||
diagnosticHolder
|
||||
) {
|
||||
postponedArgumentsAnalyzer.analyze(
|
||||
constraintSystem.asPostponedArgumentsAnalyzerContext(), resolutionCallbacks, it, diagnosticHolder
|
||||
constraintSystem.asPostponedArgumentsAnalyzerContext(),
|
||||
resolutionCallbacks,
|
||||
it,
|
||||
completionMode,
|
||||
diagnosticHolder
|
||||
)
|
||||
}
|
||||
|
||||
@@ -197,4 +202,4 @@ class PSICompletedCallInfo(
|
||||
class PSIErrorCallInfo<D : CallableDescriptor>(
|
||||
override val callResolutionResult: CallResolutionResult,
|
||||
val result: OverloadResolutionResults<D>
|
||||
) : ErrorCallInfo
|
||||
) : ErrorCallInfo
|
||||
|
||||
Reference in New Issue
Block a user