Minor. Code clean

This commit is contained in:
Mikhael Bogdanov
2018-05-04 13:21:12 +02:00
parent fdbc863e60
commit 74fa7ee676
7 changed files with 9 additions and 26 deletions
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
interface DescriptorsFactory {
fun getFieldDescriptorForEnumEntry(enumEntryDescriptor: ClassDescriptor): PropertyDescriptor
fun getOuterThisFieldDescriptor(classDescriptor: ClassDescriptor): PropertyDescriptor
fun getOuterThisFieldDescriptor(innerClassDescriptor: ClassDescriptor): PropertyDescriptor
fun getInnerClassConstructorWithOuterThisParameter(innerClassConstructor: ClassConstructorDescriptor): IrConstructorSymbol
fun getFieldDescriptorForObjectInstance(objectDescriptor: ClassDescriptor): PropertyDescriptor
}
@@ -50,7 +50,8 @@ private class KCallableNamePropertyTransformer(val lower: KCallableNamePropertyL
//TODO rewrite checking
val directMember = DescriptorUtils.getDirectMember(expression.descriptor)
if (!((directMember.containingDeclaration as? ClassDescriptor)?.defaultType?.isKFunctionType ?: false)) return expression
val classDescriptor = directMember.containingDeclaration as? ClassDescriptor ?: return expression
if (!classDescriptor.defaultType.isKFunctionType) return expression
if (directMember.name.asString() != "name") return expression
val receiver = callableReference.dispatchReceiver ?: callableReference.extensionReceiver
@@ -48,7 +48,7 @@ class LateinitLowering(
private fun transformGetter(backingFieldSymbol: IrFieldSymbol, getter: IrFunction) {
val type = backingFieldSymbol.descriptor.type
assert(!KotlinBuiltIns.isPrimitiveType(type), { "'lateinit' modifier is not allowed on primitive types" })
assert(!KotlinBuiltIns.isPrimitiveType(type)) { "'lateinit' modifier is not allowed on primitive types" }
val startOffset = getter.startOffset
val endOffset = getter.endOffset
val irBuilder = context.createIrBuilder(getter.symbol, startOffset, endOffset)
@@ -149,7 +149,7 @@ class LocalDeclarationsLowering(val context: BackendContext, val localNameProvid
}
override fun toString(): String =
"LocalClassContext for ${descriptor}"
"LocalClassContext for $descriptor"
}
private inner class LocalDeclarationsTransformer(val memberDeclaration: IrDeclaration) {
@@ -270,14 +270,12 @@ class LocalDeclarationsLowering(val context: BackendContext, val localNameProvid
val oldCallee = expression.descriptor.original
val newCallee = transformedDeclarations[oldCallee] as IrConstructorSymbol? ?: return expression
val newExpression = IrDelegatingConstructorCallImpl(
return IrDelegatingConstructorCallImpl(
expression.startOffset, expression.endOffset,
newCallee,
newCallee.descriptor,
remapTypeArguments(expression, newCallee.descriptor)
).fillArguments(expression)
return newExpression
}
private fun <T : IrMemberAccessExpression> T.fillArguments(oldExpression: IrMemberAccessExpression): T {
@@ -159,9 +159,7 @@ class ClassCodegen private constructor(
// for each enclosing class and for each immediate member
val classDescriptor = classForInnerClassRecord()
if (classDescriptor != null) {
if (parentClassCodegen != null) {
parentClassCodegen.innerClasses.add(classDescriptor)
}
parentClassCodegen?.innerClasses?.add(classDescriptor)
var codegen: ClassCodegen? = this
while (codegen != null) {
@@ -40,10 +40,6 @@ class ConstAndJvmFieldPropertiesLowering : IrElementTransformerVoid(), FileLower
irFile.transformChildrenVoid(this)
}
override fun visitDeclaration(declaration: IrDeclaration): IrStatement {
return super.visitDeclaration(declaration)
}
override fun visitProperty(declaration: IrProperty): IrStatement {
if (JvmCodegenUtil.isConstOrHasJvmFieldAnnotation(declaration.descriptor)) {
/*Safe or need copy?*/
@@ -53,15 +49,8 @@ class ConstAndJvmFieldPropertiesLowering : IrElementTransformerVoid(), FileLower
return super.visitProperty(declaration)
}
override fun visitMemberAccess(expression: IrMemberAccessExpression): IrExpression {
return super.visitMemberAccess(expression)
}
override fun visitCall(expression: IrCall): IrExpression {
val descriptor = expression.descriptor
if (descriptor !is PropertyAccessorDescriptor) {
return super.visitCall(expression)
}
val descriptor = expression.descriptor as? PropertyAccessorDescriptor ?: return super.visitCall(expression)
val property = descriptor.correspondingProperty
if (JvmCodegenUtil.isConstOrHasJvmFieldAnnotation(property)) {
@@ -81,9 +81,6 @@ class ContextAnnotator(val state: GenerationState) : ClassLowerWithContext() {
private val IrClassContext.codegenContext: CodegenContext<*>
get() = context2Codegen[this]!!
private val ClassDescriptor.codegenContext: CodegenContext<*>
get() = class2Codegen[this]!!
override fun lowerBefore(irClass: IrClass, data: IrClassContext) {
val descriptor = irClass.descriptor
@@ -172,7 +169,7 @@ class SyntheticAccessorLowering(val context: JvmBackendContext) : FileLoweringPa
JvmCodegenUtil.getDirectMember(descriptor),
(expression as? IrCall)?.superQualifier
)
val accessor = Companion.actualAccessor(descriptor, directAccessor)
val accessor = actualAccessor(descriptor, directAccessor)
if (accessor is AccessorForCallableDescriptor<*> && descriptor !is AccessorForCallableDescriptor<*>) {
val isConstructor = descriptor is ConstructorDescriptor