Generate const val initializers as IrConst expressions

This commit is contained in:
Dmitry Petrov
2018-09-21 13:30:13 +03:00
parent 75b27f890a
commit 8891733074
4 changed files with 87 additions and 3 deletions
@@ -0,0 +1,8 @@
const val I0 = 0
const val I1 = 1
const val I2 = I0 + I1 + I1
const val STR1 = "String1"
const val STR2 = "String" + "2"
const val STR3 = STR1 + STR2
const val STR4 = "$STR1$STR2"
@@ -0,0 +1,64 @@
FILE fqName:<root> fileName:/constValInitializers.kt
PROPERTY name:I0 visibility:public modality:FINAL flags:const,val
FIELD PROPERTY_BACKING_FIELD name:I0 type:kotlin.Int visibility:public flags:final,static
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-I0> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:
correspondingProperty: PROPERTY name:I0 visibility:public modality:FINAL flags:const,val
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-I0>(): Int'
GET_FIELD 'I0: Int' type=kotlin.Int origin=null
PROPERTY name:I1 visibility:public modality:FINAL flags:const,val
FIELD PROPERTY_BACKING_FIELD name:I1 type:kotlin.Int visibility:public flags:final,static
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-I1> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:
correspondingProperty: PROPERTY name:I1 visibility:public modality:FINAL flags:const,val
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-I1>(): Int'
GET_FIELD 'I1: Int' type=kotlin.Int origin=null
PROPERTY name:I2 visibility:public modality:FINAL flags:const,val
FIELD PROPERTY_BACKING_FIELD name:I2 type:kotlin.Int visibility:public flags:final,static
EXPRESSION_BODY
CONST Int type=kotlin.Int value=2
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-I2> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:
correspondingProperty: PROPERTY name:I2 visibility:public modality:FINAL flags:const,val
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-I2>(): Int'
GET_FIELD 'I2: Int' type=kotlin.Int origin=null
PROPERTY name:STR1 visibility:public modality:FINAL flags:const,val
FIELD PROPERTY_BACKING_FIELD name:STR1 type:kotlin.String visibility:public flags:final,static
EXPRESSION_BODY
CONST String type=kotlin.String value=String1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-STR1> visibility:public modality:FINAL <> () returnType:kotlin.String flags:
correspondingProperty: PROPERTY name:STR1 visibility:public modality:FINAL flags:const,val
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-STR1>(): String'
GET_FIELD 'STR1: String' type=kotlin.String origin=null
PROPERTY name:STR2 visibility:public modality:FINAL flags:const,val
FIELD PROPERTY_BACKING_FIELD name:STR2 type:kotlin.String visibility:public flags:final,static
EXPRESSION_BODY
CONST String type=kotlin.String value=String2
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-STR2> visibility:public modality:FINAL <> () returnType:kotlin.String flags:
correspondingProperty: PROPERTY name:STR2 visibility:public modality:FINAL flags:const,val
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-STR2>(): String'
GET_FIELD 'STR2: String' type=kotlin.String origin=null
PROPERTY name:STR3 visibility:public modality:FINAL flags:const,val
FIELD PROPERTY_BACKING_FIELD name:STR3 type:kotlin.String visibility:public flags:final,static
EXPRESSION_BODY
CONST String type=kotlin.String value=String1String2
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-STR3> visibility:public modality:FINAL <> () returnType:kotlin.String flags:
correspondingProperty: PROPERTY name:STR3 visibility:public modality:FINAL flags:const,val
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-STR3>(): String'
GET_FIELD 'STR3: String' type=kotlin.String origin=null
PROPERTY name:STR4 visibility:public modality:FINAL flags:const,val
FIELD PROPERTY_BACKING_FIELD name:STR4 type:kotlin.String visibility:public flags:final,static
EXPRESSION_BODY
CONST String type=kotlin.String value=String1String2
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-STR4> visibility:public modality:FINAL <> () returnType:kotlin.String flags:
correspondingProperty: PROPERTY name:STR4 visibility:public modality:FINAL flags:const,val
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-STR4>(): String'
GET_FIELD 'STR4: String' type=kotlin.String origin=null