diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/ExpectSymbolTransformer.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/ExpectSymbolTransformer.kt index dc17d977f37..dae14523246 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/ExpectSymbolTransformer.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/ExpectSymbolTransformer.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol +import org.jetbrains.kotlin.ir.util.isExpect import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid /** diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/descriptorBasedUtils.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/descriptorBasedUtils.kt deleted file mode 100644 index 71505ebf9e1..00000000000 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/descriptorBasedUtils.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.backend.common.ir - -import org.jetbrains.kotlin.ir.declarations.* - -val IrDeclaration.isExpect - get() = this is IrClass && isExpect || - this is IrFunction && isExpect || - this is IrProperty && isExpect - -// The original isExpect represents what user has written. -// This predicate means "there can possibly exist an 'actual' for the given declaration". -// Shouldn't it be incorporated to descriptor -> ir declaration psi2ir translation phase? -val IrDeclaration.isProperExpect: Boolean - get() = this is IrClass && isExpect || - this is IrFunction && isExpect || - this is IrProperty && isExpect || - (this is IrClass || this is IrFunction || this is IrProperty || this is IrEnumEntry || this is IrTypeParameter) - && (this.parent as? IrDeclaration)?.isProperExpect ?: false - diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/export/ExportModelGenerator.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/export/ExportModelGenerator.kt index ac89f96e6d1..13d3bf63ded 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/export/ExportModelGenerator.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/export/ExportModelGenerator.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.ir.backend.js.export -import org.jetbrains.kotlin.backend.common.ir.isExpect +import org.jetbrains.kotlin.ir.util.isExpect import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.DescriptorVisibilities diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt index 5cf711bb597..6df1076eda1 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.ir.backend.js.lower import org.jetbrains.kotlin.backend.common.BodyLoweringPass import org.jetbrains.kotlin.backend.common.DeclarationTransformer import org.jetbrains.kotlin.backend.common.getOrPut -import org.jetbrains.kotlin.backend.common.ir.isExpect +import org.jetbrains.kotlin.ir.util.isExpect import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.lower.irBlockBody import org.jetbrains.kotlin.backend.common.lower.irIfThen diff --git a/compiler/ir/ir.actualization/src/main/kotlin/org/jetbrains/kotlin/backend/common/actualizer/FakeOverridesActualizer.kt b/compiler/ir/ir.actualization/src/main/kotlin/org/jetbrains/kotlin/backend/common/actualizer/FakeOverridesActualizer.kt index e96aa67cc92..3a705d2bada 100644 --- a/compiler/ir/ir.actualization/src/main/kotlin/org/jetbrains/kotlin/backend/common/actualizer/FakeOverridesActualizer.kt +++ b/compiler/ir/ir.actualization/src/main/kotlin/org/jetbrains/kotlin/backend/common/actualizer/FakeOverridesActualizer.kt @@ -5,13 +5,13 @@ package org.jetbrains.kotlin.backend.common.actualizer -import org.jetbrains.kotlin.backend.common.ir.isExpect import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrDeclaration import org.jetbrains.kotlin.ir.declarations.IrDeclarationBase import org.jetbrains.kotlin.ir.declarations.IrOverridableDeclaration import org.jetbrains.kotlin.ir.symbols.IrSymbol +import org.jetbrains.kotlin.ir.util.isExpect import org.jetbrains.kotlin.ir.util.isFakeOverride import org.jetbrains.kotlin.ir.util.transformInPlace import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid 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 099e960f33d..62faf52e1f6 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 @@ -1570,4 +1570,9 @@ val IrDeclaration.parentsWithSelf: Sequence get() = generateSequence(this as? IrDeclarationParent) { (it as? IrDeclaration)?.parent } val IrDeclaration.parents: Sequence - get() = generateSequence(parent) { (it as? IrDeclaration)?.parent } \ No newline at end of file + get() = generateSequence(parent) { (it as? IrDeclaration)?.parent } + +val IrDeclaration.isExpect + get() = this is IrClass && isExpect || + this is IrFunction && isExpect || + this is IrProperty && isExpect \ No newline at end of file diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsExportUtils.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsExportUtils.kt index 77f1cfba575..9074dde775a 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsExportUtils.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsExportUtils.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir -import org.jetbrains.kotlin.backend.common.ir.isExpect +import org.jetbrains.kotlin.ir.util.isExpect import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer import org.jetbrains.kotlin.ir.declarations.IrDeclarationWithName import org.jetbrains.kotlin.ir.declarations.IrFile diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/klib/AbstractKlibIrTextTestCase.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/klib/AbstractKlibIrTextTestCase.kt index 241e8a9b987..ebfb329691d 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/klib/AbstractKlibIrTextTestCase.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/klib/AbstractKlibIrTextTestCase.kt @@ -9,7 +9,7 @@ import com.intellij.openapi.project.Project import com.intellij.psi.PsiElement import junit.framework.TestCase import org.jetbrains.kotlin.backend.common.CommonKLibResolver -import org.jetbrains.kotlin.backend.common.ir.isExpect +import org.jetbrains.kotlin.ir.util.isExpect import org.jetbrains.kotlin.backend.common.linkage.issues.checkNoUnboundSymbols import org.jetbrains.kotlin.backend.common.linkage.partial.PartialLinkageSupportForLinker import org.jetbrains.kotlin.backend.common.serialization.CompatibilityMode