From 0727e9055bb825edc939d0cdab645b4ffb0e6998 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 4 Aug 2020 11:26:27 +0200 Subject: [PATCH] JVM IR: use a simpler way to check if class is local --- .../kotlin/backend/jvm/codegen/IrTypeMapping.kt | 3 ++- .../src/org/jetbrains/kotlin/ir/util/IrUtils.kt | 11 ----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrTypeMapping.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrTypeMapping.kt index b4928093f12..d0fecb34e99 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrTypeMapping.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrTypeMapping.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.jvm.codegen import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.codegen.signature.JvmSignatureWriter import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.types.IrSimpleType import org.jetbrains.kotlin.ir.types.IrType @@ -62,7 +63,7 @@ private fun IrSimpleType.buildPossiblyInnerType(classifier: IrClass?, index: Int val toIndex = classifier.typeParameters.size + index if (!classifier.isInner) { - assert(toIndex == arguments.size || classifier.isLocalClass()) { + assert(toIndex == arguments.size || classifier.visibility == Visibilities.LOCAL) { "${arguments.size - toIndex} trailing arguments were found in this type: ${render()}" } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt index 2f5cdabc4cb..67cef961165 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt @@ -272,17 +272,6 @@ val IrDeclaration.parentAsClass: IrClass get() = parent as? IrClass ?: error("Parent of this declaration is not a class: ${render()}") -fun IrClass.isLocalClass(): Boolean { - var current: IrDeclarationParent? = this - while (current != null && current !is IrPackageFragment) { - if (current is IrDeclarationWithVisibility && current.visibility == Visibilities.LOCAL) - return true - current = (current as? IrDeclaration)?.parent - } - - return false -} - tailrec fun IrElement.getPackageFragment(): IrPackageFragment? { if (this is IrPackageFragment) return this return when (val parent = (this as? IrDeclaration)?.parent) {