[JS IR] IC invalidation refactoring

- Huge refactoring for IC
  - Update hash combination logic
  - Introduce value class for IC hashes
  - Calc md5 directly by function IR
  - Split IC logic by classes
  - Move JsIrLinkerLoader into separate file
  - CacheUpdateStatus is a sealed class
  - Render TYPE_PARAMETER reified flag

^KT-51081 Fixed
^KT-51084 Fixed
This commit is contained in:
Alexander Korepanov
2022-03-15 05:34:19 +00:00
committed by Space
parent c38dd1c004
commit 69295f2cf0
246 changed files with 1724 additions and 2048 deletions
@@ -1,14 +1,14 @@
FILE fqName:test fileName:/boundInnerGenericConstructor.kt
CLASS CLASS name:Foo modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:test.Foo<T of test.Foo>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> () returnType:test.Foo<T of test.Foo> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Foo modality:FINAL visibility:public superTypes:[kotlin.Any]'
CLASS CLASS name:Inner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:test.Foo.Inner<P of test.Foo.Inner, T of test.Foo>
TYPE_PARAMETER name:P index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:P index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> ($this:test.Foo<T of test.Foo>, a:T of test.Foo, b:P of test.Foo.Inner) returnType:test.Foo.Inner<P of test.Foo.Inner, T of test.Foo> [primary]
$outer: VALUE_PARAMETER name:<this> type:test.Foo<T of test.Foo>
VALUE_PARAMETER name:a index:0 type:T of test.Foo
@@ -65,8 +65,8 @@ FILE fqName:test fileName:/boundInnerGenericConstructor.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:FINAL <A, B> (a:A of test.foo, b:B of test.foo, x:kotlin.Function2<A of test.foo, B of test.foo, test.Foo.Inner<B of test.foo, A of test.foo>>) returnType:test.Foo.Inner<B of test.foo, A of test.foo> [inline]
TYPE_PARAMETER name:A index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:B index:1 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:A index:0 variance: superTypes:[kotlin.Any?] reified:false
TYPE_PARAMETER name:B index:1 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER name:a index:0 type:A of test.foo
VALUE_PARAMETER name:b index:1 type:B of test.foo
VALUE_PARAMETER name:x index:2 type:kotlin.Function2<A of test.foo, B of test.foo, test.Foo.Inner<B of test.foo, A of test.foo>>
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
CLASS CLASS name:L modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L<LL of <root>.L>
TYPE_PARAMETER name:LL index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:LL index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> (ll:LL of <root>.L) returnType:<root>.L<LL of <root>.L> [primary]
VALUE_PARAMETER name:ll index:0 type:LL of <root>.L
BLOCK_BODY
@@ -33,7 +33,7 @@ FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:Rec modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Rec<T of <root>.Rec>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> (rt:T of <root>.Rec) returnType:<root>.Rec<T of <root>.Rec> [primary]
VALUE_PARAMETER name:rt index:0 type:T of <root>.Rec
BLOCK_BODY
@@ -66,12 +66,12 @@ FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
PROPERTY name:p visibility:public modality:FINAL [val]
FUN name:<get-p> visibility:public modality:FINAL <PT> ($receiver:<root>.Rec<PT of <root>.<get-p>>) returnType:<root>.L<PT of <root>.<get-p>>
correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [val]
TYPE_PARAMETER name:PT index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:PT index:0 variance: superTypes:[kotlin.Any?] reified:false
$receiver: VALUE_PARAMETER name:<this> type:<root>.Rec<PT of <root>.<get-p>>
BLOCK_BODY
CLASS CLASS name:PLocal modality:FINAL visibility:local superTypes:[<root>.L<LT of <root>.<get-p>.PLocal>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.<get-p>.PLocal<LT of <root>.<get-p>.PLocal, PT of <root>.<get-p>>
TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> (lt:LT of <root>.<get-p>.PLocal, pt:PT of <root>.<get-p>) returnType:<root>.<get-p>.PLocal<LT of <root>.<get-p>.PLocal, PT of <root>.<get-p>> [primary]
VALUE_PARAMETER name:lt index:0 type:LT of <root>.<get-p>.PLocal
VALUE_PARAMETER name:pt index:1 type:PT of <root>.<get-p>
@@ -124,12 +124,12 @@ FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
bb: FUNCTION_REFERENCE 'public constructor <init> (lt: LT of <root>.<get-p>.PLocal, pt: PT of <root>.<get-p>) [primary] declared in <root>.<get-p>.PLocal' type=kotlin.reflect.KFunction2<PT of <root>.<get-p>, PT of <root>.<get-p>, <root>.<get-p>.PLocal<PT of <root>.<get-p>, PT of <root>.<get-p>>> origin=null reflectionTarget=<same>
<LT>: PT of <root>.<get-p>
FUN name:fn visibility:public modality:FINAL <FT> ($receiver:<root>.Rec<FT of <root>.fn>) returnType:<root>.L<FT of <root>.fn>
TYPE_PARAMETER name:FT index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:FT index:0 variance: superTypes:[kotlin.Any?] reified:false
$receiver: VALUE_PARAMETER name:<this> type:<root>.Rec<FT of <root>.fn>
BLOCK_BODY
CLASS CLASS name:FLocal modality:FINAL visibility:local superTypes:[<root>.L<LT of <root>.fn.FLocal>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.fn.FLocal<LT of <root>.fn.FLocal, FT of <root>.fn>
TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> (lt:LT of <root>.fn.FLocal, pt:FT of <root>.fn) returnType:<root>.fn.FLocal<LT of <root>.fn.FLocal, FT of <root>.fn> [primary]
VALUE_PARAMETER name:lt index:0 type:LT of <root>.fn.FLocal
VALUE_PARAMETER name:pt index:1 type:FT of <root>.fn
@@ -182,9 +182,9 @@ FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
bb: FUNCTION_REFERENCE 'public constructor <init> (lt: LT of <root>.fn.FLocal, pt: FT of <root>.fn) [primary] declared in <root>.fn.FLocal' type=kotlin.reflect.KFunction2<FT of <root>.fn, FT of <root>.fn, <root>.fn.FLocal<FT of <root>.fn, FT of <root>.fn>> origin=null reflectionTarget=<same>
<LT>: FT of <root>.fn
FUN name:foo2 visibility:public modality:FINAL <T1, T2, R> (t1:T1 of <root>.foo2, t2:T2 of <root>.foo2, bb:kotlin.Function2<T1 of <root>.foo2, T2 of <root>.foo2, R of <root>.foo2>) returnType:R of <root>.foo2
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T2 index:1 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:R index:2 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Any?] reified:false
TYPE_PARAMETER name:T2 index:1 variance: superTypes:[kotlin.Any?] reified:false
TYPE_PARAMETER name:R index:2 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER name:t1 index:0 type:T1 of <root>.foo2
VALUE_PARAMETER name:t2 index:1 type:T2 of <root>.foo2
VALUE_PARAMETER name:bb index:2 type:kotlin.Function2<T1 of <root>.foo2, T2 of <root>.foo2, R of <root>.foo2>
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
CLASS CLASS name:L modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L<LL of <root>.L>
TYPE_PARAMETER name:LL index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:LL index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> (ll:LL of <root>.L) returnType:<root>.L<LL of <root>.L> [primary]
VALUE_PARAMETER name:ll index:0 type:LL of <root>.L
BLOCK_BODY
@@ -33,7 +33,7 @@ FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:Rec modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Rec<T of <root>.Rec>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> (rt:T of <root>.Rec) returnType:<root>.Rec<T of <root>.Rec> [primary]
VALUE_PARAMETER name:rt index:0 type:T of <root>.Rec
BLOCK_BODY
@@ -66,12 +66,12 @@ FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
PROPERTY name:p visibility:public modality:FINAL [val]
FUN name:<get-p> visibility:public modality:FINAL <PT> ($receiver:<root>.Rec<PT of <root>.<get-p>>) returnType:<root>.L<PT of <root>.<get-p>>
correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [val]
TYPE_PARAMETER name:PT index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:PT index:0 variance: superTypes:[kotlin.Any?] reified:false
$receiver: VALUE_PARAMETER name:<this> type:<root>.Rec<PT of <root>.<get-p>>
BLOCK_BODY
CLASS CLASS name:PLocal modality:FINAL visibility:local superTypes:[<root>.L<LT of <root>.<get-p>.PLocal>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.<get-p>.PLocal<LT of <root>.<get-p>.PLocal>
TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> (lt:LT of <root>.<get-p>.PLocal, pt:PT of <root>.<get-p>) returnType:<root>.<get-p>.PLocal<LT of <root>.<get-p>.PLocal> [primary]
VALUE_PARAMETER name:lt index:0 type:LT of <root>.<get-p>.PLocal
VALUE_PARAMETER name:pt index:1 type:PT of <root>.<get-p>
@@ -124,12 +124,12 @@ FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
bb: FUNCTION_REFERENCE 'public constructor <init> (lt: LT of <root>.<get-p>.PLocal, pt: PT of <root>.<get-p>) [primary] declared in <root>.<get-p>.PLocal' type=kotlin.reflect.KFunction2<PT of <root>.<get-p>, PT of <root>.<get-p>, <root>.<get-p>.PLocal<PT of <root>.<get-p>>> origin=null reflectionTarget=<same>
<LT>: PT of <root>.<get-p>
FUN name:fn visibility:public modality:FINAL <FT> ($receiver:<root>.Rec<FT of <root>.fn>) returnType:<root>.L<FT of <root>.fn>
TYPE_PARAMETER name:FT index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:FT index:0 variance: superTypes:[kotlin.Any?] reified:false
$receiver: VALUE_PARAMETER name:<this> type:<root>.Rec<FT of <root>.fn>
BLOCK_BODY
CLASS CLASS name:FLocal modality:FINAL visibility:local superTypes:[<root>.L<LT of <root>.fn.FLocal>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.fn.FLocal<LT of <root>.fn.FLocal, FT of <root>.fn>
TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> (lt:LT of <root>.fn.FLocal, pt:FT of <root>.fn) returnType:<root>.fn.FLocal<LT of <root>.fn.FLocal, FT of <root>.fn> [primary]
VALUE_PARAMETER name:lt index:0 type:LT of <root>.fn.FLocal
VALUE_PARAMETER name:pt index:1 type:FT of <root>.fn
@@ -182,9 +182,9 @@ FILE fqName:<root> fileName:/genericLocalClassConstructorReference.kt
bb: FUNCTION_REFERENCE 'public constructor <init> (lt: LT of <root>.fn.FLocal, pt: FT of <root>.fn) [primary] declared in <root>.fn.FLocal' type=kotlin.reflect.KFunction2<FT of <root>.fn, FT of <root>.fn, <root>.fn.FLocal<FT of <root>.fn, FT of <root>.fn>> origin=null reflectionTarget=<same>
<LT>: FT of <root>.fn
FUN name:foo2 visibility:public modality:FINAL <T1, T2, R> (t1:T1 of <root>.foo2, t2:T2 of <root>.foo2, bb:kotlin.Function2<T1 of <root>.foo2, T2 of <root>.foo2, R of <root>.foo2>) returnType:R of <root>.foo2
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T2 index:1 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:R index:2 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Any?] reified:false
TYPE_PARAMETER name:T2 index:1 variance: superTypes:[kotlin.Any?] reified:false
TYPE_PARAMETER name:R index:2 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER name:t1 index:0 type:T1 of <root>.foo2
VALUE_PARAMETER name:t2 index:1 type:T2 of <root>.foo2
VALUE_PARAMETER name:bb index:2 type:kotlin.Function2<T1 of <root>.foo2, T2 of <root>.foo2, R of <root>.foo2>
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/genericMember.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A<T of <root>.A>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.A<T of <root>.A> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/kt46069.kt
CLASS CLASS name:ObjectAssert modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.ObjectAssert<ACTUAL of <root>.ObjectAssert>
TYPE_PARAMETER name:ACTUAL index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:ACTUAL index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.ObjectAssert<ACTUAL of <root>.ObjectAssert> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -33,7 +33,7 @@ FILE fqName:<root> fileName:/kt46069.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:Assertions modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN name:assertThat visibility:public modality:FINAL <S> ($this:<root>.Assertions, actual:S of <root>.Assertions.assertThat) returnType:<root>.ObjectAssert<S of <root>.Assertions.assertThat>
TYPE_PARAMETER name:S index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:S index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Assertions
VALUE_PARAMETER name:actual index:0 type:S of <root>.Assertions.assertThat
BLOCK_BODY
@@ -54,7 +54,7 @@ FILE fqName:<root> fileName:/kt46069.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:assertNotNull visibility:public modality:FINAL <T> ($receiver:T of <root>.assertNotNull?, description:kotlin.String?) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.assertNotNull?
VALUE_PARAMETER name:description index:0 type:kotlin.String?
EXPRESSION_BODY
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/kt46069.kt
CLASS CLASS name:ObjectAssert modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.ObjectAssert<ACTUAL of <root>.ObjectAssert>
TYPE_PARAMETER name:ACTUAL index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:ACTUAL index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.ObjectAssert<ACTUAL of <root>.ObjectAssert> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -33,7 +33,7 @@ FILE fqName:<root> fileName:/kt46069.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:Assertions modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN name:assertThat visibility:public modality:FINAL <S> ($this:<root>.Assertions, actual:S of <root>.Assertions.assertThat) returnType:<root>.ObjectAssert<S of <root>.Assertions.assertThat>
TYPE_PARAMETER name:S index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:S index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Assertions
VALUE_PARAMETER name:actual index:0 type:S of <root>.Assertions.assertThat
BLOCK_BODY
@@ -54,7 +54,7 @@ FILE fqName:<root> fileName:/kt46069.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:assertNotNull visibility:public modality:FINAL <T> ($receiver:T of <root>.assertNotNull?, description:kotlin.String?) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.assertNotNull?
VALUE_PARAMETER name:description index:0 type:kotlin.String?
EXPRESSION_BODY
@@ -6,7 +6,7 @@ FILE fqName:<root> fileName:/typeArguments.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN name:objectMember visibility:public modality:FINAL <T> ($this:<root>.Host, x:T of <root>.Host.objectMember) returnType:kotlin.Unit [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:true
$this: VALUE_PARAMETER name:<this> type:<root>.Host
VALUE_PARAMETER name:x index:0 type:T of <root>.Host.objectMember
BLOCK_BODY
@@ -24,11 +24,11 @@ FILE fqName:<root> fileName:/typeArguments.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:topLevel1 visibility:public modality:FINAL <T> (x:T of <root>.topLevel1) returnType:kotlin.Unit [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:true
VALUE_PARAMETER name:x index:0 type:T of <root>.topLevel1
BLOCK_BODY
FUN name:topLevel2 visibility:public modality:FINAL <T> (x:kotlin.collections.List<T of <root>.topLevel2>) returnType:kotlin.Unit [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:true
VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<T of <root>.topLevel2>
BLOCK_BODY
PROPERTY name:test1 visibility:public modality:FINAL [val]
@@ -6,7 +6,7 @@ FILE fqName:<root> fileName:/typeArguments.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN name:objectMember visibility:public modality:FINAL <T> ($this:<root>.Host, x:T of <root>.Host.objectMember) returnType:kotlin.Unit [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:true
$this: VALUE_PARAMETER name:<this> type:<root>.Host
VALUE_PARAMETER name:x index:0 type:T of <root>.Host.objectMember
BLOCK_BODY
@@ -24,11 +24,11 @@ FILE fqName:<root> fileName:/typeArguments.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:topLevel1 visibility:public modality:FINAL <T> (x:T of <root>.topLevel1) returnType:kotlin.Unit [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:true
VALUE_PARAMETER name:x index:0 type:T of <root>.topLevel1
BLOCK_BODY
FUN name:topLevel2 visibility:public modality:FINAL <T> (x:kotlin.collections.List<T of <root>.topLevel2>) returnType:kotlin.Unit [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:true
VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<T of <root>.topLevel2>
BLOCK_BODY
PROPERTY name:test1 visibility:public modality:FINAL [val]