[AA] Add sealed inheritors tests for type aliased classes/interfaces

- The test data is partially incorrect, as type alias support needs to
  be added to `KotlinStandaloneDirectInheritorsProvider`.

^KT-66013
This commit is contained in:
Marco Pennekamp
2024-02-29 18:59:14 +01:00
committed by Space Team
parent 5c8c3020c6
commit 54f2655b4d
16 changed files with 250 additions and 0 deletions
@@ -63,6 +63,24 @@ public class FirIdeNormalAnalysisSourceModuleDanglingFileSealedInheritorsTestGen
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassSameModule.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedFromDependency.kt")
public void testSealedClassTypeAliasedFromDependency() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedFromDependency.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedFromLibrary.kt")
public void testSealedClassTypeAliasedFromLibrary() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedFromLibrary.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedSameModule.kt")
public void testSealedClassTypeAliasedSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedSameModule.kt");
}
@Test
@TestMetadata("sealedInterfaceFromDependency.kt")
public void testSealedInterfaceFromDependency() {
@@ -80,4 +98,22 @@ public class FirIdeNormalAnalysisSourceModuleDanglingFileSealedInheritorsTestGen
public void testSealedInterfaceSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceSameModule.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedFromDependency.kt")
public void testSealedInterfaceTypeAliasedFromDependency() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedFromDependency.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedFromLibrary.kt")
public void testSealedInterfaceTypeAliasedFromLibrary() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedFromLibrary.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedSameModule.kt")
public void testSealedInterfaceTypeAliasedSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedSameModule.kt");
}
}
@@ -63,6 +63,24 @@ public class FirIdeNormalAnalysisSourceModuleSealedInheritorsTestGenerated exten
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassSameModule.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedFromDependency.kt")
public void testSealedClassTypeAliasedFromDependency() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedFromDependency.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedFromLibrary.kt")
public void testSealedClassTypeAliasedFromLibrary() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedFromLibrary.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedSameModule.kt")
public void testSealedClassTypeAliasedSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedSameModule.kt");
}
@Test
@TestMetadata("sealedInterfaceFromDependency.kt")
public void testSealedInterfaceFromDependency() {
@@ -80,4 +98,22 @@ public class FirIdeNormalAnalysisSourceModuleSealedInheritorsTestGenerated exten
public void testSealedInterfaceSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceSameModule.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedFromDependency.kt")
public void testSealedInterfaceTypeAliasedFromDependency() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedFromDependency.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedFromLibrary.kt")
public void testSealedInterfaceTypeAliasedFromLibrary() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedFromLibrary.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedSameModule.kt")
public void testSealedInterfaceTypeAliasedSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedSameModule.kt");
}
}
@@ -63,6 +63,24 @@ public class FirStandaloneNormalAnalysisSourceModuleDanglingFileSealedInheritors
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassSameModule.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedFromDependency.kt")
public void testSealedClassTypeAliasedFromDependency() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedFromDependency.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedFromLibrary.kt")
public void testSealedClassTypeAliasedFromLibrary() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedFromLibrary.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedSameModule.kt")
public void testSealedClassTypeAliasedSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedSameModule.kt");
}
@Test
@TestMetadata("sealedInterfaceFromDependency.kt")
public void testSealedInterfaceFromDependency() {
@@ -80,4 +98,22 @@ public class FirStandaloneNormalAnalysisSourceModuleDanglingFileSealedInheritors
public void testSealedInterfaceSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceSameModule.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedFromDependency.kt")
public void testSealedInterfaceTypeAliasedFromDependency() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedFromDependency.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedFromLibrary.kt")
public void testSealedInterfaceTypeAliasedFromLibrary() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedFromLibrary.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedSameModule.kt")
public void testSealedInterfaceTypeAliasedSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedSameModule.kt");
}
}
@@ -63,6 +63,24 @@ public class FirStandaloneNormalAnalysisSourceModuleSealedInheritorsTestGenerate
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassSameModule.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedFromDependency.kt")
public void testSealedClassTypeAliasedFromDependency() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedFromDependency.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedFromLibrary.kt")
public void testSealedClassTypeAliasedFromLibrary() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedFromLibrary.kt");
}
@Test
@TestMetadata("sealedClassTypeAliasedSameModule.kt")
public void testSealedClassTypeAliasedSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedClassTypeAliasedSameModule.kt");
}
@Test
@TestMetadata("sealedInterfaceFromDependency.kt")
public void testSealedInterfaceFromDependency() {
@@ -80,4 +98,22 @@ public class FirStandaloneNormalAnalysisSourceModuleSealedInheritorsTestGenerate
public void testSealedInterfaceSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceSameModule.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedFromDependency.kt")
public void testSealedInterfaceTypeAliasedFromDependency() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedFromDependency.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedFromLibrary.kt")
public void testSealedInterfaceTypeAliasedFromLibrary() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedFromLibrary.kt");
}
@Test
@TestMetadata("sealedInterfaceTypeAliasedSameModule.kt")
public void testSealedInterfaceTypeAliasedSameModule() {
runTest("analysis/analysis-api/testData/components/inheritorsProvider/sealedInheritors/sealedInterfaceTypeAliasedSameModule.kt");
}
}
@@ -0,0 +1,15 @@
// MODULE: dependency
// FILE: MySealedClass.kt
sealed class MySealedClass
typealias T1 = MySealedClass
typealias T2 = T1
class OneSealedChild : MySealedClass()
class TwoSealedChild : T1()
class ThreeSealedChild : T2()
// MODULE: main(dependency)
// FILE: main.kt
// class: MySealedClass
@@ -0,0 +1,2 @@
/OneSealedChild
class OneSealedChild : MySealedClass()
@@ -0,0 +1,16 @@
// MODULE: lib
// MODULE_KIND: LibraryBinary
// FILE: MySealedClass.kt
sealed class MySealedClass
typealias T1 = MySealedClass
typealias T2 = T1
class OneSealedChild : MySealedClass()
class TwoSealedChild : T1()
class ThreeSealedChild : T2()
// MODULE: main(lib)
// FILE: main.kt
// class: MySealedClass
@@ -0,0 +1,8 @@
/OneSealedChild
class OneSealedChild : MySealedClass()
/ThreeSealedChild
class ThreeSealedChild : MySealedClass()
/TwoSealedChild
class TwoSealedChild : MySealedClass()
@@ -0,0 +1,10 @@
sealed class MySealedClass
typealias T1 = MySealedClass
typealias T2 = T1
class OneSealedChild : MySealedClass()
class TwoSealedChild : T1()
class ThreeSealedChild : T2()
// class: MySealedClass
@@ -0,0 +1,2 @@
/OneSealedChild
class OneSealedChild : MySealedClass()
@@ -0,0 +1,15 @@
// MODULE: dependency
// FILE: MySealedInterface.kt
sealed interface MySealedInterface
typealias T1 = MySealedInterface
typealias T2 = T1
class OneSealedChild : MySealedInterface
class TwoSealedChild : T1
class ThreeSealedChild : T2
// MODULE: main(dependency)
// FILE: main.kt
// class: MySealedInterface
@@ -0,0 +1,2 @@
/OneSealedChild
class OneSealedChild : MySealedInterface
@@ -0,0 +1,16 @@
// MODULE: lib
// MODULE_KIND: LibraryBinary
// FILE: MySealedInterface.kt
sealed interface MySealedInterface
typealias T1 = MySealedInterface
typealias T2 = T1
class OneSealedChild : MySealedInterface
class TwoSealedChild : T1
class ThreeSealedChild : T2
// MODULE: main(lib)
// FILE: main.kt
// class: MySealedInterface
@@ -0,0 +1,8 @@
/OneSealedChild
class OneSealedChild : MySealedInterface
/ThreeSealedChild
class ThreeSealedChild : MySealedInterface
/TwoSealedChild
class TwoSealedChild : MySealedInterface
@@ -0,0 +1,10 @@
sealed interface MySealedInterface
typealias T1 = MySealedInterface
typealias T2 = T1
class OneSealedChild : MySealedInterface
class TwoSealedChild : T1
class ThreeSealedChild : T2
// class: MySealedInterface
@@ -0,0 +1,2 @@
/OneSealedChild
class OneSealedChild : MySealedInterface