[FE] Resolve overload conflict between contextual and non-contextual declarations
This commit is contained in:
committed by
TeamCityServer
parent
7fd5034cd6
commit
f427265739
+4
-1
@@ -18,6 +18,7 @@ class FlatSignature<out T> constructor(
|
||||
val origin: T,
|
||||
val typeParameters: Collection<TypeParameterMarker>,
|
||||
val hasExtensionReceiver: Boolean,
|
||||
val contextReceiverCount: Int,
|
||||
val hasVarargs: Boolean,
|
||||
val numDefaults: Int,
|
||||
val isExpect: Boolean,
|
||||
@@ -31,12 +32,13 @@ class FlatSignature<out T> constructor(
|
||||
typeParameters: Collection<TypeParameterMarker>,
|
||||
valueParameterTypes: List<KotlinTypeMarker?>,
|
||||
hasExtensionReceiver: Boolean,
|
||||
contextReceiverCount: Int,
|
||||
hasVarargs: Boolean,
|
||||
numDefaults: Int,
|
||||
isExpect: Boolean,
|
||||
isSyntheticMember: Boolean,
|
||||
) : this(
|
||||
origin, typeParameters, hasExtensionReceiver, hasVarargs, numDefaults, isExpect,
|
||||
origin, typeParameters, hasExtensionReceiver, contextReceiverCount, hasVarargs, numDefaults, isExpect,
|
||||
isSyntheticMember, valueParameterTypes.map(::TypeWithConversion)
|
||||
)
|
||||
|
||||
@@ -106,6 +108,7 @@ fun <T> SimpleConstraintSystem.isSignatureNotLessSpecific(
|
||||
useOriginalSamTypes: Boolean = false
|
||||
): Boolean {
|
||||
if (specific.hasExtensionReceiver != general.hasExtensionReceiver) return false
|
||||
if (specific.contextReceiverCount != general.contextReceiverCount) return false
|
||||
if (specific.valueParameterTypes.size != general.valueParameterTypes.size) return false
|
||||
|
||||
if (!isValueParameterTypeNotLessSpecific(specific, general, callbacks, specificityComparator) { it?.resultType }) {
|
||||
|
||||
Reference in New Issue
Block a user