[FIR] FIR2IR: Populate calls with type arguments and function type

parameters with bounds/supertypes.
This commit is contained in:
Mark Punzalan
2019-11-23 23:37:35 -08:00
committed by Mikhail Glukhikh
parent 58dd9a6004
commit 5afab1ac2b
125 changed files with 379 additions and 341 deletions
@@ -1,6 +1,6 @@
FILE fqName:<root> fileName:/argumentMappedWithError.kt
FUN name:convert visibility:public modality:FINAL <R> ($receiver:kotlin.Number) returnType:R of <root>.convert
TYPE_PARAMETER name:R index:0 variance: superTypes:[]
TYPE_PARAMETER name:R index:0 variance: superTypes:[kotlin.Number]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Number
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun convert <R> (): R of <root>.convert declared in <root>'
@@ -15,5 +15,5 @@ FILE fqName:<root> fileName:/argumentMappedWithError.kt
CONST Int type=kotlin.Int value=0
CALL 'public final fun foo (arg: kotlin.Number): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
arg: CALL 'public final fun convert <R> (): R of <root>.convert declared in <root>' type=kotlin.Number origin=null
<R>: <none>
<R>: kotlin.Number
$receiver: GET_VAR 'val x: kotlin.Int [val] declared in <root>.main' type=kotlin.Int origin=null
+2 -2
View File
@@ -35,7 +35,7 @@ FILE fqName:<root> fileName:/bangbang.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val tmp_1: kotlin.Int? [val] declared in <root>.test2' type=kotlin.Int origin=null
FUN name:test3 visibility:public modality:FINAL <X> (a:X of <root>.test3) returnType:kotlin.Any
TYPE_PARAMETER name:X index:0 variance: superTypes:[]
TYPE_PARAMETER name:X index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:a index:0 type:X of <root>.test3
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 <X> (a: X of <root>.test3): kotlin.Any declared in <root>'
@@ -56,7 +56,7 @@ FILE fqName:<root> fileName:/bangbang.kt
VALUE_PARAMETER name:s index:0 type:kotlin.String
BLOCK_BODY
FUN name:test4 visibility:public modality:FINAL <X> (a:X of <root>.test4) returnType:kotlin.Unit
TYPE_PARAMETER name:X index:0 variance: superTypes:[]
TYPE_PARAMETER name:X index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:a index:0 type:X of <root>.test4
BLOCK_BODY
WHEN type=kotlin.Unit origin=IF
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/callableRefToGenericMember.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> () returnType:<root>.A<T of <uninitialized parent>> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -6,7 +6,7 @@ FILE fqName:<root> fileName:/callableReferenceTypeArguments.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:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$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:/callableReferenceTypeArguments.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:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
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:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<T of <root>.topLevel2>
BLOCK_BODY
PROPERTY name:test1 visibility:public modality:FINAL [val]
@@ -1,13 +1,13 @@
FILE fqName:<root> fileName:/castToTypeParameter.kt
FUN name:castFun visibility:public modality:FINAL <T> (x:kotlin.Any) returnType:T of <root>.castFun
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:x index:0 type:kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun castFun <T> (x: kotlin.Any): T of <root>.castFun declared in <root>'
TYPE_OP type=T of <root>.castFun origin=CAST typeOperand=T of <root>.castFun
GET_VAR 'x: kotlin.Any declared in <root>.castFun' type=kotlin.Any origin=null
FUN name:castExtFun visibility:public modality:FINAL <T> ($receiver:kotlin.Any) returnType:T of <root>.castExtFun
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun castExtFun <T> (): T of <root>.castExtFun declared in <root>'
@@ -22,7 +22,7 @@ FILE fqName:<root> fileName:/castToTypeParameter.kt
ERROR_CALL 'Unresolved reference: this@R|/castExtVal|' type=T of <uninitialized parent>
CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> () returnType:<root>.Host<T of <uninitialized parent>> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -35,7 +35,7 @@ FILE fqName:<root> fileName:/castToTypeParameter.kt
TYPE_OP type=T of <root>.Host origin=CAST typeOperand=T of <root>.Host
GET_VAR 'x: kotlin.Any declared in <root>.Host.castMemberFun' type=kotlin.Any origin=null
FUN name:castGenericMemberFun visibility:public modality:FINAL <TF> ($this:<root>.Host, x:kotlin.Any) returnType:TF of <root>.Host.castGenericMemberFun
TYPE_PARAMETER name:TF index:0 variance: superTypes:[]
TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
VALUE_PARAMETER name:x index:0 type:kotlin.Any
BLOCK_BODY
@@ -50,7 +50,7 @@ FILE fqName:<root> fileName:/castToTypeParameter.kt
TYPE_OP type=T of <root>.Host origin=CAST typeOperand=T of <root>.Host
GET_VAR '<this>: kotlin.Any declared in <root>.Host.castMemberExtFun' type=kotlin.Any origin=null
FUN name:castGenericMemberExtFun visibility:public modality:FINAL <TF> ($this:<root>.Host, $receiver:kotlin.Any) returnType:TF of <root>.Host.castGenericMemberExtFun
TYPE_PARAMETER name:TF index:0 variance: superTypes:[]
TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
BLOCK_BODY
@@ -3,22 +3,21 @@ FILE fqName:<root> fileName:/constructorWithOwnTypeParametersCall.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testKotlin (): <root>.K1.K2<kotlin.String> declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.K1.K2' type=<root>.K1.K2<kotlin.String> origin=null
<class: T2>: <none>
<class: T2>: kotlin.String
FUN name:testJava visibility:public modality:FINAL <> () returnType:<root>.J1.J2<kotlin.Double>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testJava (): <root>.J1.J2<kotlin.Double> declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J1.J2' type=<root>.J1.J2<kotlin.Double> origin=null
<class: X2>: <none>
ERROR_EXPR 'Cannot bind 2 type arguments to ??? call with 1 type parameters' type=<root>.J1.J2<kotlin.Double>
CLASS CLASS name:K1 modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K1
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[]
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Number]
CONSTRUCTOR visibility:public <> () returnType:<root>.K1<T1 of <uninitialized parent>> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K1 modality:FINAL visibility:public superTypes:[kotlin.Any]'
CLASS CLASS name:K2 modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K1.K2
TYPE_PARAMETER name:T2 index:0 variance: superTypes:[]
TYPE_PARAMETER name:T2 index:0 variance: superTypes:[kotlin.CharSequence]
CONSTRUCTOR visibility:public <> () returnType:<root>.K1.K2<T2 of <uninitialized parent>> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -1,6 +1,6 @@
FILE fqName:<root> fileName:/typeParameterWithPrimitiveNumericSupertype.kt
FUN name:test0 visibility:public modality:FINAL <T> (x:kotlin.Any, y:T of <root>.test0) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:x index:0 type:kotlin.Any
VALUE_PARAMETER name:y index:1 type:T of <root>.test0
BLOCK_BODY
@@ -16,7 +16,7 @@ FILE fqName:<root> fileName:/typeParameterWithPrimitiveNumericSupertype.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
FUN name:test1 visibility:public modality:FINAL <T> (x:kotlin.Any, y:T of <root>.test1) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Float]
VALUE_PARAMETER name:x index:0 type:kotlin.Any
VALUE_PARAMETER name:y index:1 type:T of <root>.test1
BLOCK_BODY
@@ -32,7 +32,7 @@ FILE fqName:<root> fileName:/typeParameterWithPrimitiveNumericSupertype.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
FUN name:test2 visibility:public modality:FINAL <T> (x:kotlin.Any, y:T of <root>.test2) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Double]
VALUE_PARAMETER name:x index:0 type:kotlin.Any
VALUE_PARAMETER name:y index:1 type:T of <root>.test2
BLOCK_BODY
@@ -48,7 +48,7 @@ FILE fqName:<root> fileName:/typeParameterWithPrimitiveNumericSupertype.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
FUN name:test3 visibility:public modality:FINAL <T> (x:kotlin.Any, y:T of <root>.test3) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Float]
VALUE_PARAMETER name:x index:0 type:kotlin.Any
VALUE_PARAMETER name:y index:1 type:T of <root>.test3
BLOCK_BODY
@@ -64,7 +64,7 @@ FILE fqName:<root> fileName:/typeParameterWithPrimitiveNumericSupertype.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
FUN name:test4 visibility:public modality:FINAL <T> (x:kotlin.Any, y:T of <root>.test4) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Float?]
VALUE_PARAMETER name:x index:0 type:kotlin.Any
VALUE_PARAMETER name:y index:1 type:T of <root>.test4
BLOCK_BODY
@@ -80,8 +80,8 @@ FILE fqName:<root> fileName:/typeParameterWithPrimitiveNumericSupertype.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
FUN name:test5 visibility:public modality:FINAL <T, R> (x:kotlin.Any, y:R of <root>.test5) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:R index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Float?]
TYPE_PARAMETER name:R index:0 variance: superTypes:[T of <root>.test5]
VALUE_PARAMETER name:x index:0 type:kotlin.Any
VALUE_PARAMETER name:y index:1 type:R of <root>.test5
BLOCK_BODY
@@ -97,7 +97,7 @@ FILE fqName:<root> fileName:/typeParameterWithPrimitiveNumericSupertype.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
FUN name:test6 visibility:public modality:FINAL <T> (x:kotlin.Any, y:T of <root>.test6) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number]
VALUE_PARAMETER name:x index:0 type:kotlin.Any
VALUE_PARAMETER name:y index:1 type:T of <root>.test6
BLOCK_BODY
@@ -114,7 +114,7 @@ FILE fqName:<root> fileName:/typeParameterWithPrimitiveNumericSupertype.kt
then: CONST Boolean type=kotlin.Boolean value=false
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Float]
CONSTRUCTOR visibility:public <> () returnType:<root>.F<T of <uninitialized parent>> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -6,7 +6,7 @@ FILE fqName:test fileName:/funImportedFromObject.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:foo visibility:public modality:FINAL <T> ($this:test.Host) returnType:kotlin.String [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:test.Host
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo <T> (): kotlin.String [inline] declared in test.Host'
@@ -28,5 +28,5 @@ FILE fqName:test fileName:/funImportedFromObject.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test (): kotlin.String declared in test'
CALL 'public final fun foo <T> (): kotlin.String [inline] declared in test.Host' type=kotlin.String origin=null
<T>: <none>
<T>: kotlin.Any
$this: GET_VAR '<this>: test.Host declared in test.Host' type=test.Host origin=null
@@ -7,13 +7,13 @@ FILE fqName:<root> fileName:/genericConstructorCallWithTypeArguments.kt
$this: CONST Int type=kotlin.Int value=2
other: CONST Int type=kotlin.Int value=3
FUN name:testArray visibility:public modality:FINAL <T> (n:kotlin.Int, block:kotlin.Function0<T of <root>.testArray>) returnType:kotlin.Array<T of <root>.testArray> [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:n index:0 type:kotlin.Int
VALUE_PARAMETER name:block index:1 type:kotlin.Function0<T of <root>.testArray> [crossinline]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testArray <T> (n: kotlin.Int, block: kotlin.Function0<T of <root>.testArray>): kotlin.Array<T of <root>.testArray> [inline] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (size: kotlin.Int, init: kotlin.Function1<kotlin.Int, T of kotlin.Array>) declared in kotlin.Array' type=kotlin.Array<T of <root>.testArray> origin=null
<class: T>: <none>
<class: T>: T of <root>.testArray
size: GET_VAR 'n: kotlin.Int declared in <root>.testArray' type=kotlin.Int origin=null
init: FUN_EXPR type=kotlin.Function1<kotlin.Int, T of <root>.testArray> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.Int) returnType:T of <root>.testArray
@@ -23,7 +23,7 @@ FILE fqName:<root> fileName:/genericConstructorCallWithTypeArguments.kt
$this: GET_VAR 'block: kotlin.Function0<T of <root>.testArray> [crossinline] declared in <root>.testArray' type=kotlin.Function0<T of <root>.testArray> origin=null
CLASS CLASS name:Box modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Box
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (value:T of <uninitialized parent>) returnType:<root>.Box<T of <uninitialized parent>> [primary]
VALUE_PARAMETER name:value index:0 type:T of <uninitialized parent>
BLOCK_BODY
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/genericPropertyRef.kt
CLASS CLASS name:Value modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Value
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (value:T of <uninitialized parent>, text:kotlin.String?) returnType:<root>.Value<T of <uninitialized parent>> [primary]
VALUE_PARAMETER name:value index:0 type:T of <uninitialized parent>
EXPRESSION_BODY
@@ -14,7 +14,7 @@ FILE fqName:<root> fileName:/implicitCastToNonNull.kt
then: CALL 'public open fun <get-length> (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=null
$this: GET_VAR 'x: kotlin.String? declared in <root>.test1' type=kotlin.String origin=null
FUN name:test2 visibility:public modality:FINAL <T> (x:T of <root>.test2) returnType:kotlin.Int
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.CharSequence?]
VALUE_PARAMETER name:x index:0 type:T of <root>.test2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 <T> (x: T of <root>.test2): kotlin.Int declared in <root>'
@@ -29,7 +29,7 @@ FILE fqName:<root> fileName:/implicitCastToNonNull.kt
then: CALL 'public abstract fun <get-length> (): kotlin.Int declared in kotlin.CharSequence' type=kotlin.Int origin=null
$this: GET_VAR 'x: T of <root>.test2 declared in <root>.test2' type=kotlin.Any origin=null
FUN name:test3 visibility:public modality:FINAL <T> (x:kotlin.Any) returnType:kotlin.Int [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.CharSequence?]
VALUE_PARAMETER name:x index:0 type:kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 <T> (x: kotlin.Any): kotlin.Int [inline] declared in <root>'
@@ -43,7 +43,7 @@ FILE fqName:<root> fileName:/implicitCastToNonNull.kt
then: CALL 'public abstract fun <get-length> (): kotlin.Int declared in kotlin.CharSequence' type=kotlin.Int origin=null
$this: GET_VAR 'x: kotlin.Any declared in <root>.test3' type=T of <root>.test3 origin=null
FUN name:test4 visibility:public modality:FINAL <T> (x:kotlin.Any?) returnType:kotlin.Int [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.CharSequence]
VALUE_PARAMETER name:x index:0 type:kotlin.Any?
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4 <T> (x: kotlin.Any?): kotlin.Int [inline] declared in <root>'
@@ -57,8 +57,8 @@ FILE fqName:<root> fileName:/implicitCastToNonNull.kt
then: CALL 'public abstract fun <get-length> (): kotlin.Int declared in kotlin.CharSequence' type=kotlin.Int origin=null
$this: GET_VAR 'x: kotlin.Any? declared in <root>.test4' type=T of <root>.test4 origin=null
FUN name:test5 visibility:public modality:FINAL <T, S> (x:T of <root>.test5, fn:kotlin.Function1<S of <root>.test5, kotlin.Unit>) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:S index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[S of <root>.test5?]
TYPE_PARAMETER name:S index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:x index:0 type:T of <root>.test5
VALUE_PARAMETER name:fn index:1 type:kotlin.Function1<S of <root>.test5, kotlin.Unit>
BLOCK_BODY
@@ -1,6 +1,6 @@
FILE fqName:<root> fileName:/implicitCastToTypeParameter.kt
FUN name:test1 visibility:public modality:FINAL <T> ($receiver:kotlin.Any) returnType:T of <root>.test1? [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 <T> (): T of <root>.test1? [inline] declared in <root>'
@@ -14,7 +14,7 @@ FILE fqName:<root> fileName:/implicitCastToTypeParameter.kt
then: CONST Null type=kotlin.Nothing? value=null
CLASS INTERFACE name:Foo modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Foo
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
@@ -43,7 +43,7 @@ FILE fqName:<root> fileName:/implicitCastToTypeParameter.kt
then: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:Bar modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Bar
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> () returnType:<root>.Bar<T of <uninitialized parent>> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
+2 -2
View File
@@ -17,7 +17,7 @@ FILE fqName:<root> fileName:/in.kt
$this: GET_VAR 'x: kotlin.collections.Collection<kotlin.Any> declared in <root>.test2' type=kotlin.collections.Collection<kotlin.Any> origin=null
element: GET_VAR 'a: kotlin.Any declared in <root>.test2' type=kotlin.Any origin=null
FUN name:test3 visibility:public modality:FINAL <T> (a:T of <root>.test3, x:kotlin.collections.Collection<T of <root>.test3>) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:a index:0 type:T of <root>.test3
VALUE_PARAMETER name:x index:1 type:kotlin.collections.Collection<T of <root>.test3>
BLOCK_BODY
@@ -26,7 +26,7 @@ FILE fqName:<root> fileName:/in.kt
$this: GET_VAR 'x: kotlin.collections.Collection<T of <root>.test3> declared in <root>.test3' type=kotlin.collections.Collection<T of <root>.test3> origin=null
element: GET_VAR 'a: T of <root>.test3 declared in <root>.test3' type=T of <root>.test3 origin=null
FUN name:test4 visibility:public modality:FINAL <T> (a:T of <root>.test4, x:kotlin.collections.Collection<T of <root>.test4>) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:a index:0 type:T of <root>.test4
VALUE_PARAMETER name:x index:1 type:kotlin.collections.Collection<T of <root>.test4>
BLOCK_BODY
+18 -9
View File
@@ -24,25 +24,30 @@ FILE fqName:<root> fileName:/kt30020.kt
VALUE_PARAMETER name:x index:0 type:<root>.X
VALUE_PARAMETER name:nx index:1 type:<root>.X?
BLOCK_BODY
CALL 'public final fun plusAssign (element: T of <uninitialized parent>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign <T> (element: T of kotlin.collections.plusAssign): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: CALL 'public abstract fun <get-xs> (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
$this: GET_VAR 'x: <root>.X declared in <root>.test' type=<root>.X origin=null
element: CONST Int type=kotlin.Int value=1
CALL 'public final fun plusAssign (element: T of <uninitialized parent>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign <T> (element: T of kotlin.collections.plusAssign): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: CALL 'public abstract fun f (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
$this: GET_VAR 'x: <root>.X declared in <root>.test' type=<root>.X origin=null
element: CONST Int type=kotlin.Int value=2
CALL 'public final fun plusAssign (element: T of <uninitialized parent>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign <T> (element: T of kotlin.collections.plusAssign): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: TYPE_OP type=kotlin.collections.MutableList<kotlin.Int> origin=CAST typeOperand=kotlin.collections.MutableList<kotlin.Int>
CALL 'public abstract fun <get-xs> (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Int> origin=null
$this: GET_VAR 'x: <root>.X declared in <root>.test' type=<root>.X origin=null
element: CONST Int type=kotlin.Int value=3
CALL 'public final fun plusAssign (element: T of <uninitialized parent>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign <T> (element: T of kotlin.collections.plusAssign): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: TYPE_OP type=kotlin.collections.MutableList<kotlin.Int> origin=CAST typeOperand=kotlin.collections.MutableList<kotlin.Int>
CALL 'public abstract fun f (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
$this: GET_VAR 'x: <root>.X declared in <root>.test' type=<root>.X origin=null
element: CONST Int type=kotlin.Int value=4
CALL 'public final fun plusAssign (element: T of <uninitialized parent>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign <T> (element: T of kotlin.collections.plusAssign): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: BLOCK type=kotlin.collections.MutableList<kotlin.Int> origin=EXCLEXCL
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.collections.MutableList<kotlin.Int> [val]
CALL 'public abstract fun <get-xs> (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Int> origin=null
@@ -58,7 +63,8 @@ FILE fqName:<root> fileName:/kt30020.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val tmp_0: kotlin.collections.MutableList<kotlin.Int> [val] declared in <root>.test' type=kotlin.collections.MutableList<kotlin.Int> origin=null
element: CONST Int type=kotlin.Int value=5
CALL 'public final fun plusAssign (element: T of <uninitialized parent>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign <T> (element: T of kotlin.collections.plusAssign): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: BLOCK type=kotlin.collections.MutableList<kotlin.Int> origin=EXCLEXCL
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.collections.MutableList<kotlin.Any>? [val]
CALL 'public abstract fun f (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any>? origin=null
@@ -77,7 +83,8 @@ FILE fqName:<root> fileName:/kt30020.kt
FUN name:testExtensionReceiver visibility:public modality:FINAL <> ($receiver:kotlin.collections.MutableList<kotlin.Any>) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList<kotlin.Any>
BLOCK_BODY
CALL 'public final fun plusAssign (element: T of <uninitialized parent>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign <T> (element: T of kotlin.collections.plusAssign): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: GET_VAR '<this>: kotlin.collections.MutableList<kotlin.Any> declared in <root>.testExtensionReceiver' type=kotlin.collections.MutableList<kotlin.Any> origin=null
element: CONST Int type=kotlin.Int value=100
CLASS CLASS name:AML modality:ABSTRACT visibility:public superTypes:[kotlin.collections.MutableList<kotlin.Int>]
@@ -89,7 +96,8 @@ FILE fqName:<root> fileName:/kt30020.kt
FUN name:testExplicitThis visibility:public modality:FINAL <> ($this:<root>.AML) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.AML
BLOCK_BODY
CALL 'public final fun plusAssign (element: T of <uninitialized parent>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign <T> (element: T of kotlin.collections.plusAssign): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: GET_VAR '<this>: <root>.AML declared in <root>.AML' type=<root>.AML origin=null
element: CONST Int type=kotlin.Int value=200
CLASS CLASS name:Inner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]
@@ -101,7 +109,8 @@ FILE fqName:<root> fileName:/kt30020.kt
FUN name:testOuterThis visibility:public modality:FINAL <> ($this:<root>.AML.Inner) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.AML.Inner
BLOCK_BODY
CALL 'public final fun plusAssign (element: T of <uninitialized parent>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign <T> (element: T of kotlin.collections.plusAssign): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: GET_VAR '<this>: <root>.AML declared in <root>.AML' type=<root>.AML origin=null
element: CONST Int type=kotlin.Int value=300
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override]
+5 -5
View File
@@ -1,12 +1,12 @@
FILE fqName:<root> fileName:/kt30796.kt
FUN name:magic visibility:public modality:FINAL <T> () returnType:T of <root>.magic
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun magic <T> (): T of <root>.magic declared in <root>'
THROW type=kotlin.Nothing
CONSTRUCTOR_CALL 'public constructor <init> () declared in java.lang.Exception' type=java.lang.Exception origin=null
FUN name:test visibility:public modality:FINAL <T> (value:T of <root>.test, value2:T of <root>.test) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:value index:0 type:T of <root>.test
VALUE_PARAMETER name:value2 index:1 type:T of <root>.test
BLOCK_BODY
@@ -99,7 +99,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BLOCK type=kotlin.Int origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_7 type:kotlin.Nothing [val]
CALL 'public final fun magic <T> (): T of <root>.magic declared in <root>' type=kotlin.Nothing origin=null
<T>: <none>
<T>: kotlin.Nothing
WHEN type=kotlin.Int origin=ELVIS
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
@@ -121,7 +121,7 @@ FILE fqName:<root> fileName:/kt30796.kt
arg0: GET_VAR 'val tmp_9: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CALL 'public final fun magic <T> (): T of <root>.magic declared in <root>' type=kotlin.Any origin=null
<T>: <none>
<T>: kotlin.Any
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val tmp_9: T of <root>.test [val] declared in <root>.test' type=kotlin.Any origin=null
@@ -140,7 +140,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BLOCK type=T of <root>.test origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_11 type:kotlin.Nothing [val]
CALL 'public final fun magic <T> (): T of <root>.magic declared in <root>' type=kotlin.Nothing origin=null
<T>: <none>
<T>: kotlin.Nothing
WHEN type=T of <root>.test origin=ELVIS
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/memberTypeArguments.kt
CLASS CLASS name:GenericClass modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.GenericClass
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (value:T of <uninitialized parent>) returnType:<root>.GenericClass<T of <uninitialized parent>> [primary]
VALUE_PARAMETER name:value index:0 type:T of <uninitialized parent>
BLOCK_BODY
@@ -24,7 +24,7 @@ FILE fqName:<root> fileName:/memberTypeArguments.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun withNewValue (newValue: T of <root>.GenericClass): <root>.GenericClass<T of <root>.GenericClass> declared in <root>.GenericClass'
CONSTRUCTOR_CALL 'public constructor <init> (value: T of <uninitialized parent>) [primary] declared in <root>.GenericClass' type=<root>.GenericClass<T of <root>.GenericClass> origin=null
<class: T>: <none>
<class: T>: T of <root>.GenericClass
value: GET_VAR 'newValue: T of <root>.GenericClass declared in <root>.GenericClass.withNewValue' type=T of <root>.GenericClass origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override]
overridden:
@@ -8,7 +8,7 @@ FILE fqName:<root> fileName:/samConversionInGenericConstructorCall_NI.kt
GET_VAR 'f2: kotlin.Function1<kotlin.Int, kotlin.String> declared in <root>.test3' type=kotlin.Function1<kotlin.Int, kotlin.String> origin=null
CLASS CLASS name:Outer modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[]
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (j11:<root>.J<T1 of <uninitialized parent>, T1 of <uninitialized parent>>) returnType:<root>.Outer<T1 of <uninitialized parent>> [primary]
VALUE_PARAMETER name:j11 index:0 type:<root>.J<T1 of <uninitialized parent>, T1 of <uninitialized parent>>
BLOCK_BODY
@@ -27,7 +27,7 @@ FILE fqName:<root> fileName:/samConversionInGenericConstructorCall_NI.kt
receiver: GET_VAR '<this>: <root>.Outer declared in <root>.Outer.<get-j11>' type=<root>.Outer origin=null
CLASS CLASS name:Inner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer.Inner
TYPE_PARAMETER name:T2 index:0 variance: superTypes:[]
TYPE_PARAMETER name:T2 index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (j12:<root>.J<T1 of <root>.Outer, T2 of <uninitialized parent>>) returnType:<root>.Outer.Inner<T2 of <uninitialized parent>> [primary]
VALUE_PARAMETER name:j12 index:0 type:<root>.J<T1 of <root>.Outer, T2 of <uninitialized parent>>
BLOCK_BODY
@@ -2,7 +2,8 @@ FILE fqName:<root> fileName:/samConversionToGeneric.kt
FUN name:test1 visibility:public modality:FINAL <> () returnType:<root>.J<kotlin.String>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (): <root>.J<kotlin.String> declared in <root>'
CALL 'public final fun J (block: kotlin.Function1<T of <uninitialized parent>?, T of <uninitialized parent>?>): <root>.J<T of <uninitialized parent>> declared in <root>' type=<root>.J<kotlin.String> origin=null
CALL 'public final fun J <T> (block: kotlin.Function1<T of <root>.J?, T of <root>.J?>): <root>.J<T of <root>.J> declared in <root>' type=<root>.J<kotlin.String> origin=null
<T>: kotlin.String
block: FUN_EXPR type=kotlin.Function1<kotlin.String, kotlin.String> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (x:kotlin.String) returnType:kotlin.String
VALUE_PARAMETER name:x index:0 type:kotlin.String
@@ -11,7 +12,8 @@ FILE fqName:<root> fileName:/samConversionToGeneric.kt
FUN name:test2 visibility:public modality:FINAL <> () returnType:<root>.J<kotlin.String>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (): <root>.J<kotlin.String> declared in <root>'
CALL 'public final fun J (block: kotlin.Function1<T of <uninitialized parent>?, T of <uninitialized parent>?>): <root>.J<T of <uninitialized parent>> declared in <root>' type=<root>.J<kotlin.String> origin=null
CALL 'public final fun J <T> (block: kotlin.Function1<T of <root>.J?, T of <root>.J?>): <root>.J<T of <root>.J> declared in <root>' type=<root>.J<kotlin.String> origin=null
<T>: kotlin.String
block: FUN_EXPR type=kotlin.Function1<kotlin.String, kotlin.String> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (x:kotlin.String) returnType:kotlin.String
VALUE_PARAMETER name:x index:0 type:kotlin.String
@@ -20,7 +22,8 @@ FILE fqName:<root> fileName:/samConversionToGeneric.kt
FUN name:test3 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 (): kotlin.Unit declared in <root>'
CALL 'public open fun bar (j: <root>.J<X of <uninitialized parent>?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
CALL 'public open fun bar <X> (j: <root>.J<X of <root>.H.bar?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<X>: kotlin.String
j: FUN_EXPR type=kotlin.Function1<kotlin.String, kotlin.String> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (x:kotlin.String) returnType:kotlin.String
VALUE_PARAMETER name:x index:0 type:kotlin.String
@@ -31,42 +34,49 @@ FILE fqName:<root> fileName:/samConversionToGeneric.kt
BLOCK_BODY
TYPE_OP type=<root>.J<kotlin.String> origin=CAST typeOperand=<root>.J<kotlin.String>
GET_VAR 'a: kotlin.Any declared in <root>.test4' type=kotlin.Any origin=null
CALL 'public open fun bar (j: <root>.J<X of <uninitialized parent>?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
CALL 'public open fun bar <X> (j: <root>.J<X of <root>.H.bar?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<X>: kotlin.String
j: GET_VAR 'a: kotlin.Any declared in <root>.test4' type=<root>.J<kotlin.String> origin=null
FUN name:test5 visibility:public modality:FINAL <> (a:kotlin.Any) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:kotlin.Any
BLOCK_BODY
TYPE_OP type=kotlin.Function1<kotlin.String, kotlin.String> origin=CAST typeOperand=kotlin.Function1<kotlin.String, kotlin.String>
GET_VAR 'a: kotlin.Any declared in <root>.test5' type=kotlin.Any origin=null
CALL 'public open fun bar (j: <root>.J<X of <uninitialized parent>?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
CALL 'public open fun bar <X> (j: <root>.J<X of <root>.H.bar?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<X>: kotlin.String
j: GET_VAR 'a: kotlin.Any declared in <root>.test5' type=kotlin.Function1<kotlin.String, kotlin.String> origin=null
FUN name:test6 visibility:public modality:FINAL <T> (a:kotlin.Function1<T of <root>.test6, T of <root>.test6>) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:a index:0 type:kotlin.Function1<T of <root>.test6, T of <root>.test6>
BLOCK_BODY
CALL 'public open fun bar (j: <root>.J<X of <uninitialized parent>?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
CALL 'public open fun bar <X> (j: <root>.J<X of <root>.H.bar?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<X>: T of <root>.test6
j: GET_VAR 'a: kotlin.Function1<T of <root>.test6, T of <root>.test6> declared in <root>.test6' type=kotlin.Function1<T of <root>.test6, T of <root>.test6> origin=null
FUN name:test7 visibility:public modality:FINAL <T> (a:kotlin.Any) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:a index:0 type:kotlin.Any
BLOCK_BODY
TYPE_OP type=kotlin.Function1<T of <root>.test7, T of <root>.test7> origin=CAST typeOperand=kotlin.Function1<T of <root>.test7, T of <root>.test7>
GET_VAR 'a: kotlin.Any declared in <root>.test7' type=kotlin.Any origin=null
CALL 'public open fun bar (j: <root>.J<X of <uninitialized parent>?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
CALL 'public open fun bar <X> (j: <root>.J<X of <root>.H.bar?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<X>: T of <root>.test7
j: GET_VAR 'a: kotlin.Any declared in <root>.test7' type=kotlin.Function1<T of <root>.test7, T of <root>.test7> origin=null
FUN name:test8 visibility:public modality:FINAL <> (efn:kotlin.Function1<kotlin.String, kotlin.String>) returnType:<root>.J<kotlin.String>
VALUE_PARAMETER name:efn index:0 type:kotlin.Function1<kotlin.String, kotlin.String>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test8 (efn: kotlin.Function1<kotlin.String, kotlin.String>): <root>.J<kotlin.String> declared in <root>'
CALL 'public final fun J (block: kotlin.Function1<T of <uninitialized parent>?, T of <uninitialized parent>?>): <root>.J<T of <uninitialized parent>> declared in <root>' type=<root>.J<kotlin.String> origin=null
CALL 'public final fun J <T> (block: kotlin.Function1<T of <root>.J?, T of <root>.J?>): <root>.J<T of <root>.J> declared in <root>' type=<root>.J<kotlin.String> origin=null
<T>: kotlin.String
block: GET_VAR 'efn: kotlin.Function1<kotlin.String, kotlin.String> declared in <root>.test8' type=kotlin.Function1<kotlin.String, kotlin.String> origin=null
FUN name:test9 visibility:public modality:FINAL <> (efn:kotlin.Function1<kotlin.String, kotlin.String>) returnType:kotlin.Unit
VALUE_PARAMETER name:efn index:0 type:kotlin.Function1<kotlin.String, kotlin.String>
BLOCK_BODY
CALL 'public open fun bar (j: <root>.J<X of <uninitialized parent>?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
CALL 'public open fun bar <X> (j: <root>.J<X of <root>.H.bar?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<X>: kotlin.String
j: GET_VAR 'efn: kotlin.Function1<kotlin.String, kotlin.String> declared in <root>.test9' type=kotlin.Function1<kotlin.String, kotlin.String> origin=null
FUN name:test10 visibility:public modality:FINAL <> (fn:kotlin.Function1<kotlin.Int, kotlin.String>) returnType:kotlin.Unit
VALUE_PARAMETER name:fn index:0 type:kotlin.Function1<kotlin.Int, kotlin.String>
BLOCK_BODY
CALL 'public open fun bar2x (j2x: <root>.J2X<Y of <uninitialized parent>?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
CALL 'public open fun bar2x <Y> (j2x: <root>.J2X<Y of <root>.H.bar2x?>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<Y>: kotlin.Int
j2x: GET_VAR 'fn: kotlin.Function1<kotlin.Int, kotlin.String> declared in <root>.test10' type=kotlin.Function1<kotlin.Int, kotlin.String> origin=null
@@ -83,7 +83,8 @@ FILE fqName:<root> fileName:/samConversionsWithSmartCasts.kt
VALUE_PARAMETER name:a index:0 type:kotlin.Function0<kotlin.Unit>
BLOCK_BODY
ERROR_CALL 'Unresolved reference: <Inapplicable(INAPPLICABLE): [/J.run1]>#' type=IrErrorType
CALL 'public open fun id (x: T of <uninitialized parent>?): T of <uninitialized parent>? declared in <root>.J' type=kotlin.Function0<kotlin.Unit> origin=null
CALL 'public open fun id <T> (x: T of <root>.J.id?): T of <root>.J.id? declared in <root>.J' type=kotlin.Function0<kotlin.Unit> origin=null
<T>: kotlin.Function0<kotlin.Unit>
x: GET_VAR 'a: kotlin.Function0<kotlin.Unit> declared in <root>.test8' type=kotlin.Function0<kotlin.Unit> origin=null
FUN name:test9 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/specializedTypeAliasConstructorCall.kt
CLASS CLASS name:Cell modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Cell
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (value:T of <uninitialized parent>) returnType:<root>.Cell<T of <uninitialized parent>> [primary]
VALUE_PARAMETER name:value index:0 type:T of <uninitialized parent>
BLOCK_BODY
@@ -35,5 +35,5 @@ FILE fqName:<root> fileName:/specializedTypeAliasConstructorCall.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test (): <root>.Cell<kotlin.Int> declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (value: T of <uninitialized parent>) [primary] declared in <root>.Cell' type=<root>.Cell<kotlin.Int> origin=null
<class: T>: <none>
<class: T>: kotlin.Int
value: CONST Int type=kotlin.Int value=42
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/thisOfGenericOuterClass.kt
CLASS CLASS name:Outer modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (x:T of <uninitialized parent>) returnType:<root>.Outer<T of <uninitialized parent>> [primary]
VALUE_PARAMETER name:x index:0 type:T of <uninitialized parent>
BLOCK_BODY
@@ -7,7 +7,8 @@ FILE fqName:<root> fileName:/typeArguments.kt
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Array<*>
GET_VAR 'x: kotlin.Any declared in <root>.test1' type=kotlin.Any origin=null
then: CALL 'public final fun isArrayOf (): kotlin.Boolean declared in kotlin.jvm' type=kotlin.Boolean origin=null
then: CALL 'public final fun isArrayOf <T> (): kotlin.Boolean declared in kotlin.jvm' type=kotlin.Boolean origin=null
<T>: kotlin.String
$receiver: GET_VAR 'x: kotlin.Any declared in <root>.test1' type=kotlin.Array<*> origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
@@ -1,12 +1,12 @@
FILE fqName:<root> fileName:/typeParameterClassLiteral.kt
FUN name:classRefFun visibility:public modality:FINAL <T> () returnType:kotlin.reflect.KClass<IrErrorType> [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun classRefFun <T> (): kotlin.reflect.KClass<IrErrorType> [inline] declared in <root>'
GET_CLASS type=kotlin.reflect.KClass<IrErrorType>
ERROR_CALL 'Unresolved reference: R|?|' type=IrErrorType
FUN name:classRefExtFun visibility:public modality:FINAL <T> ($receiver:kotlin.Any) returnType:kotlin.reflect.KClass<IrErrorType> [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun classRefExtFun <T> (): kotlin.reflect.KClass<IrErrorType> [inline] declared in <root>'
@@ -26,14 +26,14 @@ FILE fqName:<root> fileName:/typeParameterClassLiteral.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN name:classRefGenericMemberFun visibility:public modality:FINAL <TF> ($this:<root>.Host) returnType:kotlin.reflect.KClass<IrErrorType> [inline]
TYPE_PARAMETER name:TF index:0 variance: superTypes:[]
TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun classRefGenericMemberFun <TF> (): kotlin.reflect.KClass<IrErrorType> [inline] declared in <root>.Host'
GET_CLASS type=kotlin.reflect.KClass<IrErrorType>
ERROR_CALL 'Unresolved reference: R|?|' type=IrErrorType
FUN name:classRefGenericMemberExtFun visibility:public modality:FINAL <TF> ($this:<root>.Host, $receiver:kotlin.Any) returnType:kotlin.reflect.KClass<IrErrorType> [inline]
TYPE_PARAMETER name:TF index:0 variance: superTypes:[]
TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
BLOCK_BODY
@@ -1,9 +1,9 @@
FILE fqName:<root> fileName:/useImportedMember.kt
CLASS INTERFACE name:I modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
TYPE_PARAMETER name:G index:0 variance: superTypes:[]
TYPE_PARAMETER name:G index:0 variance: superTypes:[kotlin.Any?]
FUN name:fromInterface visibility:public modality:OPEN <T> ($this:<root>.I, $receiver:T of <root>.I.fromInterface) returnType:T of <root>.I.fromInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.I
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.I.fromInterface
BLOCK_BODY
@@ -105,7 +105,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
RETURN type=kotlin.Nothing from='public final fun <get-ext> (): kotlin.Int declared in <root>.C'
CONST Int type=kotlin.Int value=6
FUN name:g1 visibility:public modality:FINAL <T> ($this:<root>.C, t:T of <root>.C.g1) returnType:T of <root>.C.g1
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:t index:0 type:T of <root>.C.g1
BLOCK_BODY
@@ -213,7 +213,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: CALL 'public final fun g1 <T> (t: T of <root>.C.g1): T of <root>.C.g1 declared in <root>.C' type=kotlin.String origin=null
<T>: <none>
<T>: kotlin.String
$this: GET_VAR '<this>: <root>.C declared in <root>.C' type=<root>.C origin=null
t: CONST String type=kotlin.String value="7"
arg1: CONST String type=kotlin.String value="7"
@@ -233,7 +233,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: CALL 'public open fun fromInterface <T> (): T of <root>.I.fromInterface declared in <root>.I' type=kotlin.Int origin=null
<T>: <none>
<T>: kotlin.Int
$this: GET_VAR '<this>: <root>.I declared in <root>.I' type=<root>.I<*> origin=null
arg1: CONST Int type=kotlin.Int value=9
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
+2 -1
View File
@@ -2,7 +2,8 @@ FILE fqName:<root> fileName:/vararg.kt
PROPERTY name:test1 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.Array<kotlin.String> visibility:private [final,static]
EXPRESSION_BODY
CALL 'public final fun arrayOf (elements: kotlin.Array<out T of <uninitialized parent>>): kotlin.Array<T of <uninitialized parent>> [inline] declared in kotlin' type=kotlin.Array<kotlin.String> origin=null
CALL 'public final fun arrayOf <T> (elements: kotlin.Array<out T of kotlin.arrayOf>): kotlin.Array<T of kotlin.arrayOf> [inline] declared in kotlin' type=kotlin.Array<kotlin.String> origin=null
<T>: kotlin.String
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:kotlin.Array<kotlin.String>
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
BLOCK_BODY
+8 -4
View File
@@ -45,8 +45,10 @@ FILE fqName:<root> fileName:/when.kt
GET_VAR 'val tmp_0: kotlin.Any? [val] declared in <root>.testWithSubject' type=kotlin.Any? origin=null
then: CONST String type=kotlin.String value="!Number"
BRANCH
if: CALL 'public final fun contains (element: T of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections' type=kotlin.Boolean origin=null
$receiver: CALL 'public final fun setOf (): kotlin.collections.Set<T of <uninitialized parent>> [inline] declared in kotlin.collections' type=kotlin.collections.Set<kotlin.Nothing> origin=null
if: CALL 'public final fun contains <T> (element: T of kotlin.collections.contains): kotlin.Boolean declared in kotlin.collections' type=kotlin.Boolean origin=null
<T>: kotlin.Any?
$receiver: CALL 'public final fun setOf <T> (): kotlin.collections.Set<T of kotlin.collections.setOf> [inline] declared in kotlin.collections' type=kotlin.collections.Set<kotlin.Nothing> origin=null
<T>: kotlin.Nothing
element: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in <root>.testWithSubject' type=kotlin.Any? origin=null
then: CONST String type=kotlin.String value="nothingness?"
BRANCH
@@ -76,8 +78,10 @@ FILE fqName:<root> fileName:/when.kt
GET_VAR 'x: kotlin.Any? declared in <root>.test' type=kotlin.Any origin=null
then: CONST String type=kotlin.String value="!Number"
BRANCH
if: CALL 'public final fun contains (element: T of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections' type=kotlin.Boolean origin=null
$receiver: CALL 'public final fun setOf (): kotlin.collections.Set<T of <uninitialized parent>> [inline] declared in kotlin.collections' type=kotlin.collections.Set<kotlin.Nothing> origin=null
if: CALL 'public final fun contains <T> (element: T of kotlin.collections.contains): kotlin.Boolean declared in kotlin.collections' type=kotlin.Boolean origin=null
<T>: kotlin.Number
$receiver: CALL 'public final fun setOf <T> (): kotlin.collections.Set<T of kotlin.collections.setOf> [inline] declared in kotlin.collections' type=kotlin.collections.Set<kotlin.Nothing> origin=null
<T>: kotlin.Nothing
element: GET_VAR 'x: kotlin.Any? declared in <root>.test' type=kotlin.Number origin=null
then: CONST String type=kotlin.String value="nothingness?"
BRANCH