[FIR2IR] Don't copy default value to annotation call with vararg parameter
This aligns the behavior with K1 and fixes an issue when the default value was deserialized as FirExpressionStub leading to an exception in FIR2IR when trying to convert it to an IR expression. #KT-60120 Fixed #KT-59610 Fixed
This commit is contained in:
committed by
Space Team
parent
7c1c01156f
commit
feed740415
+5
-4
@@ -796,7 +796,7 @@ class CallAndReferenceGenerator(
|
||||
if (argumentMapping != null && (visitor.annotationMode || argumentMapping.isNotEmpty())) {
|
||||
if (valueParameters != null) {
|
||||
return applyArgumentsWithReorderingIfNeeded(
|
||||
argumentMapping, valueParameters, substitutor, contextReceiverCount,
|
||||
argumentMapping, valueParameters, substitutor, contextReceiverCount, call,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -873,6 +873,7 @@ class CallAndReferenceGenerator(
|
||||
valueParameters: List<FirValueParameter>,
|
||||
substitutor: ConeSubstitutor,
|
||||
contextReceiverCount: Int,
|
||||
call: FirCall,
|
||||
): IrExpression {
|
||||
val converted = argumentMapping.entries.map { (argument, parameter) ->
|
||||
parameter to convertArgument(argument, parameter, substitutor)
|
||||
@@ -905,11 +906,11 @@ class CallAndReferenceGenerator(
|
||||
putValueArgument(valueParameters.indexOf(parameter) + contextReceiverCount, irArgument)
|
||||
}
|
||||
if (visitor.annotationMode) {
|
||||
val function = call.calleeReference?.toResolvedCallableSymbol()?.fir as? FirFunction
|
||||
for ((index, parameter) in valueParameters.withIndex()) {
|
||||
if (parameter.isVararg && !argumentMapping.containsValue(parameter)) {
|
||||
val defaultValue = parameter.defaultValue
|
||||
val value = if (defaultValue != null) {
|
||||
convertArgument(defaultValue, parameter, ConeSubstitutor.Empty)
|
||||
val value = if (function?.itOrExpectHasDefaultParameterValue(index) == true) {
|
||||
null
|
||||
} else {
|
||||
val elementType = parameter.returnTypeRef.toIrType()
|
||||
IrVarargImpl(
|
||||
|
||||
+6
@@ -83,6 +83,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationTargets.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithKotlinProperty.kt")
|
||||
public void testAnnotationWithKotlinProperty() throws Exception {
|
||||
|
||||
+6
@@ -83,6 +83,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationTargets.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithKotlinProperty.kt")
|
||||
public void testAnnotationWithKotlinProperty() throws Exception {
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// MODULE: lib1
|
||||
// FILE: lib1.kt
|
||||
|
||||
annotation class MyConfig(
|
||||
vararg val profiles: String = [],
|
||||
)
|
||||
|
||||
// MODULE: box(lib1)
|
||||
// FILE: box.kt
|
||||
|
||||
@MyConfig
|
||||
fun box() = "OK"
|
||||
+249
@@ -0,0 +1,249 @@
|
||||
Module: lib
|
||||
Module: main
|
||||
FILE fqName:<root> fileName:/1.kt
|
||||
CLASS CLASS name:MyClass1 modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
JavaAnn(value = <null>)
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass1
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass1 [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass1 modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:MyClass2 modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
JavaAnn(value = <null>)
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass2
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass2 [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass2 modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:MyClass3 modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
JavaAnn(value = ['asd'])
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass3
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass3 [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass3 modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:MyClass4 modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
JavaAnn(value = [])
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass4
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass4 [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass4 modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
VAR name:value1 type:kotlin.Array<kotlin.String> [val]
|
||||
CALL 'public abstract fun <get-value> (): kotlin.Array<kotlin.String> declared in <root>.JavaAnn' type=kotlin.Array<kotlin.String> origin=GET_PROPERTY
|
||||
$this: CALL 'public open fun getAnnotation <A> (p0: @[FlexibleNullability] java.lang.Class<@[FlexibleNullability] A of java.lang.Class.getAnnotation?>?): @[FlexibleNullability] A of java.lang.Class.getAnnotation? declared in java.lang.Class' type=@[FlexibleNullability] <root>.JavaAnn? origin=null
|
||||
<A>: @[FlexibleNullability] <root>.JavaAnn?
|
||||
$this: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.MyClass1> origin=GET_PROPERTY
|
||||
<T>: <root>.MyClass1
|
||||
$receiver: CLASS_REFERENCE 'CLASS CLASS name:MyClass1 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<<root>.MyClass1>
|
||||
p0: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.JavaAnn> origin=GET_PROPERTY
|
||||
<T>: <root>.JavaAnn
|
||||
$receiver: CLASS_REFERENCE 'CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ANNOTATION_CLASS name:JavaAnn modality:FINAL visibility:public/*package*/ superTypes:[kotlin.Any; kotlin.Annotation]' type=kotlin.reflect.KClass<<root>.JavaAnn>
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=2
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail1: "
|
||||
CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
arg1: CONST String type=kotlin.String value="d1"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail2: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=1
|
||||
arg1: CONST String type=kotlin.String value="d2"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail3: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=1
|
||||
VAR name:value2 type:kotlin.Array<kotlin.String> [val]
|
||||
CALL 'public abstract fun <get-value> (): kotlin.Array<kotlin.String> declared in <root>.JavaAnn' type=kotlin.Array<kotlin.String> origin=GET_PROPERTY
|
||||
$this: CALL 'public open fun getAnnotation <A> (p0: @[FlexibleNullability] java.lang.Class<@[FlexibleNullability] A of java.lang.Class.getAnnotation?>?): @[FlexibleNullability] A of java.lang.Class.getAnnotation? declared in java.lang.Class' type=@[FlexibleNullability] <root>.JavaAnn? origin=null
|
||||
<A>: @[FlexibleNullability] <root>.JavaAnn?
|
||||
$this: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.MyClass2> origin=GET_PROPERTY
|
||||
<T>: <root>.MyClass2
|
||||
$receiver: CLASS_REFERENCE 'CLASS CLASS name:MyClass2 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<<root>.MyClass2>
|
||||
p0: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.JavaAnn> origin=GET_PROPERTY
|
||||
<T>: <root>.JavaAnn
|
||||
$receiver: CLASS_REFERENCE 'CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ANNOTATION_CLASS name:JavaAnn modality:FINAL visibility:public/*package*/ superTypes:[kotlin.Any; kotlin.Annotation]' type=kotlin.reflect.KClass<<root>.JavaAnn>
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=2
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail4: "
|
||||
CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
arg1: CONST String type=kotlin.String value="d1"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail5: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=1
|
||||
arg1: CONST String type=kotlin.String value="d2"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail6: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=1
|
||||
VAR name:value3 type:kotlin.Array<kotlin.String> [val]
|
||||
CALL 'public abstract fun <get-value> (): kotlin.Array<kotlin.String> declared in <root>.JavaAnn' type=kotlin.Array<kotlin.String> origin=GET_PROPERTY
|
||||
$this: CALL 'public open fun getAnnotation <A> (p0: @[FlexibleNullability] java.lang.Class<@[FlexibleNullability] A of java.lang.Class.getAnnotation?>?): @[FlexibleNullability] A of java.lang.Class.getAnnotation? declared in java.lang.Class' type=@[FlexibleNullability] <root>.JavaAnn? origin=null
|
||||
<A>: @[FlexibleNullability] <root>.JavaAnn?
|
||||
$this: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.MyClass3> origin=GET_PROPERTY
|
||||
<T>: <root>.MyClass3
|
||||
$receiver: CLASS_REFERENCE 'CLASS CLASS name:MyClass3 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<<root>.MyClass3>
|
||||
p0: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.JavaAnn> origin=GET_PROPERTY
|
||||
<T>: <root>.JavaAnn
|
||||
$receiver: CLASS_REFERENCE 'CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ANNOTATION_CLASS name:JavaAnn modality:FINAL visibility:public/*package*/ superTypes:[kotlin.Any; kotlin.Annotation]' type=kotlin.reflect.KClass<<root>.JavaAnn>
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value3: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=1
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail7: "
|
||||
CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value3: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value3: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
arg1: CONST String type=kotlin.String value="asd"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail8: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'val value3: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
VAR name:value4 type:kotlin.Array<kotlin.String> [val]
|
||||
CALL 'public abstract fun <get-value> (): kotlin.Array<kotlin.String> declared in <root>.JavaAnn' type=kotlin.Array<kotlin.String> origin=GET_PROPERTY
|
||||
$this: CALL 'public open fun getAnnotation <A> (p0: @[FlexibleNullability] java.lang.Class<@[FlexibleNullability] A of java.lang.Class.getAnnotation?>?): @[FlexibleNullability] A of java.lang.Class.getAnnotation? declared in java.lang.Class' type=@[FlexibleNullability] <root>.JavaAnn? origin=null
|
||||
<A>: @[FlexibleNullability] <root>.JavaAnn?
|
||||
$this: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.MyClass4> origin=GET_PROPERTY
|
||||
<T>: <root>.MyClass4
|
||||
$receiver: CLASS_REFERENCE 'CLASS CLASS name:MyClass4 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<<root>.MyClass4>
|
||||
p0: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.JavaAnn> origin=GET_PROPERTY
|
||||
<T>: <root>.JavaAnn
|
||||
$receiver: CLASS_REFERENCE 'CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ANNOTATION_CLASS name:JavaAnn modality:FINAL visibility:public/*package*/ superTypes:[kotlin.Any; kotlin.Annotation]' type=kotlin.reflect.KClass<<root>.JavaAnn>
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value4: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail 9: "
|
||||
CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value4: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CONST String type=kotlin.String value="OK"
|
||||
+253
@@ -0,0 +1,253 @@
|
||||
Module: lib
|
||||
Module: main
|
||||
FILE fqName:<root> fileName:/1.kt
|
||||
CLASS CLASS name:MyClass1 modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
JavaAnn(value = <null>)
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass1
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass1 [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass1 modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:MyClass2 modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
JavaAnn(value = <null>)
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass2
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass2 [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass2 modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:MyClass3 modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
JavaAnn(value = ['asd'])
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass3
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass3 [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass3 modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:MyClass4 modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
JavaAnn(value = [])
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass4
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass4 [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass4 modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
VAR name:value1 type:kotlin.Array<kotlin.String> [val]
|
||||
CALL 'public final fun <get-value> (): kotlin.Array<kotlin.String> declared in <root>.JavaAnn' type=kotlin.Array<kotlin.String> origin=GET_PROPERTY
|
||||
$this: TYPE_OP type=<root>.JavaAnn origin=IMPLICIT_NOTNULL typeOperand=<root>.JavaAnn
|
||||
CALL 'public open fun getAnnotation <A> (p0: @[FlexibleNullability] java.lang.Class<@[FlexibleNullability] A of java.lang.Class.getAnnotation?>?): @[FlexibleNullability] A of java.lang.Class.getAnnotation? declared in java.lang.Class' type=@[FlexibleNullability] <root>.JavaAnn? origin=null
|
||||
<A>: @[FlexibleNullability] <root>.JavaAnn?
|
||||
$this: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.MyClass1> origin=GET_PROPERTY
|
||||
<T>: <root>.MyClass1
|
||||
$receiver: CLASS_REFERENCE 'CLASS CLASS name:MyClass1 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<<root>.MyClass1>
|
||||
p0: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.JavaAnn> origin=GET_PROPERTY
|
||||
<T>: <root>.JavaAnn
|
||||
$receiver: CLASS_REFERENCE 'CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ANNOTATION_CLASS name:JavaAnn modality:OPEN visibility:public/*package*/ superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass<<root>.JavaAnn>
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=2
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail1: "
|
||||
CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
arg1: CONST String type=kotlin.String value="d1"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail2: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=1
|
||||
arg1: CONST String type=kotlin.String value="d2"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail3: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value1: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=1
|
||||
VAR name:value2 type:kotlin.Array<kotlin.String> [val]
|
||||
CALL 'public final fun <get-value> (): kotlin.Array<kotlin.String> declared in <root>.JavaAnn' type=kotlin.Array<kotlin.String> origin=GET_PROPERTY
|
||||
$this: TYPE_OP type=<root>.JavaAnn origin=IMPLICIT_NOTNULL typeOperand=<root>.JavaAnn
|
||||
CALL 'public open fun getAnnotation <A> (p0: @[FlexibleNullability] java.lang.Class<@[FlexibleNullability] A of java.lang.Class.getAnnotation?>?): @[FlexibleNullability] A of java.lang.Class.getAnnotation? declared in java.lang.Class' type=@[FlexibleNullability] <root>.JavaAnn? origin=null
|
||||
<A>: @[FlexibleNullability] <root>.JavaAnn?
|
||||
$this: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.MyClass2> origin=GET_PROPERTY
|
||||
<T>: <root>.MyClass2
|
||||
$receiver: CLASS_REFERENCE 'CLASS CLASS name:MyClass2 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<<root>.MyClass2>
|
||||
p0: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.JavaAnn> origin=GET_PROPERTY
|
||||
<T>: <root>.JavaAnn
|
||||
$receiver: CLASS_REFERENCE 'CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ANNOTATION_CLASS name:JavaAnn modality:OPEN visibility:public/*package*/ superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass<<root>.JavaAnn>
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=2
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail4: "
|
||||
CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
arg1: CONST String type=kotlin.String value="d1"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail5: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=1
|
||||
arg1: CONST String type=kotlin.String value="d2"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail6: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value2: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=1
|
||||
VAR name:value3 type:kotlin.Array<kotlin.String> [val]
|
||||
CALL 'public final fun <get-value> (): kotlin.Array<kotlin.String> declared in <root>.JavaAnn' type=kotlin.Array<kotlin.String> origin=GET_PROPERTY
|
||||
$this: TYPE_OP type=<root>.JavaAnn origin=IMPLICIT_NOTNULL typeOperand=<root>.JavaAnn
|
||||
CALL 'public open fun getAnnotation <A> (p0: @[FlexibleNullability] java.lang.Class<@[FlexibleNullability] A of java.lang.Class.getAnnotation?>?): @[FlexibleNullability] A of java.lang.Class.getAnnotation? declared in java.lang.Class' type=@[FlexibleNullability] <root>.JavaAnn? origin=null
|
||||
<A>: @[FlexibleNullability] <root>.JavaAnn?
|
||||
$this: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.MyClass3> origin=GET_PROPERTY
|
||||
<T>: <root>.MyClass3
|
||||
$receiver: CLASS_REFERENCE 'CLASS CLASS name:MyClass3 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<<root>.MyClass3>
|
||||
p0: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.JavaAnn> origin=GET_PROPERTY
|
||||
<T>: <root>.JavaAnn
|
||||
$receiver: CLASS_REFERENCE 'CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ANNOTATION_CLASS name:JavaAnn modality:OPEN visibility:public/*package*/ superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass<<root>.JavaAnn>
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value3: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=1
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail7: "
|
||||
CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value3: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value3: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
arg1: CONST String type=kotlin.String value="asd"
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail8: "
|
||||
CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=kotlin.String origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val value3: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
index: CONST Int type=kotlin.Int value=0
|
||||
VAR name:value4 type:kotlin.Array<kotlin.String> [val]
|
||||
CALL 'public final fun <get-value> (): kotlin.Array<kotlin.String> declared in <root>.JavaAnn' type=kotlin.Array<kotlin.String> origin=GET_PROPERTY
|
||||
$this: TYPE_OP type=<root>.JavaAnn origin=IMPLICIT_NOTNULL typeOperand=<root>.JavaAnn
|
||||
CALL 'public open fun getAnnotation <A> (p0: @[FlexibleNullability] java.lang.Class<@[FlexibleNullability] A of java.lang.Class.getAnnotation?>?): @[FlexibleNullability] A of java.lang.Class.getAnnotation? declared in java.lang.Class' type=@[FlexibleNullability] <root>.JavaAnn? origin=null
|
||||
<A>: @[FlexibleNullability] <root>.JavaAnn?
|
||||
$this: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.MyClass4> origin=GET_PROPERTY
|
||||
<T>: <root>.MyClass4
|
||||
$receiver: CLASS_REFERENCE 'CLASS CLASS name:MyClass4 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<<root>.MyClass4>
|
||||
p0: CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.JavaAnn> origin=GET_PROPERTY
|
||||
<T>: <root>.JavaAnn
|
||||
$receiver: CLASS_REFERENCE 'CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ANNOTATION_CLASS name:JavaAnn modality:OPEN visibility:public/*package*/ superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass<<root>.JavaAnn>
|
||||
WHEN type=kotlin.Unit origin=IF
|
||||
BRANCH
|
||||
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 <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value4: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="fail 9: "
|
||||
CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'val value4: kotlin.Array<kotlin.String> declared in <root>.box' type=kotlin.Array<kotlin.String> origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CONST String type=kotlin.String value="OK"
|
||||
@@ -1,5 +1,6 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// DUMP_IR
|
||||
// MODULE: lib
|
||||
// FILE: JavaAnn.java
|
||||
|
||||
|
||||
+6
@@ -71,6 +71,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationTargets.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithKotlinProperty.kt")
|
||||
public void testAnnotationWithKotlinProperty() throws Exception {
|
||||
|
||||
+6
@@ -83,6 +83,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationTargets.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithKotlinProperty.kt")
|
||||
public void testAnnotationWithKotlinProperty() throws Exception {
|
||||
|
||||
+6
@@ -83,6 +83,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationTargets.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithKotlinProperty.kt")
|
||||
public void testAnnotationWithKotlinProperty() throws Exception {
|
||||
|
||||
+5
@@ -83,6 +83,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationTargets.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("annotationWithKotlinProperty.kt")
|
||||
public void testAnnotationWithKotlinProperty() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithKotlinProperty.kt");
|
||||
|
||||
+6
@@ -35,6 +35,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericAnnotations.kt")
|
||||
public void testGenericAnnotations() throws Exception {
|
||||
|
||||
+6
@@ -35,6 +35,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericAnnotations.kt")
|
||||
public void testGenericAnnotations() throws Exception {
|
||||
|
||||
+6
@@ -35,6 +35,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR_ES6, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericAnnotations.kt")
|
||||
public void testGenericAnnotations() throws Exception {
|
||||
|
||||
+6
@@ -46,6 +46,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericAnnotations.kt")
|
||||
public void testGenericAnnotations() throws Exception {
|
||||
|
||||
+6
@@ -52,6 +52,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericAnnotations.kt")
|
||||
public void testGenericAnnotations() throws Exception {
|
||||
|
||||
+6
@@ -44,6 +44,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericAnnotations.kt")
|
||||
public void testGenericAnnotations() throws Exception {
|
||||
|
||||
+6
@@ -47,6 +47,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericAnnotations.kt")
|
||||
public void testGenericAnnotations() throws Exception {
|
||||
|
||||
Generated
+6
@@ -35,6 +35,12 @@ public class FirWasmCodegenBoxTestGenerated extends AbstractFirWasmCodegenBoxTes
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericAnnotations.kt")
|
||||
public void testGenericAnnotations() throws Exception {
|
||||
|
||||
Generated
+6
@@ -35,6 +35,12 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithDefaultArgInDifferentModule.kt")
|
||||
public void testAnnotationWithDefaultArgInDifferentModule() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationWithDefaultArgInDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericAnnotations.kt")
|
||||
public void testGenericAnnotations() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user