FIR: handle typealiases during conflict resolution

This commit is contained in:
pyos
2021-02-10 16:26:43 +01:00
committed by Mikhail Glukhikh
parent 592c285198
commit 291ed4a38a
@@ -104,6 +104,7 @@ abstract class AbstractConeCallConflictResolver(
is FirConstructor -> createFlatSignature(call, declaration) is FirConstructor -> createFlatSignature(call, declaration)
is FirVariable<*> -> createFlatSignature(call, declaration) is FirVariable<*> -> createFlatSignature(call, declaration)
is FirClass<*> -> createFlatSignature(call, declaration) is FirClass<*> -> createFlatSignature(call, declaration)
is FirTypeAlias -> createFlatSignature(call, declaration)
else -> error("Not supported: $declaration") else -> error("Not supported: $declaration")
} }
} }
@@ -163,10 +164,10 @@ abstract class AbstractConeCallConflictResolver(
?: call.argumentMapping?.map { it.value.argumentType() }.orEmpty()) ?: call.argumentMapping?.map { it.value.argumentType() }.orEmpty())
} }
private fun createFlatSignature(call: Candidate, klass: FirClass<*>): FlatSignature<Candidate> { private fun createFlatSignature(call: Candidate, klass: FirClassLikeDeclaration<*>): FlatSignature<Candidate> {
return FlatSignature( return FlatSignature(
call, call,
(klass as? FirRegularClass)?.typeParameters?.map { it.symbol.toLookupTag() }.orEmpty(), (klass as? FirTypeParameterRefsOwner)?.typeParameters?.map { it.symbol.toLookupTag() }.orEmpty(),
valueParameterTypes = emptyList(), valueParameterTypes = emptyList(),
hasExtensionReceiver = false, hasExtensionReceiver = false,
hasVarargs = false, hasVarargs = false,