Distinguish classes from different sourcesets in SealedInheritorInSameModuleChecker

#KT-45848 Fixed
#KT-46031
This commit is contained in:
Dmitriy Novozhilov
2021-04-09 16:01:20 +03:00
committed by TeamCityServer
parent 66e4d5664a
commit 803d47daaa
20 changed files with 197 additions and 4 deletions
@@ -0,0 +1,19 @@
// !LANGUAGE: +MultiPlatformProjects
// ISSUE: KT-45848
// MODULE: m1-common
sealed class Base
class Derived : Base()
fun test_1(b: Base) = when (b) {
is Derived -> 1
}
// MODULE: m1-jvm(m1-common)
class PlatfromDerived : Base() // must be an error
fun test_2(b: Base) = when (b) {
is Derived -> 1
}
@@ -0,0 +1,19 @@
// !LANGUAGE: +MultiPlatformProjects
// ISSUE: KT-45848
// MODULE: m1-common
sealed class Base
class Derived : Base()
fun test_1(b: Base) = <!NO_ELSE_IN_WHEN{JVM}!>when<!> (b) {
is Derived -> 1
}
// MODULE: m1-jvm(m1-common)
class PlatfromDerived : <!SEALED_INHERITOR_IN_DIFFERENT_MODULE!>Base<!>() // must be an error
fun test_2(b: Base) = <!NO_ELSE_IN_WHEN!>when<!> (b) {
is Derived -> 1
}
@@ -0,0 +1,46 @@
// -- Module: <m1-common> --
package
public fun test_1(/*0*/ b: Base): kotlin.Int
public sealed class Base {
protected constructor Base()
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 Derived : Base {
public constructor Derived()
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
}
// -- Module: <m1-jvm> --
package
public fun test_1(/*0*/ b: Base): kotlin.Int
public fun test_2(/*0*/ b: Base): kotlin.Int
public sealed class Base {
protected constructor Base()
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 Derived : Base {
public constructor Derived()
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 PlatfromDerived : Base {
public constructor PlatfromDerived()
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
}