K2: de-prioritize invoke on dynamic receiver
This commit is contained in:
@@ -639,8 +639,11 @@ internal object CheckDeprecatedSinceKotlin : ResolutionStage() {
|
|||||||
|
|
||||||
internal object LowerPriorityIfDynamic : ResolutionStage() {
|
internal object LowerPriorityIfDynamic : ResolutionStage() {
|
||||||
override suspend fun check(candidate: Candidate, callInfo: CallInfo, sink: CheckerSink, context: ResolutionContext) {
|
override suspend fun check(candidate: Candidate, callInfo: CallInfo, sink: CheckerSink, context: ResolutionContext) {
|
||||||
if (candidate.symbol.origin is FirDeclarationOrigin.DynamicScope) {
|
when {
|
||||||
candidate.addDiagnostic(LowerPriorityForDynamic)
|
candidate.symbol.origin is FirDeclarationOrigin.DynamicScope ->
|
||||||
|
candidate.addDiagnostic(LowerPriorityForDynamic)
|
||||||
|
candidate.callInfo.isImplicitInvoke && candidate.callInfo.explicitReceiver?.typeRef?.coneTypeSafe<ConeDynamicType>() != null ->
|
||||||
|
candidate.addDiagnostic(LowerPriorityForDynamic)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user