[FE] Resolve overload conflict between contextual and non-contextual declarations

This commit is contained in:
Anastasiya Shadrina
2021-06-30 19:07:26 +07:00
committed by TeamCityServer
parent 7fd5034cd6
commit f427265739
12 changed files with 267 additions and 125 deletions
@@ -113,6 +113,7 @@ abstract class AbstractConeCallConflictResolver(
(variable as? FirProperty)?.typeParameters?.map { it.symbol.toLookupTag() }.orEmpty(),
listOfNotNull(variable.receiverTypeRef?.coneType),
variable.receiverTypeRef != null,
0, // TODO
false,
0,
(variable as? FirProperty)?.isExpect == true,
@@ -127,6 +128,7 @@ abstract class AbstractConeCallConflictResolver(
computeParameterTypes(call, constructor),
//constructor.receiverTypeRef != null,
false,
0, // TODO
constructor.valueParameters.any { it.isVararg },
call.numDefaults,
constructor.isExpect,
@@ -140,6 +142,7 @@ abstract class AbstractConeCallConflictResolver(
function.typeParameters.map { it.symbol.toLookupTag() },
computeParameterTypes(call, function),
function.receiverTypeRef != null,
0, // TODO
function.valueParameters.any { it.isVararg },
call.numDefaults,
function.isExpect,
@@ -168,6 +171,7 @@ abstract class AbstractConeCallConflictResolver(
(klass as? FirTypeParameterRefsOwner)?.typeParameters?.map { it.symbol.toLookupTag() }.orEmpty(),
emptyList(),
hasExtensionReceiver = false,
0, // TODO
hasVarargs = false,
numDefaults = 0,
isExpect = (klass as? FirRegularClass)?.isExpect == true,