[NI] Update type of complex subcall for last lambda expressions

This commit is contained in:
Mikhail Zarechenskiy
2020-02-25 10:45:21 +03:00
parent 66ef49cecc
commit 5393074d61
11 changed files with 70 additions and 2 deletions
@@ -179,7 +179,7 @@ private fun checkSubCallArgument(
diagnosticsHolder: KotlinDiagnosticsHolder,
receiverInfo: ReceiverInfo,
): ResolvedAtom {
val subCallResult = subCallArgument.callResult
val subCallResult = ResolvedSubCallArgument(subCallArgument)
if (expectedType == null) return subCallResult
@@ -44,7 +44,7 @@ interface SimpleKotlinCallArgument : KotlinCallArgument, ReceiverKotlinCallArgum
interface ExpressionKotlinCallArgument : SimpleKotlinCallArgument, ResolutionAtom
interface SubKotlinCallArgument : SimpleKotlinCallArgument {
interface SubKotlinCallArgument : SimpleKotlinCallArgument, ResolutionAtom {
val callResult: PartialCallResolutionResult
}
@@ -85,6 +85,12 @@ class ResolvedExpressionAtom(override val atom: ExpressionKotlinCallArgument) :
}
}
class ResolvedSubCallArgument(override val atom: SubKotlinCallArgument) : ResolvedAtom() {
init {
setAnalyzedResults(listOf(atom.callResult))
}
}
interface PostponedResolvedAtomMarker {
val inputTypes: Collection<KotlinTypeMarker>
val outputType: KotlinTypeMarker?