[FE 1.0] Store builder inference session in the corresponding lambda argument
This commit is contained in:
committed by
teamcity
parent
74f294d849
commit
4dc9b291e5
+1
@@ -213,6 +213,7 @@ class KotlinResolutionCallbacksImpl(
|
||||
null
|
||||
}
|
||||
|
||||
lambdaArgument.builderInferenceSession = builderInferenceSession
|
||||
|
||||
val temporaryTrace = if (builderInferenceSession != null)
|
||||
TemporaryBindingTrace.create(trace, "Trace to resolve builder inference lambda: $lambdaArgument")
|
||||
|
||||
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.StatementFilter
|
||||
import org.jetbrains.kotlin.resolve.TypeResolver
|
||||
import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver
|
||||
import org.jetbrains.kotlin.resolve.calls.components.InferenceSession
|
||||
import org.jetbrains.kotlin.resolve.calls.util.getCall
|
||||
import org.jetbrains.kotlin.resolve.calls.context.BasicCallResolutionContext
|
||||
import org.jetbrains.kotlin.resolve.calls.model.*
|
||||
@@ -115,6 +116,12 @@ class LambdaKotlinCallArgumentImpl(
|
||||
assert(!field)
|
||||
field = value
|
||||
}
|
||||
|
||||
override var builderInferenceSession: InferenceSession? = null
|
||||
set(value) {
|
||||
assert(field == null)
|
||||
field = value
|
||||
}
|
||||
}
|
||||
|
||||
class FunctionExpressionImpl(
|
||||
|
||||
+5
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.calls.components.InferenceSession
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.DetailedReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.QualifierReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValueWithSmartCastInfo
|
||||
@@ -60,6 +61,10 @@ interface LambdaKotlinCallArgument : PostponableKotlinCallArgument {
|
||||
get() = false
|
||||
set(@Suppress("UNUSED_PARAMETER") value) {}
|
||||
|
||||
var builderInferenceSession: InferenceSession?
|
||||
get() = null
|
||||
set(@Suppress("UNUSED_PARAMETER") value) {}
|
||||
|
||||
/**
|
||||
* parametersTypes == null means, that there is no declared arguments
|
||||
* null inside array means that this type is not declared explicitly
|
||||
|
||||
Reference in New Issue
Block a user