Minor: constructor IrExpressionBodyImpl(IrExpression)

This commit is contained in:
Dmitry Petrov
2017-02-27 18:54:34 +03:00
parent e66c2621af
commit 045a12ddc6
5 changed files with 7 additions and 9 deletions
@@ -194,7 +194,7 @@ class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringPass {
return IrFieldImpl(
enumEntry.startOffset, enumEntry.endOffset, JvmLoweredDeclarationOrigin.FIELD_FOR_ENUM_ENTRY,
fieldPropertyDescriptor,
IrExpressionBodyImpl(enumEntryInitializer.startOffset, enumEntryInitializer.endOffset, enumEntryInitializer)
IrExpressionBodyImpl(enumEntryInitializer)
)
}
@@ -45,7 +45,7 @@ class BodyGenerator(val scopeOwner: DeclarationDescriptor, override val context:
val ktDefaultValue = ktParameter.defaultValue ?: continue
val valueParameter = getOrFail(BindingContext.VALUE_PARAMETER, ktParameter) as? ValueParameterDescriptor ?: continue
val irDefaultValue = statementGenerator.generateExpression(ktDefaultValue)
irFunction.putDefault(valueParameter, IrExpressionBodyImpl(ktDefaultValue.startOffset, ktDefaultValue.endOffset, irDefaultValue))
irFunction.putDefault(valueParameter, IrExpressionBodyImpl(irDefaultValue))
}
}
@@ -64,8 +64,7 @@ class BodyGenerator(val scopeOwner: DeclarationDescriptor, override val context:
}
fun generatePropertyInitializerBody(ktInitializer: KtExpression): IrExpressionBody =
IrExpressionBodyImpl(ktInitializer.startOffset, ktInitializer.endOffset,
createStatementGenerator().generateExpression(ktInitializer))
IrExpressionBodyImpl(createStatementGenerator().generateExpression(ktInitializer))
fun generateLambdaBody(ktFun: KtFunctionLiteral): IrBody {
val statementGenerator = createStatementGenerator()
@@ -60,7 +60,7 @@ class PropertyGenerator(val declarationGenerator: DeclarationGenerator) : Genera
val irField = IrFieldImpl(ktParameter.startOffset, ktParameter.endOffset, IrDeclarationOrigin.PROPERTY_BACKING_FIELD, propertyDescriptor)
val irGetParameter = IrGetValueImpl(ktParameter.startOffset, ktParameter.endOffset,
valueParameterDescriptor, IrStatementOrigin.INITIALIZE_PROPERTY_FROM_PARAMETER)
irField.initializer = IrExpressionBodyImpl(ktParameter.startOffset, ktParameter.endOffset, irGetParameter)
irField.initializer = IrExpressionBodyImpl(irGetParameter)
irProperty.backingField = irField
val getter = propertyDescriptor.getter ?:
@@ -27,6 +27,8 @@ class IrExpressionBodyImpl(startOffset: Int, endOffset: Int) : IrElementBase(sta
this.expression = expression
}
constructor(expression: IrExpression) : this(expression.startOffset, expression.endOffset, expression)
override lateinit var expression: IrExpression
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
@@ -178,10 +178,7 @@ open class DeepCopyIrTree : IrElementTransformerVoid() {
throw IllegalArgumentException("Unsupported body type: $body")
override fun visitExpressionBody(body: IrExpressionBody): IrExpressionBody =
IrExpressionBodyImpl(
body.startOffset, body.endOffset,
body.expression.transform(this, null)
)
IrExpressionBodyImpl(body.expression.transform(this, null))
override fun visitBlockBody(body: IrBlockBody): IrBlockBody =
IrBlockBodyImpl(