K2: reproduce KT-61974
This commit is contained in:
committed by
Space Team
parent
0d98995a8e
commit
8e577e101e
+6
@@ -2682,6 +2682,12 @@ public class FirLightTreeJvmIrTextTestGenerated extends AbstractFirLightTreeJvmI
|
|||||||
runTest("compiler/testData/ir/irText/firProblems/deprecated.kt");
|
runTest("compiler/testData/ir/irText/firProblems/deprecated.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("elvisOnBackingFieldInGetter.kt")
|
||||||
|
public void testElvisOnBackingFieldInGetter() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/firProblems/elvisOnBackingFieldInGetter.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("emptyWhen.kt")
|
@TestMetadata("emptyWhen.kt")
|
||||||
public void testEmptyWhen() throws Exception {
|
public void testEmptyWhen() throws Exception {
|
||||||
|
|||||||
compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java
Generated
+6
@@ -2682,6 +2682,12 @@ public class FirPsiJvmIrTextTestGenerated extends AbstractFirPsiJvmIrTextTest {
|
|||||||
runTest("compiler/testData/ir/irText/firProblems/deprecated.kt");
|
runTest("compiler/testData/ir/irText/firProblems/deprecated.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("elvisOnBackingFieldInGetter.kt")
|
||||||
|
public void testElvisOnBackingFieldInGetter() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/firProblems/elvisOnBackingFieldInGetter.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("emptyWhen.kt")
|
@TestMetadata("emptyWhen.kt")
|
||||||
public void testEmptyWhen() throws Exception {
|
public void testEmptyWhen() throws Exception {
|
||||||
|
|||||||
+98
@@ -0,0 +1,98 @@
|
|||||||
|
FILE fqName:<root> fileName:/elvisOnBackingFieldInGetter.kt
|
||||||
|
CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.Test [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
|
PROPERTY name:resourceTable visibility:public modality:FINAL [var]
|
||||||
|
FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private
|
||||||
|
EXPRESSION_BODY
|
||||||
|
CONST Null type=kotlin.Nothing? value=null
|
||||||
|
FUN name:<get-resourceTable> visibility:public modality:FINAL <> ($this:<root>.Test) returnType:<root>.ResourceTable?
|
||||||
|
correspondingProperty: PROPERTY name:resourceTable visibility:public modality:FINAL [var]
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.Test
|
||||||
|
BLOCK_BODY
|
||||||
|
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: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=<root>.ResourceTable? origin=GET_PROPERTY
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: BLOCK type=kotlin.Unit origin=null
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun <get-resourceTable> (): <root>.ResourceTable? declared in <root>.Test'
|
||||||
|
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=<root>.ResourceTable? origin=GET_PROPERTY
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test origin=null
|
||||||
|
VAR name:fileData type:kotlin.String? [val]
|
||||||
|
CALL 'public final fun getFileData (): kotlin.String? declared in <root>.Test' type=kotlin.String? origin=null
|
||||||
|
$this: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test 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: GET_VAR 'val fileData: kotlin.String? declared in <root>.Test.<get-resourceTable>' type=kotlin.String? origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: BLOCK type=kotlin.Unit origin=null
|
||||||
|
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=kotlin.Unit origin=EQ
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test origin=null
|
||||||
|
value: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.ResourceTable' type=<root>.ResourceTable origin=null
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun <get-resourceTable> (): <root>.ResourceTable? declared in <root>.Test'
|
||||||
|
BLOCK type=<root>.ResourceTable origin=ELVIS
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Nothing? [val]
|
||||||
|
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=<root>.ResourceTable? origin=GET_PROPERTY
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test origin=null
|
||||||
|
WHEN type=<root>.ResourceTable 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.Nothing? declared in <root>.Test.<get-resourceTable>' type=kotlin.Nothing? origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.ResourceTable' type=<root>.ResourceTable origin=null
|
||||||
|
BRANCH
|
||||||
|
if: CONST Boolean type=kotlin.Boolean value=true
|
||||||
|
then: GET_VAR 'val tmp_0: kotlin.Nothing? declared in <root>.Test.<get-resourceTable>' type=kotlin.Nothing? origin=null
|
||||||
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-resourceTable> visibility:public modality:FINAL <> ($this:<root>.Test, <set-?>:<root>.ResourceTable?) returnType:kotlin.Unit
|
||||||
|
correspondingProperty: PROPERTY name:resourceTable visibility:public modality:FINAL [var]
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.Test
|
||||||
|
VALUE_PARAMETER name:<set-?> index:0 type:<root>.ResourceTable?
|
||||||
|
BLOCK_BODY
|
||||||
|
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=kotlin.Unit origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<set-resourceTable>' type=<root>.Test origin=null
|
||||||
|
value: GET_VAR '<set-?>: <root>.ResourceTable? declared in <root>.Test.<set-resourceTable>' type=<root>.ResourceTable? origin=null
|
||||||
|
FUN name:getFileData visibility:public modality:FINAL <> ($this:<root>.Test) returnType:kotlin.String?
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.Test
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun getFileData (): kotlin.String? declared in <root>.Test'
|
||||||
|
CONST String type=kotlin.String value=""
|
||||||
|
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:ResourceTable modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.ResourceTable
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.ResourceTable [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:ResourceTable 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
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
class Test {
|
||||||
|
constructor() /* primary */ {
|
||||||
|
super/*Any*/()
|
||||||
|
/* <init>() */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var resourceTable: ResourceTable?
|
||||||
|
field = null
|
||||||
|
get(): ResourceTable? {
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = <this>.#resourceTable, arg1 = null).not() -> { // BLOCK
|
||||||
|
return <this>.#resourceTable
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val fileData: String? = <this>.getFileData()
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = fileData, arg1 = null).not() -> { // BLOCK
|
||||||
|
<this>.#resourceTable = ResourceTable()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return { // BLOCK
|
||||||
|
val <elvis>: Nothing? = <this>.#resourceTable
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = <elvis>, arg1 = null) -> ResourceTable()
|
||||||
|
else -> <elvis>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set
|
||||||
|
|
||||||
|
fun getFileData(): String? {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class ResourceTable {
|
||||||
|
constructor() /* primary */ {
|
||||||
|
super/*Any*/()
|
||||||
|
/* <init>() */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
FILE fqName:<root> fileName:/elvisOnBackingFieldInGetter.kt
|
||||||
|
CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.Test [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
|
PROPERTY name:resourceTable visibility:public modality:FINAL [var]
|
||||||
|
FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private
|
||||||
|
EXPRESSION_BODY
|
||||||
|
CONST Null type=kotlin.Nothing? value=null
|
||||||
|
FUN name:<get-resourceTable> visibility:public modality:FINAL <> ($this:<root>.Test) returnType:<root>.ResourceTable?
|
||||||
|
correspondingProperty: PROPERTY name:resourceTable visibility:public modality:FINAL [var]
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.Test
|
||||||
|
BLOCK_BODY
|
||||||
|
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: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=<root>.ResourceTable? origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: BLOCK type=kotlin.Unit origin=null
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun <get-resourceTable> (): <root>.ResourceTable? declared in <root>.Test'
|
||||||
|
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=<root>.ResourceTable? origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test origin=null
|
||||||
|
VAR name:fileData type:kotlin.String? [val]
|
||||||
|
CALL 'public final fun getFileData (): kotlin.String? declared in <root>.Test' type=kotlin.String? origin=null
|
||||||
|
$this: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test 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: GET_VAR 'val fileData: kotlin.String? declared in <root>.Test.<get-resourceTable>' type=kotlin.String? origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: BLOCK type=kotlin.Unit origin=null
|
||||||
|
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=kotlin.Unit origin=EQ
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test origin=null
|
||||||
|
value: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.ResourceTable' type=<root>.ResourceTable origin=null
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun <get-resourceTable> (): <root>.ResourceTable? declared in <root>.Test'
|
||||||
|
BLOCK type=<root>.ResourceTable? origin=ELVIS
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:<root>.ResourceTable? [val]
|
||||||
|
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=<root>.ResourceTable? origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<get-resourceTable>' type=<root>.Test origin=null
|
||||||
|
WHEN type=<root>.ResourceTable? 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: <root>.ResourceTable? declared in <root>.Test.<get-resourceTable>' type=<root>.ResourceTable? origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.ResourceTable' type=<root>.ResourceTable origin=null
|
||||||
|
BRANCH
|
||||||
|
if: CONST Boolean type=kotlin.Boolean value=true
|
||||||
|
then: GET_VAR 'val tmp_0: <root>.ResourceTable? declared in <root>.Test.<get-resourceTable>' type=<root>.ResourceTable? origin=null
|
||||||
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-resourceTable> visibility:public modality:FINAL <> ($this:<root>.Test, <set-?>:<root>.ResourceTable?) returnType:kotlin.Unit
|
||||||
|
correspondingProperty: PROPERTY name:resourceTable visibility:public modality:FINAL [var]
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.Test
|
||||||
|
VALUE_PARAMETER name:<set-?> index:0 type:<root>.ResourceTable?
|
||||||
|
BLOCK_BODY
|
||||||
|
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:resourceTable type:<root>.ResourceTable? visibility:private' type=kotlin.Unit origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.<set-resourceTable>' type=<root>.Test origin=null
|
||||||
|
value: GET_VAR '<set-?>: <root>.ResourceTable? declared in <root>.Test.<set-resourceTable>' type=<root>.ResourceTable? origin=null
|
||||||
|
FUN name:getFileData visibility:public modality:FINAL <> ($this:<root>.Test) returnType:kotlin.String?
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.Test
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun getFileData (): kotlin.String? declared in <root>.Test'
|
||||||
|
CONST String type=kotlin.String value=""
|
||||||
|
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:ResourceTable modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.ResourceTable
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.ResourceTable [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:ResourceTable 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
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
// ISSUE: KT-61974
|
||||||
|
// TARGET_BACKEND: JVM
|
||||||
|
|
||||||
|
class Test {
|
||||||
|
var resourceTable: ResourceTable? = null
|
||||||
|
get() {
|
||||||
|
if (field != null) {
|
||||||
|
return field
|
||||||
|
}
|
||||||
|
val fileData = getFileData()
|
||||||
|
if (fileData != null) {
|
||||||
|
field = ResourceTable()
|
||||||
|
}
|
||||||
|
return field ?: ResourceTable()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getFileData(): String? = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
class ResourceTable
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
class Test {
|
||||||
|
constructor() /* primary */ {
|
||||||
|
super/*Any*/()
|
||||||
|
/* <init>() */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var resourceTable: ResourceTable?
|
||||||
|
field = null
|
||||||
|
get(): ResourceTable? {
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = <this>.#resourceTable, arg1 = null).not() -> { // BLOCK
|
||||||
|
return <this>.#resourceTable
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val fileData: String? = <this>.getFileData()
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = fileData, arg1 = null).not() -> { // BLOCK
|
||||||
|
<this>.#resourceTable = ResourceTable()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return { // BLOCK
|
||||||
|
val tmp0_elvis_lhs: ResourceTable? = <this>.#resourceTable
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> ResourceTable()
|
||||||
|
else -> tmp0_elvis_lhs
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set
|
||||||
|
|
||||||
|
fun getFileData(): String? {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class ResourceTable {
|
||||||
|
constructor() /* primary */ {
|
||||||
|
super/*Any*/()
|
||||||
|
/* <init>() */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
// CHECK:
|
||||||
|
// Mangled name: ResourceTable
|
||||||
|
// Public signature: /ResourceTable|null[0]
|
||||||
|
class ResourceTable {
|
||||||
|
// CHECK:
|
||||||
|
// Mangled name: ResourceTable#<init>(){}
|
||||||
|
// Public signature: /ResourceTable.<init>|-5645683436151566731[0]
|
||||||
|
// Public signature debug description: <init>(){}
|
||||||
|
constructor() /* primary */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// CHECK:
|
||||||
|
// Mangled name: Test
|
||||||
|
// Public signature: /Test|null[0]
|
||||||
|
class Test {
|
||||||
|
// CHECK:
|
||||||
|
// Mangled name: Test{}resourceTable
|
||||||
|
// Public signature: /Test.resourceTable|5106462391401126974[0]
|
||||||
|
// Public signature debug description: {}resourceTable
|
||||||
|
var resourceTable: ResourceTable?
|
||||||
|
// CHECK JVM_IR:
|
||||||
|
// Mangled name: Test#<get-resourceTable>(){}ResourceTable?
|
||||||
|
// Public signature: /Test.resourceTable.<get-resourceTable>|-8031293433039158174[0]
|
||||||
|
// Public signature debug description: <get-resourceTable>(){}ResourceTable?
|
||||||
|
get(): ResourceTable?
|
||||||
|
// CHECK:
|
||||||
|
// Mangled name: Test#<set-resourceTable>(ResourceTable?){}
|
||||||
|
// Public signature: /Test.resourceTable.<set-resourceTable>|-5872518901213324823[0]
|
||||||
|
// Public signature debug description: <set-resourceTable>(ResourceTable?){}
|
||||||
|
set
|
||||||
|
|
||||||
|
// CHECK:
|
||||||
|
// Mangled name: Test#<init>(){}
|
||||||
|
// Public signature: /Test.<init>|-5645683436151566731[0]
|
||||||
|
// Public signature debug description: <init>(){}
|
||||||
|
constructor() /* primary */
|
||||||
|
|
||||||
|
// CHECK JVM_IR:
|
||||||
|
// Mangled name: Test#getFileData(){}kotlin.String?
|
||||||
|
// Public signature: /Test.getFileData|5079278953481470574[0]
|
||||||
|
// Public signature debug description: getFileData(){}kotlin.String?
|
||||||
|
fun getFileData(): String?
|
||||||
|
|
||||||
|
}
|
||||||
+6
@@ -2682,6 +2682,12 @@ public class ClassicJvmIrTextTestGenerated extends AbstractClassicJvmIrTextTest
|
|||||||
runTest("compiler/testData/ir/irText/firProblems/deprecated.kt");
|
runTest("compiler/testData/ir/irText/firProblems/deprecated.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("elvisOnBackingFieldInGetter.kt")
|
||||||
|
public void testElvisOnBackingFieldInGetter() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/firProblems/elvisOnBackingFieldInGetter.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("emptyWhen.kt")
|
@TestMetadata("emptyWhen.kt")
|
||||||
public void testEmptyWhen() throws Exception {
|
public void testEmptyWhen() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user