@@ -8,40 +8,45 @@ import org.jetbrains.kotlinx.dataframe.columns.SingleColumn
88import org.jetbrains.kotlinx.dataframe.impl.columns.ColumnGroupWithParent
99import org.jetbrains.kotlinx.dataframe.impl.commonType
1010import org.jetbrains.kotlinx.dataframe.impl.createTypeUsing
11+ import org.jetbrains.kotlinx.dataframe.types.TypeProjectionTests.TypeInferenceTest1.Test1A
12+ import org.jetbrains.kotlinx.dataframe.types.TypeProjectionTests.TypeInferenceTest1.Test1X
13+ import org.jetbrains.kotlinx.dataframe.types.TypeProjectionTests.TypeInferenceTest2.B
14+ import org.jetbrains.kotlinx.dataframe.types.TypeProjectionTests.TypeInferenceTest2.Test2A
15+ import org.jetbrains.kotlinx.dataframe.types.TypeProjectionTests.TypeInferenceTest2.Test2X
1116import org.junit.Test
1217import kotlin.reflect.typeOf
1318
1419class TypeProjectionTests {
1520 class TypeInferenceTest1 {
16- interface A <T >
21+ interface Test1A <T >
1722
18- interface X <T > : A <List <T >>
23+ interface Test1X <T > : Test1A <List <T >>
24+ }
1925
20- @Test
21- fun test () {
22- X ::class .createTypeUsing<A <List <Int >>>() shouldBe typeOf<X <Int >>()
23- A ::class .createTypeUsing<X <Int >>() shouldBe typeOf<A <List <Int >>>()
24- }
26+ @Test
27+ fun test1 () {
28+ Test1X ::class .createTypeUsing<Test1A <List <Int >>>() shouldBe typeOf<Test1X <Int >>()
29+ Test1A ::class .createTypeUsing<Test1X <Int >>() shouldBe typeOf<Test1A <List <Int >>>()
2530 }
2631
2732 class TypeInferenceTest2 {
28- interface A <out T >
33+ interface Test2A <out T >
2934
30- interface B <T > : A < A <T >>
35+ interface B <T > : Test2A < Test2A <T >>
3136
32- interface C <T > : A <B <T >>
37+ interface C <T > : Test2A <B <T >>
3338
3439 interface D <T >
3540
36- interface X <T : Number , V : Number > :
41+ interface Test2X <T : Number , V : Number > :
3742 C <T >,
3843 D <V >
44+ }
3945
40- @Test
41- fun test () {
42- X ::class .createTypeUsing<A <A <A <Int >>>>() shouldBe typeOf<X <Int , * >>()
43- A ::class .createTypeUsing<X <Double , Int >? > () shouldBe typeOf<A <B <Double >>? > ()
44- }
46+ @Test
47+ fun test2 () {
48+ Test2X ::class .createTypeUsing<Test2A <Test2A <Test2A <Int >>>>() shouldBe typeOf<Test2X <Int , * >>()
49+ Test2A ::class .createTypeUsing<Test2X <Double , Int >? > () shouldBe typeOf<Test2A <B <Double >>? > ()
4550 }
4651
4752 @Test
0 commit comments