[NI] Report unsafe implicit invoke accordingly to OI
There are several issues with unsafe desugaring for convention calls. Proper fix is not implemented here (see design proposal KT-30872). This commit only applies the old logic in the new inference. ^KT-30695 Fixed
This commit is contained in:
+8
-3
@@ -104,9 +104,14 @@ class DiagnosticReporterByTrackingStrategy(
|
||||
override fun onCallReceiver(callReceiver: SimpleKotlinCallArgument, diagnostic: KotlinCallDiagnostic) {
|
||||
when (diagnostic.javaClass) {
|
||||
UnsafeCallError::class.java -> {
|
||||
val implicitInvokeCheck = (callReceiver as? ReceiverExpressionKotlinCallArgument)?.isForImplicitInvoke
|
||||
?: callReceiver.receiver.receiverValue.type.isExtensionFunctionType
|
||||
tracingStrategy.unsafeCall(trace, callReceiver.receiver.receiverValue.type, implicitInvokeCheck)
|
||||
val unsafeCallErrorDiagnostic = diagnostic.cast<UnsafeCallError>()
|
||||
val isForImplicitInvoke = when (callReceiver) {
|
||||
is ReceiverExpressionKotlinCallArgument -> callReceiver.isForImplicitInvoke
|
||||
else -> unsafeCallErrorDiagnostic.isForImplicitInvoke
|
||||
|| callReceiver.receiver.receiverValue.type.isExtensionFunctionType
|
||||
}
|
||||
|
||||
tracingStrategy.unsafeCall(trace, callReceiver.receiver.receiverValue.type, isForImplicitInvoke)
|
||||
}
|
||||
|
||||
SuperAsExtensionReceiver::class.java -> {
|
||||
|
||||
Reference in New Issue
Block a user