KT-44043 [Sealed interfaces]: tests

So far, quick-fix tests infrastructure neither supports the check
for multiple files (several .before/.after pairs) nor multi module
structure. Provided tests are quite limited yet allow to make sure that
the fix in question appears in expected context and get activated.

^KT-44043 fixed
This commit is contained in:
Andrei Klunnyi
2021-01-04 11:29:10 +01:00
parent 43cc022613
commit eed27906e3
5 changed files with 223 additions and 1 deletions
@@ -0,0 +1,27 @@
// FILE: DerivedOutsideOfPackage.before.kt
// "Move Derived to the package/module of SomeSealedClass" "true"
// ERROR: Inheritor of sealed class or interface declared in package <root> but it must be in package foo where base class is declared
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+AllowSealedInheritorsInDifferentFilesOfSamePackage
import foo.SomeSealedClass
class ArbitraryClass {
class Derived: <caret>SomeSealedClass()
}
// FILE: foo/SealedDeclarations.kt
package foo
sealed class SomeSealedClass
// FILE: DerivedOutsideOfPackage.after.kt
// "Move Derived to the package/module of SomeSealedClass" "true"
// ERROR: Inheritor of sealed class or interface declared in package <root> but it must be in package foo where base class is declared
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+AllowSealedInheritorsInDifferentFilesOfSamePackage
class ArbitraryClass {
<caret>}
@@ -0,0 +1,27 @@
// FILE: DerivedOutsideOfPackage.before.kt
// "Move Derived to the package/module of SomeSealedClass" "true"
// ERROR: Inheritor of sealed class or interface declared in package <root> but it must be in package foo where base class is declared
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+AllowSealedInheritorsInDifferentFilesOfSamePackage
import foo.SomeSealedClass
class Derived: <caret>SomeSealedClass()
class ArbitraryClass
// FILE: foo/SealedDeclarations.kt
package foo
sealed class SomeSealedClass
// FILE: DerivedOutsideOfPackage.after.kt
// "Move Derived to the package/module of SomeSealedClass" "true"
// ERROR: Inheritor of sealed class or interface declared in package <root> but it must be in package foo where base class is declared
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+AllowSealedInheritorsInDifferentFilesOfSamePackage
import foo.SomeSealedClass
<caret>class ArbitraryClass