From 74fa7ee676f2c4deb6ceb9ba3521d8b69f8b650a Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Fri, 4 May 2018 13:21:12 +0200 Subject: [PATCH] Minor. Code clean --- .../common/descriptors/DescriptorsFactory.kt | 2 +- .../common/lower/KCallableNamePropertyLowering.kt | 3 ++- .../kotlin/backend/common/lower/LateinitLowering.kt | 2 +- .../common/lower/LocalDeclarationsLowering.kt | 6 ++---- .../kotlin/backend/jvm/codegen/ClassCodegen.kt | 4 +--- .../jvm/lower/ConstAndJvmFieldPropertiesLowering.kt | 13 +------------ .../backend/jvm/lower/SyntheticAccessorLowering.kt | 5 +---- 7 files changed, 9 insertions(+), 26 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/DescriptorsFactory.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/DescriptorsFactory.kt index c9a185efc1f..26bd7b25a53 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/DescriptorsFactory.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/DescriptorsFactory.kt @@ -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 } \ No newline at end of file diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/KCallableNamePropertyLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/KCallableNamePropertyLowering.kt index 0f23b158578..6ce0cbb48b1 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/KCallableNamePropertyLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/KCallableNamePropertyLowering.kt @@ -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 diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LateinitLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LateinitLowering.kt index e38fce98db7..f91f614a171 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LateinitLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LateinitLowering.kt @@ -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) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt index 35bbb08bbc3..defefbda095 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt @@ -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.fillArguments(oldExpression: IrMemberAccessExpression): T { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt index 77c1df4af03..e4f63641f50 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt @@ -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) { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ConstAndJvmFieldPropertiesLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ConstAndJvmFieldPropertiesLowering.kt index e4329b93722..229524a9e67 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ConstAndJvmFieldPropertiesLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ConstAndJvmFieldPropertiesLowering.kt @@ -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)) { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt index 9fe6bbf3a21..0e7913d4d30 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt @@ -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