[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:
Pavel Kirpichenkov
2020-02-07 18:14:12 +03:00
parent 9d51180202
commit b045adf83a
30 changed files with 286 additions and 62 deletions
@@ -0,0 +1,29 @@
package
public fun test(/*0*/ a: A?): kotlin.Unit
public operator fun C.invoke(): kotlin.Unit
public final class A {
public constructor A()
public final val extensionInvoke: C
public final val lambda: () -> kotlin.Unit
public final val memberInvoke: B
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class B {
public constructor B()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun invoke(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class C {
public constructor C()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}