[kotlin compiler][update] 1.2.60-dev-4
This commit is contained in:
+8
-6
@@ -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<HighLevelJump, IrFunctionSymbol>()
|
||||
val jumps = mutableMapOf<HighLevelJump, IrReturnTargetSymbol>()
|
||||
}
|
||||
|
||||
private val scopeStack = mutableListOf<Scope>()
|
||||
@@ -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 <reified T : IrElement> 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,
|
||||
|
||||
+15
-3
@@ -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<DeclarationDescriptor,
|
||||
return inlineFunctionBody // Replace call site with InlineFunctionBody.
|
||||
}
|
||||
|
||||
// TODO: this function from ExpressionsHelper.kt with fixed type cast, this method will be fixed soon on Kotlin master.
|
||||
// TODO: this function should be removed.
|
||||
fun IrBuilderWithScope.irReturn(value: IrExpression) =
|
||||
IrReturnImpl(
|
||||
startOffset, endOffset, context.builtIns.nothingType,
|
||||
scope.scopeOwnerSymbol as? IrReturnTargetSymbol ?: error("Function scope expected: ${scope.scopeOwner}"),
|
||||
value
|
||||
)
|
||||
//---------------------------------------------------------------------//
|
||||
|
||||
private inner class ParameterSubstitutor: IrElementTransformerVoid() {
|
||||
|
||||
+1
-1
@@ -354,7 +354,7 @@ private class IrUnboundSymbolReplacer(
|
||||
}
|
||||
}
|
||||
|
||||
private val returnTargetStack = mutableListOf<IrFunctionSymbol>()
|
||||
private val returnTargetStack = mutableListOf<IrReturnTargetSymbol>()
|
||||
|
||||
override fun visitFunction(declaration: IrFunction): IrStatement {
|
||||
returnTargetStack.push(declaration.symbol)
|
||||
|
||||
+2
-2
@@ -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'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user