Use resulting descriptor for old callable references to substitute stub type variables

This commit is contained in:
Victor Petukhov
2021-05-21 15:07:01 +03:00
parent 3ff22b67f7
commit 26cbb020db
2 changed files with 12 additions and 5 deletions
@@ -27,10 +27,7 @@ import org.jetbrains.kotlin.resolve.constants.EnumValue
import org.jetbrains.kotlin.resolve.isInlineClass
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.TypeProjection
import org.jetbrains.kotlin.types.TypeSubstitutor
import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
import org.jetbrains.kotlin.types.checker.KotlinTypeRefiner
import org.jetbrains.kotlin.types.checker.REFINER_CAPABILITY
@@ -426,3 +423,9 @@ fun ModuleDescriptor.isTypeRefinementEnabled(): Boolean = getCapability(REFINER_
val VariableDescriptor.isUnderscoreNamed
get() = !name.isSpecial && name.identifier == "_"
fun <D : CallableDescriptor> D.shouldBeUsedToSubstitute() =
valueParameters.none { it.type.isError }
&& returnType?.isError != true
&& dispatchReceiverParameter?.type?.isError != true
&& extensionReceiverParameter?.type?.isError != true