From f028d6c898cdf4549c24211e988a5d7d6c22ccff Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Fri, 19 Jun 2020 00:00:54 +0300 Subject: [PATCH] Move interpreter files to separate module --- .../backend/evaluate/IrConstTransformer.kt | 8 ++--- compiler/ir/backend.common/build.gradle.kts | 4 +-- compiler/ir/ir.interpreter/build.gradle.kts | 3 +- .../ir}/interpreter/IrCompileTimeChecker.kt | 8 ++--- .../kotlin/ir}/interpreter/IrInterpreter.kt | 20 +++++------ .../jetbrains/kotlin/ir}/interpreter/Label.kt | 8 ++--- .../jetbrains/kotlin/ir}/interpreter/Utils.kt | 34 +++++++++++++------ .../interpreter/builtins/CompileTimeUtils.kt | 2 +- .../builtins/IrBuiltInsMapGenerated.kt | 4 +-- .../exceptions/InterpreterException.kt | 2 +- .../InterpreterMethodNotFoundException.kt | 4 +-- .../exceptions/InterpreterTimeOutException.kt | 2 +- .../intrinsics/IntrinsicEvaluator.kt | 8 ++--- .../intrinsics/IntrinsicImplementations.kt | 10 +++--- .../kotlin/ir}/interpreter/stack/Frame.kt | 6 ++-- .../kotlin/ir}/interpreter/stack/Stack.kt | 10 +++--- .../kotlin/ir}/interpreter/stack/Variable.kt | 4 +-- .../kotlin/ir}/interpreter/state/Common.kt | 6 ++-- .../kotlin/ir}/interpreter/state/Complex.kt | 8 ++--- .../ir}/interpreter/state/ExceptionState.kt | 8 ++--- .../kotlin/ir}/interpreter/state/Lambda.kt | 6 ++-- .../kotlin/ir}/interpreter/state/Primitive.kt | 6 ++-- .../kotlin/ir}/interpreter/state/State.kt | 4 +-- .../kotlin/ir}/interpreter/state/Wrapper.kt | 11 +++--- generators/evaluate/GenerateBuiltInsMap.kt | 6 ++-- 25 files changed, 101 insertions(+), 91 deletions(-) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/IrCompileTimeChecker.kt (97%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/IrInterpreter.kt (98%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/Label.kt (93%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/Utils.kt (89%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/builtins/CompileTimeUtils.kt (96%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/builtins/IrBuiltInsMapGenerated.kt (99%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/exceptions/InterpreterException.kt (81%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/exceptions/InterpreterMethodNotFoundException.kt (72%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/exceptions/InterpreterTimeOutException.kt (82%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/intrinsics/IntrinsicEvaluator.kt (83%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/intrinsics/IntrinsicImplementations.kt (96%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/stack/Frame.kt (92%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/stack/Stack.kt (93%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/stack/Variable.kt (75%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/state/Common.kt (92%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/state/Complex.kt (92%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/state/ExceptionState.kt (96%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/state/Lambda.kt (88%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/state/Primitive.kt (92%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/state/State.kt (95%) rename compiler/ir/{backend.common/src/org/jetbrains/kotlin/backend/common => ir.interpreter/src/org/jetbrains/kotlin/ir}/interpreter/state/Wrapper.kt (95%) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/evaluate/IrConstTransformer.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/evaluate/IrConstTransformer.kt index cc1af1b9821..64dff20e62e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/evaluate/IrConstTransformer.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/evaluate/IrConstTransformer.kt @@ -5,10 +5,10 @@ package org.jetbrains.kotlin.fir.backend.evaluate -import org.jetbrains.kotlin.backend.common.interpreter.EvaluationMode -import org.jetbrains.kotlin.backend.common.interpreter.IrCompileTimeChecker -import org.jetbrains.kotlin.backend.common.interpreter.IrInterpreter -import org.jetbrains.kotlin.backend.common.interpreter.toIrConst +import org.jetbrains.kotlin.ir.interpreter.EvaluationMode +import org.jetbrains.kotlin.ir.interpreter.IrCompileTimeChecker +import org.jetbrains.kotlin.ir.interpreter.IrInterpreter +import org.jetbrains.kotlin.ir.interpreter.toIrConst import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrField diff --git a/compiler/ir/backend.common/build.gradle.kts b/compiler/ir/backend.common/build.gradle.kts index 55738fff7d1..6c1ddf28eff 100644 --- a/compiler/ir/backend.common/build.gradle.kts +++ b/compiler/ir/backend.common/build.gradle.kts @@ -8,10 +8,8 @@ dependencies { compile(project(":compiler:frontend")) compile(project(":compiler:backend-common")) compile(project(":compiler:ir.tree")) + compile(project(":compiler:ir.interpreter")) compileOnly(intellijCoreDep()) { includeJars("intellij-core") } - compileOnly(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { // primary used in ir interpreter - isTransitive = false - } } sourceSets { diff --git a/compiler/ir/ir.interpreter/build.gradle.kts b/compiler/ir/ir.interpreter/build.gradle.kts index 417178fa9c8..13a919c9c95 100644 --- a/compiler/ir/ir.interpreter/build.gradle.kts +++ b/compiler/ir/ir.interpreter/build.gradle.kts @@ -4,7 +4,8 @@ plugins { } dependencies { - + compile(project(":compiler:ir.tree")) + compileOnly(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false } } sourceSets { diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/IrCompileTimeChecker.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrCompileTimeChecker.kt similarity index 97% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/IrCompileTimeChecker.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrCompileTimeChecker.kt index 0530c5a85d7..295660ba5db 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/IrCompileTimeChecker.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrCompileTimeChecker.kt @@ -3,11 +3,11 @@ * 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.interpreter +package org.jetbrains.kotlin.ir.interpreter -import org.jetbrains.kotlin.backend.common.interpreter.builtins.compileTimeAnnotation -import org.jetbrains.kotlin.backend.common.interpreter.builtins.contractsDslAnnotation -import org.jetbrains.kotlin.backend.common.interpreter.builtins.evaluateIntrinsicAnnotation +import org.jetbrains.kotlin.ir.interpreter.builtins.compileTimeAnnotation +import org.jetbrains.kotlin.ir.interpreter.builtins.contractsDslAnnotation +import org.jetbrains.kotlin.ir.interpreter.builtins.evaluateIntrinsicAnnotation import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.declarations.* diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/IrInterpreter.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt similarity index 98% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/IrInterpreter.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt index 09796d0917f..e2ad954debd 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/IrInterpreter.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt @@ -1,21 +1,21 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 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.interpreter +package org.jetbrains.kotlin.ir.interpreter import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext import kotlinx.coroutines.yield -import org.jetbrains.kotlin.backend.common.interpreter.builtins.* -import org.jetbrains.kotlin.backend.common.interpreter.exceptions.InterpreterException -import org.jetbrains.kotlin.backend.common.interpreter.exceptions.InterpreterMethodNotFoundException -import org.jetbrains.kotlin.backend.common.interpreter.exceptions.InterpreterTimeOutException -import org.jetbrains.kotlin.backend.common.interpreter.intrinsics.IntrinsicEvaluator -import org.jetbrains.kotlin.backend.common.interpreter.stack.StackImpl -import org.jetbrains.kotlin.backend.common.interpreter.stack.Variable -import org.jetbrains.kotlin.backend.common.interpreter.state.* +import org.jetbrains.kotlin.ir.interpreter.builtins.* +import org.jetbrains.kotlin.ir.interpreter.exceptions.InterpreterException +import org.jetbrains.kotlin.ir.interpreter.exceptions.InterpreterMethodNotFoundException +import org.jetbrains.kotlin.ir.interpreter.exceptions.InterpreterTimeOutException +import org.jetbrains.kotlin.ir.interpreter.intrinsics.IntrinsicEvaluator +import org.jetbrains.kotlin.ir.interpreter.stack.StackImpl +import org.jetbrains.kotlin.ir.interpreter.stack.Variable +import org.jetbrains.kotlin.ir.interpreter.state.* import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.declarations.* diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/Label.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Label.kt similarity index 93% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/Label.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Label.kt index 01ee08be3c6..97ca4dace29 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/Label.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Label.kt @@ -3,11 +3,11 @@ * 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.interpreter +package org.jetbrains.kotlin.ir.interpreter -import org.jetbrains.kotlin.backend.common.interpreter.stack.Stack -import org.jetbrains.kotlin.backend.common.interpreter.state.Primitive -import org.jetbrains.kotlin.backend.common.interpreter.state.isSubtypeOf +import org.jetbrains.kotlin.ir.interpreter.stack.Stack +import org.jetbrains.kotlin.ir.interpreter.state.Primitive +import org.jetbrains.kotlin.ir.interpreter.state.isSubtypeOf import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyFunction diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/Utils.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Utils.kt similarity index 89% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/Utils.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Utils.kt index c7cac0cd63c..05d9c8a654e 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/Utils.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Utils.kt @@ -1,22 +1,20 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 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.interpreter +package org.jetbrains.kotlin.ir.interpreter -import org.jetbrains.kotlin.backend.common.interpreter.builtins.evaluateIntrinsicAnnotation -import org.jetbrains.kotlin.backend.common.interpreter.stack.Variable -import org.jetbrains.kotlin.backend.common.interpreter.state.* -import org.jetbrains.kotlin.builtins.UnsignedTypes +import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.ir.interpreter.builtins.evaluateIntrinsicAnnotation +import org.jetbrains.kotlin.ir.interpreter.stack.Variable +import org.jetbrains.kotlin.ir.interpreter.state.* import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl -import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol -import org.jetbrains.kotlin.ir.symbols.IrSymbol -import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol -import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol +import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.name.FqName @@ -204,4 +202,18 @@ internal fun State?.getCorrectReceiverByFunction(irFunction: IrFunction): State? return generateSequence(original) { it.superClass }.firstOrNull { it.irClass.thisReceiver == other } ?: this } -internal fun IrFunction.getCapitalizedFileName() = this.file.name.replace(".kt", "Kt").capitalize() \ No newline at end of file +internal fun IrFunction.getCapitalizedFileName() = this.file.name.replace(".kt", "Kt").capitalize() + +internal fun IrType.isUnsigned() = this.isUByte() || this.isUShort() || this.isUInt() || this.isULong() + +internal fun IrType.isPrimitiveArray(): Boolean { + return this.getClass()?.fqNameWhenAvailable?.toUnsafe()?.let { KotlinBuiltIns.isPrimitiveArray(it) } ?: false +} + +internal fun IrType.isFunction() = this.getClass()?.fqNameWhenAvailable?.asString()?.startsWith("kotlin.Function") ?: false + +internal fun IrType.isTypeParameter() = classifierOrNull is IrTypeParameterSymbol + +internal fun IrType.isInterface() = classOrNull?.owner?.kind == ClassKind.INTERFACE + +internal fun IrType.isThrowable() = this.getClass()?.fqNameWhenAvailable?.asString() == "kotlin.Throwable" \ No newline at end of file diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/builtins/CompileTimeUtils.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/CompileTimeUtils.kt similarity index 96% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/builtins/CompileTimeUtils.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/CompileTimeUtils.kt index eb1cbd042ae..f41099998bb 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/builtins/CompileTimeUtils.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/CompileTimeUtils.kt @@ -3,7 +3,7 @@ * 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.interpreter.builtins +package org.jetbrains.kotlin.ir.interpreter.builtins import org.jetbrains.kotlin.name.FqName diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/builtins/IrBuiltInsMapGenerated.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/IrBuiltInsMapGenerated.kt similarity index 99% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/builtins/IrBuiltInsMapGenerated.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/IrBuiltInsMapGenerated.kt index 09d2cdf5e7e..287b33ec83d 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/builtins/IrBuiltInsMapGenerated.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/IrBuiltInsMapGenerated.kt @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.jetbrains.kotlin.backend.common.interpreter.builtins +package org.jetbrains.kotlin.ir.interpreter.builtins -import org.jetbrains.kotlin.backend.common.interpreter.state.* +import org.jetbrains.kotlin.ir.interpreter.state.* /** This file is generated by org.jetbrains.kotlin.backend.common.interpreter.builtins.GenerateBuiltInsMap.generateMap(). DO NOT MODIFY MANUALLY */ diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/exceptions/InterpreterException.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/exceptions/InterpreterException.kt similarity index 81% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/exceptions/InterpreterException.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/exceptions/InterpreterException.kt index e8d83070dee..4ac53b8ae15 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/exceptions/InterpreterException.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/exceptions/InterpreterException.kt @@ -3,7 +3,7 @@ * 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.interpreter.exceptions +package org.jetbrains.kotlin.ir.interpreter.exceptions open class InterpreterException(override val message: String) : Exception(message) { } \ No newline at end of file diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/exceptions/InterpreterMethodNotFoundException.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/exceptions/InterpreterMethodNotFoundException.kt similarity index 72% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/exceptions/InterpreterMethodNotFoundException.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/exceptions/InterpreterMethodNotFoundException.kt index ebb927f963e..8cf6941dd62 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/exceptions/InterpreterMethodNotFoundException.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/exceptions/InterpreterMethodNotFoundException.kt @@ -3,7 +3,7 @@ * 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.interpreter.exceptions +package org.jetbrains.kotlin.ir.interpreter.exceptions -class InterpreterMethodNotFoundException(override val message: String): InterpreterException(message) { +class InterpreterMethodNotFoundException(override val message: String) : InterpreterException(message) { } \ No newline at end of file diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/exceptions/InterpreterTimeOutException.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/exceptions/InterpreterTimeOutException.kt similarity index 82% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/exceptions/InterpreterTimeOutException.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/exceptions/InterpreterTimeOutException.kt index 7460311a260..9bf7c522f5e 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/exceptions/InterpreterTimeOutException.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/exceptions/InterpreterTimeOutException.kt @@ -3,7 +3,7 @@ * 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.interpreter.exceptions +package org.jetbrains.kotlin.ir.interpreter.exceptions class InterpreterTimeOutException : InterpreterException("Exceeded execution limit of constexpr expression") { diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/intrinsics/IntrinsicEvaluator.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicEvaluator.kt similarity index 83% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/intrinsics/IntrinsicEvaluator.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicEvaluator.kt index eed1260add5..a2be5ab4da2 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/intrinsics/IntrinsicEvaluator.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicEvaluator.kt @@ -3,11 +3,11 @@ * 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.interpreter.intrinsics +package org.jetbrains.kotlin.ir.interpreter.intrinsics -import org.jetbrains.kotlin.backend.common.interpreter.ExecutionResult -import org.jetbrains.kotlin.backend.common.interpreter.exceptions.InterpreterMethodNotFoundException -import org.jetbrains.kotlin.backend.common.interpreter.stack.Stack +import org.jetbrains.kotlin.ir.interpreter.ExecutionResult +import org.jetbrains.kotlin.ir.interpreter.exceptions.InterpreterMethodNotFoundException +import org.jetbrains.kotlin.ir.interpreter.stack.Stack import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFunction diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/intrinsics/IntrinsicImplementations.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicImplementations.kt similarity index 96% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/intrinsics/IntrinsicImplementations.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicImplementations.kt index e1bffd3a533..7325fcd2e23 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/intrinsics/IntrinsicImplementations.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicImplementations.kt @@ -3,13 +3,13 @@ * 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.interpreter.intrinsics +package org.jetbrains.kotlin.ir.interpreter.intrinsics import kotlinx.coroutines.runBlocking -import org.jetbrains.kotlin.backend.common.interpreter.* -import org.jetbrains.kotlin.backend.common.interpreter.stack.Stack -import org.jetbrains.kotlin.backend.common.interpreter.stack.Variable -import org.jetbrains.kotlin.backend.common.interpreter.state.* +import org.jetbrains.kotlin.ir.interpreter.* +import org.jetbrains.kotlin.ir.interpreter.stack.Stack +import org.jetbrains.kotlin.ir.interpreter.stack.Variable +import org.jetbrains.kotlin.ir.interpreter.state.* import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrEnumEntry diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/stack/Frame.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/stack/Frame.kt similarity index 92% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/stack/Frame.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/stack/Frame.kt index 44218099b93..51a131e02e3 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/stack/Frame.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/stack/Frame.kt @@ -1,11 +1,11 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 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.interpreter.stack +package org.jetbrains.kotlin.ir.interpreter.stack -import org.jetbrains.kotlin.backend.common.interpreter.state.State +import org.jetbrains.kotlin.ir.interpreter.state.State import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/stack/Stack.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/stack/Stack.kt similarity index 93% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/stack/Stack.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/stack/Stack.kt index c0f57fc3b0f..1a5e66332d9 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/stack/Stack.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/stack/Stack.kt @@ -3,12 +3,12 @@ * 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.interpreter.stack +package org.jetbrains.kotlin.ir.interpreter.stack -import org.jetbrains.kotlin.backend.common.interpreter.ExecutionResult -import org.jetbrains.kotlin.backend.common.interpreter.exceptions.InterpreterException -import org.jetbrains.kotlin.backend.common.interpreter.getCapitalizedFileName -import org.jetbrains.kotlin.backend.common.interpreter.state.State +import org.jetbrains.kotlin.ir.interpreter.ExecutionResult +import org.jetbrains.kotlin.ir.interpreter.exceptions.InterpreterException +import org.jetbrains.kotlin.ir.interpreter.getCapitalizedFileName +import org.jetbrains.kotlin.ir.interpreter.state.State import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.name import org.jetbrains.kotlin.ir.symbols.IrSymbol diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/stack/Variable.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/stack/Variable.kt similarity index 75% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/stack/Variable.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/stack/Variable.kt index 94b4d754860..f8d1272d632 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/stack/Variable.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/stack/Variable.kt @@ -3,9 +3,9 @@ * 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.interpreter.stack +package org.jetbrains.kotlin.ir.interpreter.stack -import org.jetbrains.kotlin.backend.common.interpreter.state.State +import org.jetbrains.kotlin.ir.interpreter.state.State import org.jetbrains.kotlin.ir.symbols.IrSymbol // TODO maybe switch to typealias and use map instead of list diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Common.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Common.kt similarity index 92% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Common.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Common.kt index fb8039de8fb..422c19e9dff 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Common.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Common.kt @@ -3,15 +3,15 @@ * 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.interpreter.state +package org.jetbrains.kotlin.ir.interpreter.state -import org.jetbrains.kotlin.backend.common.interpreter.stack.Variable +import org.jetbrains.kotlin.ir.interpreter.isInterface +import org.jetbrains.kotlin.ir.interpreter.stack.Variable import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.types.classOrNull import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization -import org.jetbrains.kotlin.ir.util.isInterface internal class Common private constructor( override val irClass: IrClass, override val fields: MutableList diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Complex.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Complex.kt similarity index 92% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Complex.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Complex.kt index fb4b9725976..e5334656caa 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Complex.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Complex.kt @@ -3,11 +3,11 @@ * 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.interpreter.state +package org.jetbrains.kotlin.ir.interpreter.state -import org.jetbrains.kotlin.backend.common.interpreter.getCorrectReceiverByFunction -import org.jetbrains.kotlin.backend.common.interpreter.getLastOverridden -import org.jetbrains.kotlin.backend.common.interpreter.stack.Variable +import org.jetbrains.kotlin.ir.interpreter.getCorrectReceiverByFunction +import org.jetbrains.kotlin.ir.interpreter.getLastOverridden +import org.jetbrains.kotlin.ir.interpreter.stack.Variable import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrProperty diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/ExceptionState.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/ExceptionState.kt similarity index 96% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/ExceptionState.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/ExceptionState.kt index 489291f7f8b..1fdd552da07 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/ExceptionState.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/ExceptionState.kt @@ -3,11 +3,11 @@ * 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.interpreter.state +package org.jetbrains.kotlin.ir.interpreter.state -import org.jetbrains.kotlin.backend.common.interpreter.getLastOverridden -import org.jetbrains.kotlin.backend.common.interpreter.stack.Variable -import org.jetbrains.kotlin.backend.common.interpreter.toState +import org.jetbrains.kotlin.ir.interpreter.getLastOverridden +import org.jetbrains.kotlin.ir.interpreter.stack.Variable +import org.jetbrains.kotlin.ir.interpreter.toState import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrProperty import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Lambda.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Lambda.kt similarity index 88% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Lambda.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Lambda.kt index c8c97c0bb20..03e881ffed9 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Lambda.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Lambda.kt @@ -3,10 +3,10 @@ * 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.interpreter.state +package org.jetbrains.kotlin.ir.interpreter.state -import org.jetbrains.kotlin.backend.common.interpreter.getLastOverridden -import org.jetbrains.kotlin.backend.common.interpreter.stack.Variable +import org.jetbrains.kotlin.ir.interpreter.getLastOverridden +import org.jetbrains.kotlin.ir.interpreter.stack.Variable import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Primitive.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Primitive.kt similarity index 92% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Primitive.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Primitive.kt index 266e88288fb..8339550b53b 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Primitive.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Primitive.kt @@ -3,10 +3,10 @@ * 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.interpreter.state +package org.jetbrains.kotlin.ir.interpreter.state -import org.jetbrains.kotlin.backend.common.interpreter.getLastOverridden -import org.jetbrains.kotlin.backend.common.interpreter.stack.Variable +import org.jetbrains.kotlin.ir.interpreter.getLastOverridden +import org.jetbrains.kotlin.ir.interpreter.stack.Variable import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrProperty diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/State.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/State.kt similarity index 95% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/State.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/State.kt index 0f65a5fb25b..4b4cc3ec2d2 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/State.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/State.kt @@ -3,9 +3,9 @@ * 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.interpreter.state +package org.jetbrains.kotlin.ir.interpreter.state -import org.jetbrains.kotlin.backend.common.interpreter.stack.Variable +import org.jetbrains.kotlin.ir.interpreter.stack.Variable import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.expressions.IrCall diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Wrapper.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt similarity index 95% rename from compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Wrapper.kt rename to compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt index 62c085c8a05..e774ead9f94 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/state/Wrapper.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt @@ -3,13 +3,12 @@ * 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.interpreter.state +package org.jetbrains.kotlin.ir.interpreter.state -import org.jetbrains.kotlin.backend.common.interpreter.builtins.evaluateIntrinsicAnnotation -import org.jetbrains.kotlin.backend.common.interpreter.getEvaluateIntrinsicValue -import org.jetbrains.kotlin.backend.common.interpreter.getLastOverridden -import org.jetbrains.kotlin.backend.common.interpreter.getPrimitiveClass -import org.jetbrains.kotlin.backend.common.interpreter.hasAnnotation +import org.jetbrains.kotlin.ir.interpreter.builtins.evaluateIntrinsicAnnotation +import org.jetbrains.kotlin.ir.interpreter.* +import org.jetbrains.kotlin.ir.interpreter.getEvaluateIntrinsicValue +import org.jetbrains.kotlin.ir.interpreter.getPrimitiveClass import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrField import org.jetbrains.kotlin.ir.declarations.IrFunction diff --git a/generators/evaluate/GenerateBuiltInsMap.kt b/generators/evaluate/GenerateBuiltInsMap.kt index 8f6734474ac..48f576aba1a 100644 --- a/generators/evaluate/GenerateBuiltInsMap.kt +++ b/generators/evaluate/GenerateBuiltInsMap.kt @@ -18,15 +18,15 @@ import org.jetbrains.kotlin.ir.types.impl.originalKotlinType import org.jetbrains.kotlin.utils.Printer import java.io.File -val DESTINATION = File("compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/interpreter/builtins/IrBuiltInsMapGenerated.kt") +val DESTINATION = File("compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/IrBuiltInsMapGenerated.kt") fun generateMap(irBuiltIns: IrBuiltIns): String { val sb = StringBuilder() val p = Printer(sb) p.println(File("license/COPYRIGHT.txt").readText()) - p.println("package org.jetbrains.kotlin.backend.common.interpreter.builtins") + p.println("package org.jetbrains.kotlin.ir.interpreter.builtins") p.println() - p.println("import org.jetbrains.kotlin.backend.common.interpreter.state.*") + p.println("import org.jetbrains.kotlin.ir.interpreter.state.*") p.println() p.println("/** This file is generated by org.jetbrains.kotlin.backend.common.interpreter.builtins.GenerateBuiltInsMap.generateMap(). DO NOT MODIFY MANUALLY */") p.println()