IR: Introduce IrTypeAlias element

This commit is contained in:
Dmitry Petrov
2019-07-22 16:48:05 +03:00
parent 499f9330d2
commit 48ae76ac28
30 changed files with 440 additions and 31 deletions
@@ -1 +1,3 @@
FILE fqName:<root> fileName:/fileWithTypeAliasesOnly.kt
TYPEALIAS name:Bar visibility:public expandedType:kotlin.Function1<T of <root>.Bar, kotlin.String>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
+7
View File
@@ -0,0 +1,7 @@
typealias I = Int
typealias L<T> = List<T>
fun test1(x: L<I>) = x
fun test2(x: List<L<I>>) = x
fun test3(x: L<List<I>>) = x
fun test4(x: L<L<I>>) = x
+24
View File
@@ -0,0 +1,24 @@
FILE fqName:<root> fileName:/abbreviatedTypes.kt
TYPEALIAS name:I visibility:public expandedType:kotlin.Int
TYPEALIAS name:L visibility:public expandedType:kotlin.collections.List<T of <root>.L>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
FUN name:test1 visibility:public modality:FINAL <> (x:kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }) returnType:kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }
VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (x: kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }): kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> } declared in <root>'
GET_VAR 'x: kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> } declared in <root>.test1' type=kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> } origin=null
FUN name:test2 visibility:public modality:FINAL <> (x:kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }>) returnType:kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }>
VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (x: kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }>): kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> declared in <root>'
GET_VAR 'x: kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> declared in <root>.test2' type=kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> origin=null
FUN name:test3 visibility:public modality:FINAL <> (x:kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>> }) returnType:kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>> }
VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>> }
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 (x: kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>> }): kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>> } declared in <root>'
GET_VAR 'x: kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>> } declared in <root>.test3' type=kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>> } origin=null
FUN name:test4 visibility:public modality:FINAL <> (x:kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> }) returnType:kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> }
VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> }
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4 (x: kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> }): kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> } declared in <root>'
GET_VAR 'x: kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> } declared in <root>.test4' type=kotlin.collections.List<kotlin.collections.List<kotlin.Int{ <root>.I }>>{ <root>.L<kotlin.collections.List<kotlin.Int{ <root>.I }>{ <root>.L<kotlin.Int{ <root>.I }> }> } origin=null