[kotlin compiler][update] 1.3.20-dev-2191
cherry-picked from 7a6a47ce3
This commit is contained in:
@@ -96,9 +96,6 @@ class K2NativeCompilerArguments : CommonCompilerArguments() {
|
|||||||
@Argument(value="-Xcompatible-compiler-version", valueDescription = "<version>", description = "Assume the given compiler version to be binary compatible")
|
@Argument(value="-Xcompatible-compiler-version", valueDescription = "<version>", description = "Assume the given compiler version to be binary compatible")
|
||||||
var compatibleCompilerVersions: Array<String>? = null
|
var compatibleCompilerVersions: Array<String>? = null
|
||||||
|
|
||||||
@Argument(value = "-Xdisable", deprecatedName = "--disable", valueDescription = "<Phase>", description = "Disable backend phase")
|
|
||||||
var disablePhases: Array<String>? = null
|
|
||||||
|
|
||||||
@Argument(value = EMBED_BITCODE_FLAG, description = "Embed LLVM IR bitcode as data")
|
@Argument(value = EMBED_BITCODE_FLAG, description = "Embed LLVM IR bitcode as data")
|
||||||
var embedBitcode: Boolean = false
|
var embedBitcode: Boolean = false
|
||||||
|
|
||||||
@@ -116,9 +113,6 @@ class K2NativeCompilerArguments : CommonCompilerArguments() {
|
|||||||
)
|
)
|
||||||
var exportedLibraries: Array<String>? = null
|
var exportedLibraries: Array<String>? = null
|
||||||
|
|
||||||
@Argument(value= "-Xlist-phases", deprecatedName = "--list_phases", description = "List all backend phases")
|
|
||||||
var listPhases: Boolean = false
|
|
||||||
|
|
||||||
@Argument(value = "-Xprint-bitcode", deprecatedName = "--print_bitcode", description = "Print llvm bitcode")
|
@Argument(value = "-Xprint-bitcode", deprecatedName = "--print_bitcode", description = "Print llvm bitcode")
|
||||||
var printBitCode: Boolean = false
|
var printBitCode: Boolean = false
|
||||||
|
|
||||||
@@ -146,9 +140,6 @@ class K2NativeCompilerArguments : CommonCompilerArguments() {
|
|||||||
@Argument(value = "-Xtime", deprecatedName = "--time", description = "Report execution time for compiler phases")
|
@Argument(value = "-Xtime", deprecatedName = "--time", description = "Report execution time for compiler phases")
|
||||||
var timePhases: Boolean = false
|
var timePhases: Boolean = false
|
||||||
|
|
||||||
@Argument(value = "-Xverbose", deprecatedName = "--verbose", valueDescription = "<Phase>", description = "Trace phase execution")
|
|
||||||
var verbosePhases: Array<String>? = null
|
|
||||||
|
|
||||||
@Argument(value = "-Xverify-bitcode", deprecatedName = "--verify_bitcode", description = "Verify llvm bitcode after each method")
|
@Argument(value = "-Xverify-bitcode", deprecatedName = "--verify_bitcode", description = "Verify llvm bitcode after each method")
|
||||||
var verifyBitCode: Boolean = false
|
var verifyBitCode: Boolean = false
|
||||||
|
|
||||||
|
|||||||
+2
-5
@@ -102,8 +102,7 @@ internal val Context.getBoxFunction: (IrClass) -> IrSimpleFunction by Context.la
|
|||||||
val startOffset = inlinedClass.startOffset
|
val startOffset = inlinedClass.startOffset
|
||||||
val endOffset = inlinedClass.endOffset
|
val endOffset = inlinedClass.endOffset
|
||||||
|
|
||||||
IrFunctionImpl(startOffset, endOffset, IrDeclarationOrigin.DEFINED, descriptor).apply {
|
IrFunctionImpl(startOffset, endOffset, IrDeclarationOrigin.DEFINED, descriptor, returnType).apply {
|
||||||
this.returnType = returnType
|
|
||||||
this.valueParameters.add(IrValueParameterImpl(
|
this.valueParameters.add(IrValueParameterImpl(
|
||||||
startOffset,
|
startOffset,
|
||||||
endOffset,
|
endOffset,
|
||||||
@@ -164,9 +163,7 @@ internal val Context.getUnboxFunction: (IrClass) -> IrSimpleFunction by Context.
|
|||||||
val startOffset = inlinedClass.startOffset
|
val startOffset = inlinedClass.startOffset
|
||||||
val endOffset = inlinedClass.endOffset
|
val endOffset = inlinedClass.endOffset
|
||||||
|
|
||||||
IrFunctionImpl(startOffset, endOffset, IrDeclarationOrigin.DEFINED, descriptor).apply {
|
IrFunctionImpl(startOffset, endOffset, IrDeclarationOrigin.DEFINED, descriptor, returnType).apply {
|
||||||
this.returnType = returnType
|
|
||||||
|
|
||||||
this.valueParameters.add(IrValueParameterImpl(
|
this.valueParameters.add(IrValueParameterImpl(
|
||||||
startOffset,
|
startOffset,
|
||||||
endOffset,
|
endOffset,
|
||||||
|
|||||||
+2
-2
@@ -167,9 +167,9 @@ internal class SpecialDeclarationsFactory(val context: Context) {
|
|||||||
function.startOffset,
|
function.startOffset,
|
||||||
function.endOffset,
|
function.endOffset,
|
||||||
DECLARATION_ORIGIN_BRIDGE_METHOD(function),
|
DECLARATION_ORIGIN_BRIDGE_METHOD(function),
|
||||||
bridgeDescriptor
|
bridgeDescriptor,
|
||||||
|
returnType
|
||||||
).apply {
|
).apply {
|
||||||
this.returnType = returnType
|
|
||||||
this.parent = function.parent
|
this.parent = function.parent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-2
@@ -52,8 +52,12 @@ internal class EnumSpecialDeclarationsFactory(val context: Context) {
|
|||||||
val valuesField = IrFieldImpl(startOffset, endOffset, DECLARATION_ORIGIN_ENUM, valuesProperty, valuesType)
|
val valuesField = IrFieldImpl(startOffset, endOffset, DECLARATION_ORIGIN_ENUM, valuesProperty, valuesType)
|
||||||
|
|
||||||
val valuesGetterDescriptor = createValuesGetterDescriptor(enumClassDescriptor, implObjectDescriptor)
|
val valuesGetterDescriptor = createValuesGetterDescriptor(enumClassDescriptor, implObjectDescriptor)
|
||||||
val valuesGetter = IrFunctionImpl(startOffset, endOffset, DECLARATION_ORIGIN_ENUM, valuesGetterDescriptor).also {
|
val valuesGetter = IrFunctionImpl(
|
||||||
it.returnType = valuesType
|
startOffset, endOffset,
|
||||||
|
DECLARATION_ORIGIN_ENUM,
|
||||||
|
valuesGetterDescriptor,
|
||||||
|
valuesType
|
||||||
|
).also {
|
||||||
it.parent = implObject
|
it.parent = implObject
|
||||||
it.createDispatchReceiverParameter()
|
it.createDispatchReceiverParameter()
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -461,10 +461,10 @@ private val Context.getLoweredInlineClassConstructor: (IrConstructor) -> IrSimpl
|
|||||||
irConstructor.startOffset,
|
irConstructor.startOffset,
|
||||||
irConstructor.endOffset,
|
irConstructor.endOffset,
|
||||||
IrDeclarationOrigin.DEFINED,
|
IrDeclarationOrigin.DEFINED,
|
||||||
descriptor
|
descriptor,
|
||||||
|
irConstructor.returnType
|
||||||
).apply {
|
).apply {
|
||||||
parent = irConstructor.parent
|
parent = irConstructor.parent
|
||||||
returnType = irConstructor.returnType
|
|
||||||
irConstructor.valueParameters.mapTo(this.valueParameters) {
|
irConstructor.valueParameters.mapTo(this.valueParameters) {
|
||||||
it.copy(this.descriptor.valueParameters[it.index])
|
it.copy(this.descriptor.valueParameters[it.index])
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -101,10 +101,9 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
|
|||||||
jobFunction.startOffset,
|
jobFunction.startOffset,
|
||||||
jobFunction.endOffset,
|
jobFunction.endOffset,
|
||||||
IrDeclarationOrigin.DEFINED,
|
IrDeclarationOrigin.DEFINED,
|
||||||
runtimeJobDescriptor
|
runtimeJobDescriptor,
|
||||||
|
context.irBuiltIns.anyNType
|
||||||
).also {
|
).also {
|
||||||
it.returnType = context.irBuiltIns.anyNType
|
|
||||||
|
|
||||||
it.valueParameters += IrValueParameterImpl(
|
it.valueParameters += IrValueParameterImpl(
|
||||||
it.startOffset,
|
it.startOffset,
|
||||||
it.endOffset,
|
it.endOffset,
|
||||||
|
|||||||
+6
-6
@@ -285,9 +285,9 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass
|
|||||||
startOffset = startOffset,
|
startOffset = startOffset,
|
||||||
endOffset = endOffset,
|
endOffset = endOffset,
|
||||||
origin = DECLARATION_ORIGIN_FUNCTION_REFERENCE_IMPL,
|
origin = DECLARATION_ORIGIN_FUNCTION_REFERENCE_IMPL,
|
||||||
symbol = symbol).apply {
|
symbol = symbol,
|
||||||
|
returnType = functionReferenceClass.defaultType
|
||||||
returnType = functionReferenceClass.defaultType
|
).apply {
|
||||||
|
|
||||||
val irBuilder = context.createIrBuilder(this.symbol, startOffset, endOffset)
|
val irBuilder = context.createIrBuilder(this.symbol, startOffset, endOffset)
|
||||||
|
|
||||||
@@ -369,9 +369,9 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass
|
|||||||
startOffset = startOffset,
|
startOffset = startOffset,
|
||||||
endOffset = endOffset,
|
endOffset = endOffset,
|
||||||
origin = DECLARATION_ORIGIN_FUNCTION_REFERENCE_IMPL,
|
origin = DECLARATION_ORIGIN_FUNCTION_REFERENCE_IMPL,
|
||||||
symbol = ourSymbol).apply {
|
symbol = ourSymbol,
|
||||||
|
returnType = superFunctionSymbol.owner.returnType // FIXME: substitute
|
||||||
returnType = superFunctionSymbol.owner.returnType // FIXME: substitute
|
).apply {
|
||||||
|
|
||||||
val function = this
|
val function = this
|
||||||
val irBuilder = context.createIrBuilder(function.symbol, startOffset, endOffset)
|
val irBuilder = context.createIrBuilder(function.symbol, startOffset, endOffset)
|
||||||
|
|||||||
+7
-9
@@ -685,11 +685,10 @@ internal class DeepCopyIrTreeWithDescriptors(val targetDescriptor: FunctionDescr
|
|||||||
startOffset = declaration.startOffset,
|
startOffset = declaration.startOffset,
|
||||||
endOffset = declaration.endOffset,
|
endOffset = declaration.endOffset,
|
||||||
origin = mapDeclarationOrigin(declaration.origin),
|
origin = mapDeclarationOrigin(declaration.origin),
|
||||||
descriptor = descriptor
|
descriptor = descriptor,
|
||||||
|
returnType = context.ir.translateErased(descriptor.returnType!!),
|
||||||
|
body = declaration.body?.transform(this, null)
|
||||||
).also {
|
).also {
|
||||||
it.returnType = context.ir.translateErased(descriptor.returnType!!)
|
|
||||||
it.body = declaration.body?.transform(this, null)
|
|
||||||
|
|
||||||
it.setOverrides(context.ir.symbols.symbolTable)
|
it.setOverrides(context.ir.symbols.symbolTable)
|
||||||
}.transformParameters1(declaration)
|
}.transformParameters1(declaration)
|
||||||
}
|
}
|
||||||
@@ -700,11 +699,10 @@ internal class DeepCopyIrTreeWithDescriptors(val targetDescriptor: FunctionDescr
|
|||||||
startOffset = declaration.startOffset,
|
startOffset = declaration.startOffset,
|
||||||
endOffset = declaration.endOffset,
|
endOffset = declaration.endOffset,
|
||||||
origin = mapDeclarationOrigin(declaration.origin),
|
origin = mapDeclarationOrigin(declaration.origin),
|
||||||
descriptor = descriptor
|
descriptor = descriptor,
|
||||||
).also {
|
returnType = context.ir.translateErased(descriptor.returnType),
|
||||||
it.returnType = context.ir.translateErased(descriptor.returnType)
|
body = declaration.body?.transform(this, null)
|
||||||
it.body = declaration.body?.transform(this, null)
|
).transformParameters1(declaration)
|
||||||
}.transformParameters1(declaration)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FunctionDescriptor.getTypeParametersToTransform() =
|
private fun FunctionDescriptor.getTypeParametersToTransform() =
|
||||||
|
|||||||
+4
-5
@@ -520,11 +520,10 @@ internal class EnumClassLowering(val context: Context) : ClassLoweringPass {
|
|||||||
loweredConstructorDescriptor.returnType = enumConstructor.descriptor.returnType
|
loweredConstructorDescriptor.returnType = enumConstructor.descriptor.returnType
|
||||||
val loweredEnumConstructor = IrConstructorImpl(
|
val loweredEnumConstructor = IrConstructorImpl(
|
||||||
enumConstructor.startOffset, enumConstructor.endOffset, enumConstructor.origin,
|
enumConstructor.startOffset, enumConstructor.endOffset, enumConstructor.origin,
|
||||||
loweredConstructorDescriptor
|
loweredConstructorDescriptor,
|
||||||
).apply {
|
enumConstructor.returnType,
|
||||||
returnType = enumConstructor.returnType
|
enumConstructor.body!!
|
||||||
body = enumConstructor.body!! // will be transformed later
|
)
|
||||||
}
|
|
||||||
loweredEnumConstructor.valueParameters += valueParameters
|
loweredEnumConstructor.valueParameters += valueParameters
|
||||||
loweredEnumConstructor.parent = enumConstructor.parent
|
loweredEnumConstructor.parent = enumConstructor.parent
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -105,9 +105,8 @@ internal class InitializersLowering(val context: CommonBackendContext) : ClassLo
|
|||||||
val startOffset = irClass.startOffset
|
val startOffset = irClass.startOffset
|
||||||
val endOffset = irClass.endOffset
|
val endOffset = irClass.endOffset
|
||||||
val initializer = IrFunctionImpl(startOffset, endOffset, DECLARATION_ORIGIN_ANONYMOUS_INITIALIZER,
|
val initializer = IrFunctionImpl(startOffset, endOffset, DECLARATION_ORIGIN_ANONYMOUS_INITIALIZER,
|
||||||
initializerMethodDescriptor)
|
initializerMethodDescriptor, context.irBuiltIns.unitType)
|
||||||
|
|
||||||
initializer.returnType = context.irBuiltIns.unitType
|
|
||||||
initializer.body = IrBlockBodyImpl(startOffset, endOffset, initializers)
|
initializer.body = IrBlockBodyImpl(startOffset, endOffset, initializers)
|
||||||
|
|
||||||
initializer.parent = irClass
|
initializer.parent = irClass
|
||||||
|
|||||||
+4
-5
@@ -197,9 +197,9 @@ internal class InteropLoweringPart1(val context: Context) : IrBuildingTransforme
|
|||||||
|
|
||||||
return IrFunctionImpl(
|
return IrFunctionImpl(
|
||||||
constructor.startOffset, constructor.endOffset, OVERRIDING_INITIALIZER_BY_CONSTRUCTOR,
|
constructor.startOffset, constructor.endOffset, OVERRIDING_INITIALIZER_BY_CONSTRUCTOR,
|
||||||
resultDescriptor
|
resultDescriptor,
|
||||||
|
irClass.defaultType
|
||||||
).also { result ->
|
).also { result ->
|
||||||
result.returnType = irClass.defaultType
|
|
||||||
result.parent = irClass
|
result.parent = irClass
|
||||||
result.createDispatchReceiverParameter()
|
result.createDispatchReceiverParameter()
|
||||||
result.valueParameters += valueParameters
|
result.valueParameters += valueParameters
|
||||||
@@ -366,10 +366,9 @@ internal class InteropLoweringPart1(val context: Context) : IrBuildingTransforme
|
|||||||
val newFunction = IrFunctionImpl(
|
val newFunction = IrFunctionImpl(
|
||||||
function.startOffset, function.endOffset,
|
function.startOffset, function.endOffset,
|
||||||
IrDeclarationOrigin.DEFINED,
|
IrDeclarationOrigin.DEFINED,
|
||||||
newDescriptor
|
newDescriptor,
|
||||||
|
function.returnType
|
||||||
).apply {
|
).apply {
|
||||||
this.returnType = function.returnType
|
|
||||||
|
|
||||||
parameterTypes.mapIndexedTo(this.valueParameters) { index, it ->
|
parameterTypes.mapIndexedTo(this.valueParameters) { index, it ->
|
||||||
IrValueParameterImpl(
|
IrValueParameterImpl(
|
||||||
startOffset,
|
startOffset,
|
||||||
|
|||||||
+17
-21
@@ -445,9 +445,9 @@ internal class SuspendFunctionsLowering(val context: Context): FileLoweringPass
|
|||||||
startOffset = startOffset,
|
startOffset = startOffset,
|
||||||
endOffset = endOffset,
|
endOffset = endOffset,
|
||||||
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
||||||
symbol = symbol).apply {
|
symbol = symbol,
|
||||||
|
returnType = coroutineClass.defaultType
|
||||||
returnType = coroutineClass.defaultType
|
).apply {
|
||||||
|
|
||||||
this.valueParameters += constructorParameters
|
this.valueParameters += constructorParameters
|
||||||
|
|
||||||
@@ -509,9 +509,9 @@ internal class SuspendFunctionsLowering(val context: Context): FileLoweringPass
|
|||||||
startOffset = startOffset,
|
startOffset = startOffset,
|
||||||
endOffset = endOffset,
|
endOffset = endOffset,
|
||||||
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
||||||
symbol = symbol).apply {
|
symbol = symbol,
|
||||||
|
returnType = coroutineClass.defaultType
|
||||||
returnType = coroutineClass.defaultType
|
).apply {
|
||||||
|
|
||||||
this.valueParameters += constructorParameters
|
this.valueParameters += constructorParameters
|
||||||
|
|
||||||
@@ -580,9 +580,9 @@ internal class SuspendFunctionsLowering(val context: Context): FileLoweringPass
|
|||||||
startOffset = startOffset,
|
startOffset = startOffset,
|
||||||
endOffset = endOffset,
|
endOffset = endOffset,
|
||||||
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
||||||
symbol = symbol).apply {
|
symbol = symbol,
|
||||||
|
returnType = coroutineClass.defaultType
|
||||||
returnType = coroutineClass.defaultType
|
).apply {
|
||||||
parent = coroutineClass
|
parent = coroutineClass
|
||||||
|
|
||||||
this.valueParameters += parameters
|
this.valueParameters += parameters
|
||||||
@@ -660,9 +660,9 @@ internal class SuspendFunctionsLowering(val context: Context): FileLoweringPass
|
|||||||
startOffset = startOffset,
|
startOffset = startOffset,
|
||||||
endOffset = endOffset,
|
endOffset = endOffset,
|
||||||
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
||||||
symbol = symbol).apply {
|
symbol = symbol,
|
||||||
|
returnType = irFunction.returnType
|
||||||
returnType = irFunction.returnType
|
).apply {
|
||||||
parent = coroutineClass
|
parent = coroutineClass
|
||||||
|
|
||||||
valueParameters += parameters
|
valueParameters += parameters
|
||||||
@@ -719,9 +719,9 @@ internal class SuspendFunctionsLowering(val context: Context): FileLoweringPass
|
|||||||
startOffset = startOffset,
|
startOffset = startOffset,
|
||||||
endOffset = endOffset,
|
endOffset = endOffset,
|
||||||
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
origin = DECLARATION_ORIGIN_COROUTINE_IMPL,
|
||||||
symbol = symbol).apply {
|
symbol = symbol,
|
||||||
|
returnType = context.irBuiltIns.anyNType
|
||||||
returnType = context.irBuiltIns.anyNType
|
).apply {
|
||||||
parent = coroutineClass
|
parent = coroutineClass
|
||||||
|
|
||||||
this.createDispatchReceiverParameter()
|
this.createDispatchReceiverParameter()
|
||||||
@@ -946,9 +946,7 @@ internal class SuspendFunctionsLowering(val context: Context): FileLoweringPass
|
|||||||
CallableMemberDescriptor.Kind.SYNTHESIZED,
|
CallableMemberDescriptor.Kind.SYNTHESIZED,
|
||||||
SourceElement.NO_SOURCE).apply {
|
SourceElement.NO_SOURCE).apply {
|
||||||
initialize(null, null, emptyList(), emptyList(), context.builtIns.unitType, Modality.ABSTRACT, Visibilities.PRIVATE)
|
initialize(null, null, emptyList(), emptyList(), context.builtIns.unitType, Modality.ABSTRACT, Visibilities.PRIVATE)
|
||||||
}).apply {
|
}, context.irBuiltIns.unitType)
|
||||||
returnType = context.irBuiltIns.unitType
|
|
||||||
}
|
|
||||||
|
|
||||||
private val restoreState = IrFunctionImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.DEFINED,
|
private val restoreState = IrFunctionImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.DEFINED,
|
||||||
SimpleFunctionDescriptorImpl.create(
|
SimpleFunctionDescriptorImpl.create(
|
||||||
@@ -958,9 +956,7 @@ internal class SuspendFunctionsLowering(val context: Context): FileLoweringPass
|
|||||||
CallableMemberDescriptor.Kind.SYNTHESIZED,
|
CallableMemberDescriptor.Kind.SYNTHESIZED,
|
||||||
SourceElement.NO_SOURCE).apply {
|
SourceElement.NO_SOURCE).apply {
|
||||||
initialize(null, null, emptyList(), emptyList(), context.builtIns.unitType, Modality.ABSTRACT, Visibilities.PRIVATE)
|
initialize(null, null, emptyList(), emptyList(), context.builtIns.unitType, Modality.ABSTRACT, Visibilities.PRIVATE)
|
||||||
}).apply {
|
}, context.irBuiltIns.unitType)
|
||||||
returnType = context.irBuiltIns.unitType
|
|
||||||
}
|
|
||||||
|
|
||||||
private inner class ExpressionSlicer(val suspensionPointIdType: IrType): IrElementTransformerVoid() {
|
private inner class ExpressionSlicer(val suspensionPointIdType: IrType): IrElementTransformerVoid() {
|
||||||
// TODO: optimize - it has square complexity.
|
// TODO: optimize - it has square complexity.
|
||||||
|
|||||||
+13
-18
@@ -317,13 +317,11 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
: GetterBuilder(objectSymbol.typeWithoutArguments, testSuite, getterName) {
|
: GetterBuilder(objectSymbol.typeWithoutArguments, testSuite, getterName) {
|
||||||
|
|
||||||
override fun buildIr(): IrFunction = IrFunctionImpl(
|
override fun buildIr(): IrFunction = IrFunctionImpl(
|
||||||
UNDEFINED_OFFSET,
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET,
|
||||||
UNDEFINED_OFFSET,
|
|
||||||
TEST_SUITE_GENERATED_MEMBER,
|
TEST_SUITE_GENERATED_MEMBER,
|
||||||
symbol).apply {
|
symbol,
|
||||||
|
this@ObjectGetterBuilder.returnType
|
||||||
this.returnType = this@ObjectGetterBuilder.returnType
|
).apply {
|
||||||
|
|
||||||
val builder = context.createIrBuilder(symbol)
|
val builder = context.createIrBuilder(symbol)
|
||||||
createParameterDeclarations(context.ir.symbols.symbolTable)
|
createParameterDeclarations(context.ir.symbols.symbolTable)
|
||||||
body = builder.irBlockBody {
|
body = builder.irBlockBody {
|
||||||
@@ -342,13 +340,11 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
: GetterBuilder(classSymbol.typeWithStarProjections, testSuite, getterName) {
|
: GetterBuilder(classSymbol.typeWithStarProjections, testSuite, getterName) {
|
||||||
|
|
||||||
override fun buildIr() = IrFunctionImpl(
|
override fun buildIr() = IrFunctionImpl(
|
||||||
startOffset = UNDEFINED_OFFSET,
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET,
|
||||||
endOffset = UNDEFINED_OFFSET,
|
TEST_SUITE_GENERATED_MEMBER,
|
||||||
origin = TEST_SUITE_GENERATED_MEMBER,
|
symbol,
|
||||||
symbol = symbol).apply {
|
this@InstanceGetterBuilder.returnType
|
||||||
|
).apply {
|
||||||
this.returnType = this@InstanceGetterBuilder.returnType
|
|
||||||
|
|
||||||
val builder = context.createIrBuilder(symbol)
|
val builder = context.createIrBuilder(symbol)
|
||||||
createParameterDeclarations(context.ir.symbols.symbolTable)
|
createParameterDeclarations(context.ir.symbols.symbolTable)
|
||||||
body = builder.irBlockBody {
|
body = builder.irBlockBody {
|
||||||
@@ -377,12 +373,11 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
.single(predicate))
|
.single(predicate))
|
||||||
|
|
||||||
override fun buildIr() = IrConstructorImpl(
|
override fun buildIr() = IrConstructorImpl(
|
||||||
UNDEFINED_OFFSET,
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET,
|
||||||
UNDEFINED_OFFSET,
|
|
||||||
TEST_SUITE_GENERATED_MEMBER,
|
TEST_SUITE_GENERATED_MEMBER,
|
||||||
symbol).apply {
|
symbol,
|
||||||
|
testSuite.typeWithStarProjections
|
||||||
returnType = testSuite.typeWithStarProjections
|
).apply {
|
||||||
|
|
||||||
createParameterDeclarations(context.ir.symbols.symbolTable)
|
createParameterDeclarations(context.ir.symbols.symbolTable)
|
||||||
|
|
||||||
|
|||||||
+1
-4
@@ -1205,10 +1205,7 @@ internal class IrDeserializer(val context: Context,
|
|||||||
start: Int, end: Int, origin: IrDeclarationOrigin): IrFunction {
|
start: Int, end: Int, origin: IrDeclarationOrigin): IrFunction {
|
||||||
|
|
||||||
val body = deserializeStatement(proto.body)
|
val body = deserializeStatement(proto.body)
|
||||||
val function = IrFunctionImpl(start, end, origin, descriptor)
|
val function = IrFunctionImpl(start, end, origin, descriptor, descriptor.returnType!!.ir, body as IrBody)
|
||||||
|
|
||||||
function.returnType = descriptor.returnType!!.ir
|
|
||||||
function.body = body as IrBody
|
|
||||||
|
|
||||||
function.createParameterDeclarations(context.ir.symbols.symbolTable)
|
function.createParameterDeclarations(context.ir.symbols.symbolTable)
|
||||||
function.setOverrides(context.ir.symbols.symbolTable)
|
function.setOverrides(context.ir.symbols.symbolTable)
|
||||||
|
|||||||
+4
-4
@@ -106,9 +106,10 @@ private fun createFakeOverride(
|
|||||||
|
|
||||||
fun FunctionDescriptor.createFunction(): IrSimpleFunction = IrFunctionImpl(
|
fun FunctionDescriptor.createFunction(): IrSimpleFunction = IrFunctionImpl(
|
||||||
startOffset, endOffset,
|
startOffset, endOffset,
|
||||||
IrDeclarationOrigin.FAKE_OVERRIDE, this
|
IrDeclarationOrigin.FAKE_OVERRIDE,
|
||||||
|
this,
|
||||||
|
symbolTable.translateErased(this@createFunction.returnType!!)
|
||||||
).apply {
|
).apply {
|
||||||
returnType = symbolTable.translateErased(this@createFunction.returnType!!)
|
|
||||||
createParameterDeclarations(symbolTable)
|
createParameterDeclarations(symbolTable)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,9 +163,8 @@ private fun createFakeOverride(
|
|||||||
|
|
||||||
// TODO: this function doesn't substitute types.
|
// TODO: this function doesn't substitute types.
|
||||||
fun IrSimpleFunction.copyFake(descriptor: FunctionDescriptor): IrSimpleFunction = IrFunctionImpl(
|
fun IrSimpleFunction.copyFake(descriptor: FunctionDescriptor): IrSimpleFunction = IrFunctionImpl(
|
||||||
irClass.startOffset, irClass.endOffset, IrDeclarationOrigin.FAKE_OVERRIDE, descriptor
|
irClass.startOffset, irClass.endOffset, IrDeclarationOrigin.FAKE_OVERRIDE, descriptor, returnType
|
||||||
).also {
|
).also {
|
||||||
it.returnType = returnType
|
|
||||||
it.parent = irClass
|
it.parent = irClass
|
||||||
it.createDispatchReceiverParameter()
|
it.createDispatchReceiverParameter()
|
||||||
|
|
||||||
|
|||||||
@@ -1547,7 +1547,7 @@ task sort1(type: RunKonanTest) {
|
|||||||
// when KT-26315 is fixed.
|
// when KT-26315 is fixed.
|
||||||
task sortWith(type: RunStandaloneKonanTest) {
|
task sortWith(type: RunStandaloneKonanTest) {
|
||||||
source = "runtime/collections/SortWith.kt"
|
source = "runtime/collections/SortWith.kt"
|
||||||
flags = ['-tr', '--disable', 'devirtualization']
|
flags = ['-tr', '-Xdisable=devirtualization']
|
||||||
arguments = ['--ktest_logger=SILENT']
|
arguments = ['--ktest_logger=SILENT']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -18,9 +18,9 @@
|
|||||||
buildKotlinVersion=1.3.0-rc-116
|
buildKotlinVersion=1.3.0-rc-116
|
||||||
buildKotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_130_CompilerAllPlugins),number:1.3.0-rc-116,tag:kotlin-native,pinned:true/artifacts/content/maven
|
buildKotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_130_CompilerAllPlugins),number:1.3.0-rc-116,tag:kotlin-native,pinned:true/artifacts/content/maven
|
||||||
remoteRoot=konan_tests
|
remoteRoot=konan_tests
|
||||||
kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.3.20-dev-2050,tag:kotlin-native,pinned:true/artifacts/content/maven
|
kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.3.20-dev-2191,tag:kotlin-native,pinned:true/artifacts/content/maven
|
||||||
kotlinVersion=1.3.20-dev-2050
|
kotlinVersion=1.3.20-dev-2191
|
||||||
testKotlinVersion=1.3.20-dev-2050
|
testKotlinVersion=1.3.20-dev-2191
|
||||||
konanVersion=1.1.0
|
konanVersion=1.1.0
|
||||||
org.gradle.jvmargs='-Dfile.encoding=UTF-8'
|
org.gradle.jvmargs='-Dfile.encoding=UTF-8'
|
||||||
org.gradle.workers.max=4
|
org.gradle.workers.max=4
|
||||||
|
|||||||
Reference in New Issue
Block a user