IrConstructorCall support in JVM_IR, JS_IR, and FIR2IR

This commit is contained in:
Dmitry Petrov
2019-03-26 17:25:00 +03:00
parent 82128800c5
commit b78d1bb2b9
287 changed files with 9008 additions and 8128 deletions
@@ -1,13 +1,13 @@
FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
FUN name:test1 visibility:public modality:FINAL <> (c:kotlin.Boolean?) returnType:kotlin.Unit
VALUE_PARAMETER name:c index:0 type:kotlin.Boolean?
FUN name:test1 visibility:public modality:FINAL <> (c:kotlin.Boolean?) returnType:kotlin.Unit
VALUE_PARAMETER name:c index:0 type:kotlin.Boolean?
BLOCK_BODY
WHILE label=L origin=WHILE_LOOP
condition: CONST Boolean type=kotlin.Boolean value=true
body: BLOCK type=kotlin.Unit origin=null
WHILE label=L2 origin=WHILE_LOOP
condition: BLOCK type=kotlin.Unit origin=ELVIS
VAR name:<elvis> type:kotlin.Boolean? [val]
VAR name:<elvis> type:kotlin.Boolean? [val]
GET_VAR 'c: kotlin.Boolean? declared in <root>.test1' type=kotlin.Boolean? origin=null
WHEN type=kotlin.Unit origin=ELVIS
BRANCH
@@ -19,15 +19,15 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val <elvis>: kotlin.Boolean? [val] declared in <root>.test1' type=kotlin.Boolean? origin=null
body: BLOCK type=kotlin.Unit origin=null
FUN name:test2 visibility:public modality:FINAL <> (c:kotlin.Boolean?) returnType:kotlin.Unit
VALUE_PARAMETER name:c index:0 type:kotlin.Boolean?
FUN name:test2 visibility:public modality:FINAL <> (c:kotlin.Boolean?) returnType:kotlin.Unit
VALUE_PARAMETER name:c index:0 type:kotlin.Boolean?
BLOCK_BODY
WHILE label=L origin=WHILE_LOOP
condition: CONST Boolean type=kotlin.Boolean value=true
body: BLOCK type=kotlin.Unit origin=null
WHILE label=L2 origin=WHILE_LOOP
condition: BLOCK type=kotlin.Unit origin=ELVIS
VAR name:<elvis> type:kotlin.Boolean? [val]
VAR name:<elvis> type:kotlin.Boolean? [val]
GET_VAR 'c: kotlin.Boolean? declared in <root>.test2' type=kotlin.Boolean? origin=null
WHEN type=kotlin.Unit origin=ELVIS
BRANCH
@@ -39,17 +39,17 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val <elvis>: kotlin.Boolean? [val] declared in <root>.test2' type=kotlin.Boolean? origin=null
body: BLOCK type=kotlin.Unit origin=null
FUN name:test3 visibility:public modality:FINAL <> (ss:kotlin.collections.List<kotlin.String>?) returnType:kotlin.Unit
VALUE_PARAMETER name:ss index:0 type:kotlin.collections.List<kotlin.String>?
FUN name:test3 visibility:public modality:FINAL <> (ss:kotlin.collections.List<kotlin.String>?) returnType:kotlin.Unit
VALUE_PARAMETER name:ss index:0 type:kotlin.collections.List<kotlin.String>?
BLOCK_BODY
WHILE label=L origin=WHILE_LOOP
condition: CONST Boolean type=kotlin.Boolean value=true
body: BLOCK type=kotlin.Unit origin=null
VAR name:<range> type:kotlin.Nothing [val]
BLOCK type=kotlin.Nothing origin=ELVIS
VAR name:<elvis> type:kotlin.collections.List<kotlin.String>? [val]
VAR name:<range> type:IrErrorType [val]
BLOCK type=IrErrorType origin=ELVIS
VAR name:<elvis> type:kotlin.collections.List<kotlin.String>? [val]
GET_VAR 'ss: kotlin.collections.List<kotlin.String>? declared in <root>.test3' type=kotlin.collections.List<kotlin.String>? origin=null
WHEN type=kotlin.Nothing origin=ELVIS
WHEN type=IrErrorType 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
arg0: GET_VAR 'val <elvis>: kotlin.collections.List<kotlin.String>? [val] declared in <root>.test3' type=kotlin.collections.List<kotlin.String>? origin=null
@@ -58,24 +58,24 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val <elvis>: kotlin.collections.List<kotlin.String>? [val] declared in <root>.test3' type=kotlin.collections.List<kotlin.String>? origin=null
VAR name:<iterator> type:IrErrorType [val]
VAR name:<iterator> type:IrErrorType [val]
ERROR_CALL 'Unresolved reference: <Unresolved name: iterator>#' type=IrErrorType
WHILE label=L2 origin=FOR_LOOP_INNER_WHILE
condition: ERROR_CALL 'Unresolved reference: <Unresolved name: hasNext>#' type=IrErrorType
body: BLOCK type=kotlin.Unit origin=null
VAR name:s type:IrErrorType [val]
VAR name:s type:IrErrorType [val]
ERROR_CALL 'Unresolved reference: <Unresolved name: next>#' type=IrErrorType
FUN name:test4 visibility:public modality:FINAL <> (ss:kotlin.collections.List<kotlin.String>?) returnType:kotlin.Unit
VALUE_PARAMETER name:ss index:0 type:kotlin.collections.List<kotlin.String>?
FUN name:test4 visibility:public modality:FINAL <> (ss:kotlin.collections.List<kotlin.String>?) returnType:kotlin.Unit
VALUE_PARAMETER name:ss index:0 type:kotlin.collections.List<kotlin.String>?
BLOCK_BODY
WHILE label=L origin=WHILE_LOOP
condition: CONST Boolean type=kotlin.Boolean value=true
body: BLOCK type=kotlin.Unit origin=null
VAR name:<range> type:kotlin.Nothing [val]
BLOCK type=kotlin.Nothing origin=ELVIS
VAR name:<elvis> type:kotlin.collections.List<kotlin.String>? [val]
VAR name:<range> type:IrErrorType [val]
BLOCK type=IrErrorType origin=ELVIS
VAR name:<elvis> type:kotlin.collections.List<kotlin.String>? [val]
GET_VAR 'ss: kotlin.collections.List<kotlin.String>? declared in <root>.test4' type=kotlin.collections.List<kotlin.String>? origin=null
WHEN type=kotlin.Nothing origin=ELVIS
WHEN type=IrErrorType 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
arg0: GET_VAR 'val <elvis>: kotlin.collections.List<kotlin.String>? [val] declared in <root>.test4' type=kotlin.collections.List<kotlin.String>? origin=null
@@ -84,29 +84,29 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val <elvis>: kotlin.collections.List<kotlin.String>? [val] declared in <root>.test4' type=kotlin.collections.List<kotlin.String>? origin=null
VAR name:<iterator> type:IrErrorType [val]
VAR name:<iterator> type:IrErrorType [val]
ERROR_CALL 'Unresolved reference: <Unresolved name: iterator>#' type=IrErrorType
WHILE label=L2 origin=FOR_LOOP_INNER_WHILE
condition: ERROR_CALL 'Unresolved reference: <Unresolved name: hasNext>#' type=IrErrorType
body: BLOCK type=kotlin.Unit origin=null
VAR name:s type:IrErrorType [val]
VAR name:s type:IrErrorType [val]
ERROR_CALL 'Unresolved reference: <Unresolved name: next>#' type=IrErrorType
FUN name:test5 visibility:public modality:FINAL <> () returnType:kotlin.Unit
FUN name:test5 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
VAR name:i type:kotlin.Int [var]
VAR name:i type:kotlin.Int [var]
CONST Int type=kotlin.Int value=0
WHILE label=Outer origin=WHILE_LOOP
condition: CONST Boolean type=kotlin.Boolean value=true
body: BLOCK type=kotlin.Unit origin=null
VAR name:<unary> type:kotlin.Int [val]
VAR name:<unary> type:kotlin.Int [val]
GET_VAR 'var i: kotlin.Int [var] declared in <root>.test5' type=kotlin.Int origin=null
ERROR_CALL 'Unresolved reference: R|<local>/i|' type=IrErrorType
GET_VAR 'var i: kotlin.Int [var] declared in <root>.test5' type=kotlin.Int origin=null
VAR name:j type:kotlin.Int [var]
VAR name:j type:kotlin.Int [var]
CONST Int type=kotlin.Int value=0
DO_WHILE label=Inner origin=DO_WHILE_LOOP
body: BLOCK type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val]
VAR name:<unary> type:kotlin.Int [val]
GET_VAR 'var j: kotlin.Int [var] declared in <root>.test5' type=kotlin.Int origin=null
ERROR_CALL 'Unresolved reference: R|<local>/j|' type=IrErrorType
GET_VAR 'var j: kotlin.Int [var] declared in <root>.test5' type=kotlin.Int origin=null