[FIR] Report MIXING_SUSPEND_AND_NON_SUSPEND_SUPERTYPES

^KT-59367 Fixed
This commit is contained in:
Nikolay Lunyak
2023-08-16 14:14:08 +03:00
committed by Space Team
parent b3e4099703
commit f674529558
33 changed files with 63 additions and 435 deletions
@@ -1,18 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS, -ABSTRACT_MEMBER_NOT_IMPLEMENTED, -ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
import kotlin.reflect.*
class C: KSuspendFunction0<Unit>, () -> Unit {
override suspend fun invoke() {
}
}
interface I: KSuspendFunction0<Unit>, () -> Unit {
}
object O: KSuspendFunction0<Unit>, () -> Unit {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS, -ABSTRACT_MEMBER_NOT_IMPLEMENTED, -ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
@@ -1,29 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS, -ABSTRACT_MEMBER_NOT_IMPLEMENTED, -ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
import kotlin.reflect.*
abstract class CSuper: () -> Unit
class C: CSuper(), KSuspendFunction0<Unit> {
override suspend fun invoke() {
}
}
object O: CSuper(), KSuspendFunction0<Unit> {
override suspend fun invoke() {
}
}
abstract class SCSuper: KSuspendFunction0<Unit>
class C1: SCSuper(), () -> Unit {
override suspend fun invoke() {
}
}
object O1: SCSuper(), () -> Unit {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS, -ABSTRACT_MEMBER_NOT_IMPLEMENTED, -ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
@@ -1,20 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS, -ABSTRACT_MEMBER_NOT_IMPLEMENTED, -ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
import kotlin.reflect.*
fun interface FISuper: () -> Unit
class C: KSuspendFunction0<Unit>, FISuper {
override suspend fun invoke() {
}
}
interface I: KSuspendFunction0<Unit>, FISuper {
}
object O: KSuspendFunction0<Unit>, FISuper {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS, -ABSTRACT_MEMBER_NOT_IMPLEMENTED, -ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
@@ -1,48 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS, -ABSTRACT_MEMBER_NOT_IMPLEMENTED, -ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
import kotlin.reflect.*
interface ISuper: () -> Unit
class C: KSuspendFunction0<Unit>, ISuper {
override suspend fun invoke() {
}
}
interface I: KSuspendFunction0<Unit>, ISuper {
}
object O: KSuspendFunction0<Unit>, ISuper {
override suspend fun invoke() {
}
}
interface SISuper: KSuspendFunction0<Unit>
class C1: SISuper, () -> Unit {
override suspend fun invoke() {
}
}
interface I1: SISuper, () -> Unit {
}
object O1: SISuper, () -> Unit {
override suspend fun invoke() {
}
}
class C2: SISuper, ISuper {
override suspend fun invoke() {
}
}
interface I2: SISuper, ISuper {
}
object O2: SISuper, ISuper {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS, -ABSTRACT_MEMBER_NOT_IMPLEMENTED, -ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
@@ -1,19 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
class C: suspend () -> Unit, () -> Unit {
override suspend fun invoke() {
}
}
fun interface FI: suspend () -> Unit, () -> Unit {
}
interface I: suspend () -> Unit, () -> Unit {
}
object O: suspend () -> Unit, () -> Unit {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
@@ -1,27 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
abstract class CSuper: () -> Unit
class C: CSuper(), suspend () -> Unit {
override suspend fun invoke() {
}
}
object O: CSuper(), suspend () -> Unit {
override suspend fun invoke() {
}
}
abstract class SCSuper: suspend () -> Unit
class C1: SCSuper(), () -> Unit {
override suspend fun invoke() {
}
}
object O1: SCSuper(), () -> Unit {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
@@ -1,55 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
fun interface FISuper: () -> Unit
class C: suspend () -> Unit, FISuper {
override suspend fun invoke() {
}
}
fun interface FI: suspend () -> Unit, FISuper {
}
interface I: suspend () -> Unit, FISuper {
}
object O: suspend () -> Unit, FISuper {
override suspend fun invoke() {
}
}
fun interface SFISuper: suspend () -> Unit
class C1: SFISuper, () -> Unit {
override suspend fun invoke() {
}
}
fun interface FI1: SFISuper, () -> Unit {
}
interface I1: SFISuper, () -> Unit {
}
object O1: SFISuper, () -> Unit {
override suspend fun invoke() {
}
}
class C2: SFISuper, FISuper {
override suspend fun invoke() {
}
}
fun interface FI2: SFISuper, FISuper {
}
interface I2: SFISuper, FISuper {
}
object O2: SFISuper, FISuper {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
@@ -1,55 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
interface ISuper: () -> Unit
class C: suspend () -> Unit, ISuper {
override suspend fun invoke() {
}
}
fun interface FI: suspend () -> Unit, ISuper {
}
interface I: suspend () -> Unit, ISuper {
}
object O: suspend () -> Unit, ISuper {
override suspend fun invoke() {
}
}
interface SISuper: suspend () -> Unit
class C1: SISuper, () -> Unit {
override suspend fun invoke() {
}
}
fun interface FI1: SISuper, () -> Unit {
}
interface I1: SISuper, () -> Unit {
}
object O1: SISuper, () -> Unit {
override suspend fun invoke() {
}
}
class C2: SISuper, ISuper {
override suspend fun invoke() {
}
}
fun interface FI2: SISuper, ISuper {
}
interface I2: SISuper, ISuper {
}
object O2: SISuper, ISuper {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
@@ -1,20 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
import kotlin.coroutines.*
class C: SuspendFunction0<Unit>, () -> Unit {
override suspend fun invoke() {
}
}
fun interface FI: SuspendFunction0<Unit>, () -> Unit {
}
interface I: SuspendFunction0<Unit>, () -> Unit {
}
object O: SuspendFunction0<Unit>, () -> Unit {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
@@ -1,29 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
import kotlin.coroutines.*
abstract class CSuper: () -> Unit
class C: CSuper(), SuspendFunction0<Unit> {
override suspend fun invoke() {
}
}
object O: CSuper(), SuspendFunction0<Unit> {
override suspend fun invoke() {
}
}
abstract class SCSuper: SuspendFunction0<Unit>
class C1: SCSuper(), () -> Unit {
override suspend fun invoke() {
}
}
object O1: SCSuper(), () -> Unit {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
@@ -1,57 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
import kotlin.coroutines.*
fun interface FISuper: () -> Unit
class C: SuspendFunction0<Unit>, FISuper {
override suspend fun invoke() {
}
}
fun interface FI: SuspendFunction0<Unit>, FISuper {
}
interface I: SuspendFunction0<Unit>, FISuper {
}
object O: SuspendFunction0<Unit>, FISuper {
override suspend fun invoke() {
}
}
fun interface SFISuper: SuspendFunction0<Unit>
class C1: SFISuper, () -> Unit {
override suspend fun invoke() {
}
}
fun interface FI1: SFISuper, () -> Unit {
}
interface I1: SFISuper, () -> Unit {
}
object O1: SFISuper, () -> Unit {
override suspend fun invoke() {
}
}
class C2: SFISuper, FISuper {
override suspend fun invoke() {
}
}
fun interface FI2: SFISuper, FISuper {
}
interface I2: SFISuper, FISuper {
}
object O2: SFISuper, FISuper {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
@@ -1,57 +0,0 @@
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS
import kotlin.coroutines.*
interface ISuper: () -> Unit
class C: SuspendFunction0<Unit>, ISuper {
override suspend fun invoke() {
}
}
fun interface FI: SuspendFunction0<Unit>, ISuper {
}
interface I: SuspendFunction0<Unit>, ISuper {
}
object O: SuspendFunction0<Unit>, ISuper {
override suspend fun invoke() {
}
}
interface SISuper: SuspendFunction0<Unit>
class C1: SISuper, () -> Unit {
override suspend fun invoke() {
}
}
fun interface FI1: SISuper, () -> Unit {
}
interface I1: SISuper, () -> Unit {
}
object O1: SISuper, () -> Unit {
override suspend fun invoke() {
}
}
class C2: SISuper, ISuper {
override suspend fun invoke() {
}
}
fun interface FI2: SISuper, ISuper {
}
interface I2: SISuper, ISuper {
}
object O2: SISuper, ISuper {
override suspend fun invoke() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +SuspendFunctionAsSupertype
// SKIP_TXT
// DIAGNOSTICS: -CONFLICTING_INHERITED_MEMBERS, -CONFLICTING_OVERLOADS