From 5e786666e7cda797480f57ba178ed21b21a9feb4 Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Tue, 15 May 2018 16:12:46 +0300 Subject: [PATCH] [kotlin compiler][update] 1.2.60-dev-4 --- .../konan/lower/FinallyBlocksLowering.kt | 14 ++++++++------ .../backend/konan/lower/FunctionInlining.kt | 18 +++++++++++++++--- .../kotlin/ir/util/IrUnboundSymbolReplacer.kt | 2 +- gradle.properties | 4 ++-- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt index fb156f1a502..6fa668ccdb4 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt @@ -33,11 +33,12 @@ import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl import org.jetbrains.kotlin.ir.descriptors.IrTemporaryVariableDescriptorImpl import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.* -import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol +import org.jetbrains.kotlin.ir.symbols.IrReturnTargetSymbol import org.jetbrains.kotlin.ir.symbols.IrReturnableBlockSymbol import org.jetbrains.kotlin.ir.symbols.impl.IrReturnableBlockSymbolImpl import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.typeUtil.isNothing import org.jetbrains.kotlin.types.typeUtil.isUnit @@ -48,9 +49,9 @@ internal class FinallyBlocksLowering(val context: Context): FileLoweringPass, Ir fun toIr(context: Context, startOffset: Int, endOffset: Int, value: IrExpression): IrExpression } - private data class Return(val target: IrFunctionSymbol): HighLevelJump { + private data class Return(val target: IrReturnTargetSymbol): HighLevelJump { override fun toIr(context: Context, startOffset: Int, endOffset: Int, value: IrExpression) - = IrReturnImpl(startOffset, endOffset, target, value) + = IrReturnImpl(startOffset, endOffset, context.builtIns.nothingType, target, value) } private data class Break(val loop: IrLoop): HighLevelJump { @@ -80,7 +81,7 @@ internal class FinallyBlocksLowering(val context: Context): FileLoweringPass, Ir private class TryScope(var expression: IrExpression, val finallyExpression: IrExpression, val irBuilder: IrBuilderWithScope): Scope() { - val jumps = mutableMapOf() + val jumps = mutableMapOf() } private val scopeStack = mutableListOf() @@ -200,6 +201,7 @@ internal class FinallyBlocksLowering(val context: Context): FileLoweringPass, Ir return IrReturnImpl( startOffset = startOffset, endOffset = endOffset, + type = context.builtIns.nothingType, returnTargetSymbol = it, value = value) } @@ -288,8 +290,8 @@ internal class FinallyBlocksLowering(val context: Context): FileLoweringPass, Ir private inline fun T.copy() = this.deepCopyWithVariables() - fun IrBuilderWithScope.irReturn(target: IrFunctionSymbol, value: IrExpression) = - IrReturnImpl(startOffset, endOffset, target, value) + fun IrBuilderWithScope.irReturn(target: IrReturnTargetSymbol, value: IrExpression) = + IrReturnImpl(startOffset, endOffset, context.builtIns.nothingType, target, value) inline fun IrBuilderWithScope.irReturnableBlock(symbol: IrReturnableBlockSymbol, body: IrBlockBuilder.() -> Unit) = IrReturnableBlockImpl(startOffset, endOffset, symbol.descriptor.returnType!!, symbol, null, diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt index a3e5b4f8657..ff4670e2420 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt @@ -31,21 +31,25 @@ import org.jetbrains.kotlin.backend.konan.ir.DeserializerDriver import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrStatement +import org.jetbrains.kotlin.ir.builders.IrBuilderWithScope import org.jetbrains.kotlin.ir.builders.irCall import org.jetbrains.kotlin.ir.builders.irGet -import org.jetbrains.kotlin.ir.builders.irReturn import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrModuleFragment import org.jetbrains.kotlin.ir.declarations.getDefault import org.jetbrains.kotlin.ir.expressions.* -import org.jetbrains.kotlin.ir.expressions.impl.* +import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl +import org.jetbrains.kotlin.ir.expressions.impl.IrReturnImpl +import org.jetbrains.kotlin.ir.expressions.impl.IrReturnableBlockImpl +import org.jetbrains.kotlin.ir.expressions.impl.IrVarargImpl +import org.jetbrains.kotlin.ir.symbols.IrReturnTargetSymbol import org.jetbrains.kotlin.ir.symbols.impl.IrReturnableBlockSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.createValueSymbol import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.calls.components.hasDefaultValue +import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.inline.InlineUtil import org.jetbrains.kotlin.types.TypeConstructor import org.jetbrains.kotlin.types.TypeProjection @@ -183,6 +187,14 @@ private class Inliner(val globalSubstituteMap: MutableMap() + private val returnTargetStack = mutableListOf() override fun visitFunction(declaration: IrFunction): IrStatement { returnTargetStack.push(declaration.symbol) diff --git a/gradle.properties b/gradle.properties index e562ac80756..61cd64d87ce 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,8 +20,8 @@ remoteRoot=konan_tests #kotlinCompilerModule=org.jetbrains.kotlin:kotlin-compiler:1.1-SNAPSHOT # Download artifacts of https://teamcity.jetbrains.com/viewType.html?buildTypeId=Kotlin_120_Compiler testDataVersion=1226829:id -kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.2.50-dev-1148,tag:kotlin-native,pinned:true/artifacts/content/maven -kotlinVersion=1.2.50-dev-1148 +kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.2.60-dev-4,tag:kotlin-native,pinned:true/artifacts/content/maven +kotlinVersion=1.2.60-dev-4 konanVersion=0.8 org.gradle.jvmargs='-Dfile.encoding=UTF-8'