FIR2IR: use ELVIS origin only on wrapping blocks #KT-60250 Fixed

This commit is contained in:
Mikhail Glukhikh
2023-08-18 18:06:54 +02:00
committed by Space Team
parent b06188180e
commit 2ff075c961
15 changed files with 39 additions and 38 deletions
@@ -1194,7 +1194,8 @@ class Fir2IrVisitor(
branches: List<IrBranch>,
resultType: IrType
): IrExpression {
val irWhen = IrWhenImpl(startOffset, endOffset, resultType, origin, branches)
// Note: ELVIS origin is set only on wrapping block
val irWhen = IrWhenImpl(startOffset, endOffset, resultType, origin.takeIf { it != IrStatementOrigin.ELVIS }, branches)
return if (subjectVariable == null) {
irWhen
} else {
@@ -73,7 +73,7 @@ FILE fqName:<root> fileName:/test.kt
$this: CALL 'public final fun <get-annotationClass> <T> (): kotlin.reflect.KClass<out T of kotlin.jvm.<get-annotationClass>> declared in kotlin.jvm' type=kotlin.reflect.KClass<out kotlin.Annotation> origin=GET_PROPERTY
<T>: kotlin.Annotation
$receiver: GET_VAR 'it: kotlin.Annotation declared in <root>.box.<anonymous>' type=kotlin.Annotation origin=null
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_0: kotlin.String? declared in <root>.box.<anonymous>' type=kotlin.String? origin=null
@@ -107,7 +107,7 @@ FILE fqName:<root> fileName:/test.kt
<T>: @[FlexibleNullability] kotlin.Annotation?
$receiver: TYPE_OP type=kotlin.Annotation origin=IMPLICIT_NOTNULL typeOperand=kotlin.Annotation
GET_VAR 'it: @[FlexibleNullability] kotlin.Annotation? declared in <root>.box.<anonymous>' type=@[FlexibleNullability] kotlin.Annotation? origin=null
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_1: kotlin.String? declared in <root>.box.<anonymous>' type=kotlin.String? origin=null
@@ -200,7 +200,7 @@ FILE fqName:<root> fileName:/targetOnPrimaryCtorParameter.kt
$this: CALL 'public final fun <get-annotationClass> <T> (): kotlin.reflect.KClass<out T of kotlin.jvm.<get-annotationClass>> declared in kotlin.jvm' type=kotlin.reflect.KClass<out kotlin.Annotation> origin=GET_PROPERTY
<T>: kotlin.Annotation
$receiver: GET_VAR 'it: kotlin.Annotation declared in <root>.box.<anonymous>' type=kotlin.Annotation origin=null
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_0: kotlin.String? declared in <root>.box.<anonymous>' type=kotlin.String? origin=null
@@ -232,7 +232,7 @@ FILE fqName:<root> fileName:/targetOnPrimaryCtorParameter.kt
$this: CALL 'public final fun <get-annotationClass> <T> (): kotlin.reflect.KClass<out T of kotlin.jvm.<get-annotationClass>> declared in kotlin.jvm' type=kotlin.reflect.KClass<out kotlin.Annotation> origin=GET_PROPERTY
<T>: kotlin.Annotation
$receiver: GET_VAR 'it: kotlin.Annotation declared in <root>.box.<anonymous>' type=kotlin.Annotation origin=null
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_1: kotlin.String? declared in <root>.box.<anonymous>' type=kotlin.String? origin=null
@@ -266,7 +266,7 @@ FILE fqName:<root> fileName:/targetOnPrimaryCtorParameter.kt
<T>: @[FlexibleNullability] kotlin.Annotation?
$receiver: TYPE_OP type=kotlin.Annotation origin=IMPLICIT_NOTNULL typeOperand=kotlin.Annotation
GET_VAR 'it: @[FlexibleNullability] kotlin.Annotation? declared in <root>.box.<anonymous>' type=@[FlexibleNullability] kotlin.Annotation? origin=null
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_2: kotlin.String? declared in <root>.box.<anonymous>' type=kotlin.String? origin=null
@@ -34,7 +34,7 @@ FILE fqName:<root> fileName:/noSymbolForIntRangeIterator.kt
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Int? [val]
CALL 'public final fun toIntOrNull (): kotlin.Int? declared in kotlin.text' type=kotlin.Int? origin=null
$receiver: GET_VAR 'it: kotlin.String declared in <root>.takeString.<anonymous>' type=kotlin.String origin=null
WHEN type=kotlin.Int origin=ELVIS
WHEN type=kotlin.Int origin=null
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 tmp_0: kotlin.Int? declared in <root>.takeString.<anonymous>' type=kotlin.Int? origin=null
@@ -717,7 +717,7 @@ FILE fqName:<root> fileName:/kt44814.kt
$this: GET_VAR 'val tmp_4: <root>.LighterASTNode? declared in <root>.FirModifierList.Companion.getModifierList.<anonymous>' type=<root>.LighterASTNode? origin=null
arg1: CALL 'public final fun <get-MODIFIER_LIST> (): <root>.TokenType declared in <root>.TokenType.Companion' type=<root>.TokenType origin=GET_PROPERTY
$this: GET_OBJECT 'CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=<root>.TokenType.Companion
WHEN type=<root>.LighterASTNode origin=ELVIS
WHEN type=<root>.LighterASTNode origin=null
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 tmp_3: <root>.LighterASTNode? declared in <root>.FirModifierList.Companion.getModifierList' type=<root>.LighterASTNode? origin=null
@@ -174,7 +174,7 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
$receiver: GET_VAR 'val myContainer: <root>.MyContainer declared in <root>.box.<anonymous>' type=<root>.MyContainer origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
index: CONST Int type=kotlin.Int value=0
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_1: kotlin.String? declared in <root>.box.<anonymous>' type=kotlin.String? origin=null
@@ -66,7 +66,7 @@ FILE fqName:<root> fileName:/kt47527.kt
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.String? [val]
CALL 'public final fun test_1 (value: kotlin.Any?): kotlin.String? declared in <root>' type=kotlin.String? origin=null
value: CONST Int type=kotlin.Int value=1
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_2: kotlin.String? declared in <root>.box' type=kotlin.String? origin=null
@@ -83,7 +83,7 @@ FILE fqName:<root> fileName:/kt47527.kt
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlin.String? [val]
CALL 'public final fun test_2 (value: kotlin.Any?): kotlin.String? declared in <root>' type=kotlin.String? origin=null
value: CONST Int type=kotlin.Int value=1
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_3: kotlin.String? declared in <root>.box' type=kotlin.String? origin=null
@@ -9,7 +9,7 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
condition: BLOCK type=kotlin.Boolean origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Boolean? [val]
GET_VAR 'c: kotlin.Boolean? declared in <root>.test1' type=kotlin.Boolean? origin=null
WHEN type=kotlin.Boolean origin=ELVIS
WHEN type=kotlin.Boolean origin=null
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 tmp_0: kotlin.Boolean? declared in <root>.test1' type=kotlin.Boolean? origin=null
@@ -29,7 +29,7 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
condition: BLOCK type=kotlin.Boolean origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.Boolean? [val]
GET_VAR 'c: kotlin.Boolean? declared in <root>.test2' type=kotlin.Boolean? origin=null
WHEN type=kotlin.Boolean origin=ELVIS
WHEN type=kotlin.Boolean origin=null
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 tmp_1: kotlin.Boolean? declared in <root>.test2' type=kotlin.Boolean? origin=null
@@ -51,7 +51,7 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
$this: BLOCK type=kotlin.collections.List<kotlin.String> origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_3 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.collections.List<kotlin.String> origin=ELVIS
WHEN type=kotlin.collections.List<kotlin.String> origin=null
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 tmp_3: kotlin.collections.List<kotlin.String>? declared in <root>.test3' type=kotlin.collections.List<kotlin.String>? origin=null
@@ -80,7 +80,7 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
$this: BLOCK type=kotlin.collections.List<kotlin.String> origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_5 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.collections.List<kotlin.String> origin=ELVIS
WHEN type=kotlin.collections.List<kotlin.String> origin=null
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 tmp_5: kotlin.collections.List<kotlin.String>? declared in <root>.test4' type=kotlin.collections.List<kotlin.String>? origin=null
+5 -5
View File
@@ -20,7 +20,7 @@ FILE fqName:<root> fileName:/elvis.kt
BLOCK type=kotlin.Any origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Any? [val]
GET_VAR 'a: kotlin.Any? declared in <root>.test1' type=kotlin.Any? origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_0: kotlin.Any? declared in <root>.test1' type=kotlin.Any? origin=null
@@ -37,7 +37,7 @@ FILE fqName:<root> fileName:/elvis.kt
BLOCK type=kotlin.Any origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.String? [val]
GET_VAR 'a: kotlin.String? declared in <root>.test2' type=kotlin.String? origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_1: kotlin.String? declared in <root>.test2' type=kotlin.String? origin=null
@@ -67,7 +67,7 @@ FILE fqName:<root> fileName:/elvis.kt
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.String? [val]
TYPE_OP type=kotlin.String? origin=IMPLICIT_CAST typeOperand=kotlin.String?
GET_VAR 'a: kotlin.Any? declared in <root>.test3' type=kotlin.Any? origin=null
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_2: kotlin.String? declared in <root>.test3' type=kotlin.String? origin=null
@@ -84,7 +84,7 @@ FILE fqName:<root> fileName:/elvis.kt
BLOCK type=kotlin.Any origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlin.Any? [val]
CALL 'public final fun <get-p> (): kotlin.Any? declared in <root>' type=kotlin.Any? origin=GET_PROPERTY
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_3: kotlin.Any? declared in <root>.test4' type=kotlin.Any? origin=null
@@ -100,7 +100,7 @@ FILE fqName:<root> fileName:/elvis.kt
BLOCK type=kotlin.Any origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_4 type:kotlin.Any? [val]
CALL 'public final fun foo (): kotlin.Any? declared in <root>' type=kotlin.Any? origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_4: kotlin.Any? declared in <root>.test5' type=kotlin.Any? origin=null
+12 -12
View File
@@ -13,7 +13,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BLOCK type=kotlin.Any origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:T of <root>.test [val]
GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_0: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
@@ -26,7 +26,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BLOCK type=kotlin.Any origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:T of <root>.test [val]
GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_1: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
@@ -34,7 +34,7 @@ FILE fqName:<root> fileName:/kt30796.kt
then: BLOCK type=kotlin.Any origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:T of <root>.test [val]
GET_VAR 'value2: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_2: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
@@ -52,7 +52,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BLOCK type=kotlin.Any? origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_4 type:T of <root>.test [val]
GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
WHEN type=kotlin.Any? origin=ELVIS
WHEN type=kotlin.Any? origin=null
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 tmp_4: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
@@ -61,7 +61,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val tmp_4: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_3: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
@@ -76,7 +76,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BLOCK type=kotlin.Any? origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_6 type:T of <root>.test [val]
GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
WHEN type=kotlin.Any? origin=ELVIS
WHEN type=kotlin.Any? origin=null
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 tmp_6: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
@@ -85,7 +85,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val tmp_6: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_5: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
@@ -99,7 +99,7 @@ FILE fqName:<root> fileName:/kt30796.kt
VAR IR_TEMPORARY_VARIABLE name:tmp_7 type:kotlin.Any? [val]
CALL 'public final fun magic <T> (): T of <root>.magic declared in <root>' type=kotlin.Any? origin=null
<T>: kotlin.Any?
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_7: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
@@ -114,7 +114,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BLOCK type=kotlin.Any? origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_9 type:T of <root>.test [val]
GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
WHEN type=kotlin.Any? origin=ELVIS
WHEN type=kotlin.Any? origin=null
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 tmp_9: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
@@ -124,7 +124,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val tmp_9: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_8: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
@@ -140,7 +140,7 @@ FILE fqName:<root> fileName:/kt30796.kt
VAR IR_TEMPORARY_VARIABLE name:tmp_11 type:kotlin.Any? [val]
CALL 'public final fun magic <T> (): T of <root>.magic declared in <root>' type=kotlin.Any? origin=null
<T>: kotlin.Any?
WHEN type=kotlin.Any? origin=ELVIS
WHEN type=kotlin.Any? origin=null
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 tmp_11: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
@@ -149,7 +149,7 @@ FILE fqName:<root> fileName:/kt30796.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val tmp_11: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
WHEN type=kotlin.Any origin=ELVIS
WHEN type=kotlin.Any origin=null
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 tmp_10: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
@@ -157,7 +157,7 @@ FILE fqName:<root> fileName:/ClashResolutionDescriptor.kt
$this: CALL 'private final fun <get-registrationMap> (): java.util.HashMap<java.lang.reflect.Type, kotlin.Any> declared in <root>' type=java.util.HashMap<java.lang.reflect.Type, kotlin.Any> origin=GET_PROPERTY
p0: CALL 'public final fun <get-applicableTo> (): java.lang.Class<E of <root>.PlatformExtensionsClashResolver> declared in <root>.PlatformExtensionsClashResolver' type=java.lang.Class<out <root>.PlatformSpecificExtension<out <root>.PlatformSpecificExtension<out <root>.PlatformSpecificExtension<out <root>.PlatformSpecificExtension<out <root>.PlatformSpecificExtension<out kotlin.Any?>>>>>> origin=GET_PROPERTY
$this: GET_VAR 'val resolver: <root>.PlatformExtensionsClashResolver<*> declared in <root>.resolveClashesIfAny' type=<root>.PlatformExtensionsClashResolver<*> origin=null
WHEN type=kotlin.collections.Collection<<root>.ComponentDescriptor> origin=ELVIS
WHEN type=kotlin.collections.Collection<<root>.ComponentDescriptor> origin=null
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 tmp_1: kotlin.collections.Collection<<root>.ComponentDescriptor>? declared in <root>.resolveClashesIfAny' type=kotlin.collections.Collection<<root>.ComponentDescriptor>? origin=null
@@ -6,7 +6,7 @@ FILE fqName:<root> fileName:/dynamicElvisOperator.kt
BLOCK type=dynamic origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.test' type=dynamic origin=null
WHEN type=dynamic origin=ELVIS
WHEN type=dynamic origin=null
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 tmp_0: dynamic declared in <root>.test' type=dynamic origin=null
@@ -105,7 +105,7 @@ FILE fqName:<root> fileName:/castsInsideCoroutineInference.kt
element: BLOCK type=@[ParameterName(name = 'value')] kotlin.Any origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:@[ParameterName(name = 'value')] kotlin.Any? [val]
GET_VAR 'value: @[ParameterName(name = 'value')] kotlin.Any? declared in <root>.asFairChannel.<anonymous>.<anonymous>' type=@[ParameterName(name = 'value')] kotlin.Any? origin=null
WHEN type=@[ParameterName(name = 'value')] kotlin.Any origin=ELVIS
WHEN type=@[ParameterName(name = 'value')] kotlin.Any origin=null
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 tmp_0: @[ParameterName(name = 'value')] kotlin.Any? declared in <root>.asFairChannel.<anonymous>.<anonymous>' type=@[ParameterName(name = 'value')] kotlin.Any? origin=null
@@ -140,7 +140,7 @@ FILE fqName:<root> fileName:/castsInsideCoroutineInference.kt
e: BLOCK type=@[ParameterName(name = 'value')] kotlin.Any origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:@[ParameterName(name = 'value')] kotlin.Any? [val]
GET_VAR 'value: @[ParameterName(name = 'value')] kotlin.Any? declared in <root>.asChannel.<anonymous>.<anonymous>' type=@[ParameterName(name = 'value')] kotlin.Any? origin=null
WHEN type=@[ParameterName(name = 'value')] kotlin.Any origin=ELVIS
WHEN type=@[ParameterName(name = 'value')] kotlin.Any origin=null
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 tmp_1: @[ParameterName(name = 'value')] kotlin.Any? declared in <root>.asChannel.<anonymous>.<anonymous>' type=@[ParameterName(name = 'value')] kotlin.Any? origin=null
@@ -8,7 +8,7 @@ FILE fqName:<root> fileName:/definitelyNonNull.kt
BLOCK type={T of <root>.elvisLike & Any} origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:T of <root>.elvisLike [val]
GET_VAR 'x: T of <root>.elvisLike declared in <root>.elvisLike' type=T of <root>.elvisLike origin=null
WHEN type={T of <root>.elvisLike & Any} origin=ELVIS
WHEN type={T of <root>.elvisLike & Any} origin=null
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 tmp_0: T of <root>.elvisLike declared in <root>.elvisLike' type=T of <root>.elvisLike origin=null
@@ -11,7 +11,7 @@ FILE fqName:<root> fileName:/nullCheckInElvisRhs.kt
BLOCK type=kotlin.String origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.String? [val]
CALL 'public final fun baz (): kotlin.String? declared in <root>' type=kotlin.String? origin=null
WHEN type=kotlin.String origin=ELVIS
WHEN type=kotlin.String origin=null
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 tmp_0: kotlin.String? declared in <root>.test' type=kotlin.String? origin=null