From 058bb728dfe9805ae346734c2c24d5b0444ee374 Mon Sep 17 00:00:00 2001 From: SvyatoslavScherbina Date: Wed, 5 Apr 2017 20:48:58 +0300 Subject: [PATCH] kotlin-compiler: 1.1-20170403.193854-443 (#452) --- .../kotlin/cli/bc/K2NativeCompilerArguments.java | 2 +- .../kotlin/backend/konan/KonanPlatform.kt | 2 +- .../jetbrains/kotlin/backend/konan/injection.kt | 14 ++++---------- .../kotlin/backend/konan/llvm/IrToBitcode.kt | 3 +-- .../konan/lower/CallableReferenceLowering.kt | 3 +-- .../konan/lower/DefaultArgumentStubGenerator.kt | 5 ++--- .../backend/konan/lower/EnumClassLowering.kt | 6 ++---- .../backend/konan/lower/InnerClassLowering.kt | 3 +-- .../serialization/KonanDescriptorSerializer.kt | 8 +++++--- .../konan/serialization/KonanSerializationUtil.kt | 3 ++- gradle.properties | 2 +- 11 files changed, 21 insertions(+), 30 deletions(-) diff --git a/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.java b/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.java index 56c5645991a..4b60934736d 100644 --- a/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.java +++ b/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.java @@ -16,9 +16,9 @@ package org.jetbrains.kotlin.cli.bc; -import com.sampullara.cli.Argument; import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments; import org.jetbrains.kotlin.cli.common.arguments.ValueDescription; +import org.jetbrains.kotlin.cli.common.parser.com.sampullara.cli.Argument; public class K2NativeCompilerArguments extends CommonCompilerArguments { @Argument(value = "output", alias = "o", description = "Output file path") diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPlatform.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPlatform.kt index a0a5c320da8..b6aff151f54 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPlatform.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPlatform.kt @@ -41,7 +41,7 @@ object KonanPlatform : TargetPlatform("Konan") { override val multiTargetPlatform = MultiTargetPlatform.Specific(platformName) override fun getDefaultImports(languageVersionSettings: LanguageVersionSettings): List { return Default.getDefaultImports(languageVersionSettings) + listOf( - ImportPath("konan.*") + ImportPath.fromString("konan.*") ) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/injection.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/injection.kt index 8f75090792c..055a9e84fa8 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/injection.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/injection.kt @@ -15,20 +15,15 @@ */ package org.jetbrains.kotlin.backend.konan -import org.jetbrains.kotlin.backend.konan.KonanPlatform import org.jetbrains.kotlin.config.LanguageVersionSettings +import org.jetbrains.kotlin.config.TargetPlatformVersion import org.jetbrains.kotlin.container.get import org.jetbrains.kotlin.container.useImpl import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.frontend.di.configureModule -import org.jetbrains.kotlin.incremental.components.LookupTracker -import org.jetbrains.kotlin.resolve.BindingTrace -import org.jetbrains.kotlin.resolve.CompilerEnvironment -import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer -import org.jetbrains.kotlin.resolve.createContainer -import org.jetbrains.kotlin.resolve.lazy.FileScopeProviderImpl +import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer import org.jetbrains.kotlin.resolve.lazy.ResolveSession import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory @@ -40,14 +35,13 @@ fun createTopDownAnalyzerForKonan( languageVersionSettings: LanguageVersionSettings ): LazyTopDownAnalyzer { val storageComponentContainer = createContainer("TopDownAnalyzerForKonan", KonanPlatform) { - configureModule(moduleContext, KonanPlatform, bindingTrace) + configureModule(moduleContext, KonanPlatform, TargetPlatformVersion.NoVersion, bindingTrace) useInstance(declarationProviderFactory) - useImpl() + useImpl() CompilerEnvironment.configure(this) - useInstance(LookupTracker.DO_NOTHING) useInstance(languageVersionSettings) useImpl() useImpl() diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt index c565dc0850a..144a7489780 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt @@ -46,7 +46,6 @@ import org.jetbrains.kotlin.types.typeUtil.isNothing import org.jetbrains.kotlin.types.typeUtil.isPrimitiveNumberType import org.jetbrains.kotlin.types.typeUtil.isTypeParameter import org.jetbrains.kotlin.types.typeUtil.isUnit -import org.jetbrains.kotlin.utils.addToStdlib.singletonList internal fun emitLLVM(context: Context) { @@ -307,7 +306,7 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid fun createInitCtor(ctorName: String, initNodePtr: LLVMValueRef) { val ctorFunction = LLVMAddFunction(context.llvmModule, ctorName, kVoidFuncType)!! // Create constructor function. codegen.prologue(ctorFunction, voidType) - codegen.call(context.llvm.appendToInitalizersTail, initNodePtr.singletonList()) // Add node to the tail of initializers list. + codegen.call(context.llvm.appendToInitalizersTail, listOf(initNodePtr)) // Add node to the tail of initializers list. codegen.ret(null) codegen.epilogue() diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt index 1c7df23b1ec..dd1adb21e32 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt @@ -42,7 +42,6 @@ import org.jetbrains.kotlin.ir.util.transformFlat import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.utils.addToStdlib.singletonList /** * This lowering pass lowers all [IrCallableReference]s to unbound ones. @@ -75,7 +74,7 @@ private fun lowerCallableReferences(lower: CallableReferenceLowering, } val transformer = CallableReferencesUnbinder(lower, containingDeclaration) declaration.transformChildrenVoid(transformer) - return declaration.singletonList() + transformer.createdFunctions + return listOf(declaration) + transformer.createdFunctions } private object DECLARATION_ORIGIN_FUNCTION_FOR_CALLABLE_REFERENCE : diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/DefaultArgumentStubGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/DefaultArgumentStubGenerator.kt index 384d39543fe..3c126acb019 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/DefaultArgumentStubGenerator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/DefaultArgumentStubGenerator.kt @@ -55,7 +55,6 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.hasDefaultValue import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.typeUtil.builtIns import org.jetbrains.kotlin.util.OperatorNameConventions -import org.jetbrains.kotlin.utils.addToStdlib.singletonList class DefaultArgumentStubGenerator internal constructor(val context: Context): DeclarationContainerLoweringPass { override fun lower(irDeclarationContainer: IrDeclarationContainer) { @@ -75,7 +74,7 @@ class DefaultArgumentStubGenerator internal constructor(val context: Context): D val functionDescriptor = irFunction.descriptor if (!functionDescriptor.needsDefaultArgumentsLowering) - return irFunction.singletonList() + return listOf(irFunction) val bodies = functionDescriptor.valueParameters .mapNotNull{irFunction.getDefault(it)} @@ -187,7 +186,7 @@ class DefaultArgumentStubGenerator internal constructor(val context: Context): D origin = DECLARATION_ORIGIN_FUNCTION_FOR_DEFAULT_PARAMETER, body = body)) } - return irFunction.singletonList() + return listOf(irFunction) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt index d3e64ed3137..233f30886fd 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt @@ -57,8 +57,6 @@ import org.jetbrains.kotlin.resolve.scopes.MemberScope import org.jetbrains.kotlin.script.getFileContents import org.jetbrains.kotlin.types.TypeProjectionImpl import org.jetbrains.kotlin.types.TypeSubstitutor -import org.jetbrains.kotlin.utils.addToStdlib.singletonList -import org.jetbrains.kotlin.utils.addToStdlib.singletonOrEmptyList internal class EnumSyntheticFunctionsBuilder(val context: Context) { fun buildValuesExpression(startOffset: Int, endOffset: Int, @@ -237,7 +235,7 @@ internal class EnumClassLowering(val context: Context) : ClassLoweringPass { private fun lowerEnumEntriesClasses() { irClass.declarations.transformFlat { declaration -> if (declaration is IrEnumEntry) { - declaration.singletonList() + lowerEnumEntryClass(declaration.correspondingClass).singletonOrEmptyList() + listOfNotNull(declaration, lowerEnumEntryClass(declaration.correspondingClass)) } else null } } @@ -256,7 +254,7 @@ internal class EnumClassLowering(val context: Context) : ClassLoweringPass { val endOffset = irClass.endOffset val descriptor = irClass.descriptor val defaultClassDescriptor = ClassDescriptorImpl(descriptor, "DEFAULT".synthesizedName, Modality.FINAL, - ClassKind.CLASS, descriptor.defaultType.singletonList(), SourceElement.NO_SOURCE, false) + ClassKind.CLASS, listOf(descriptor.defaultType), SourceElement.NO_SOURCE, false) val defaultClass = IrClassImpl(startOffset, endOffset, IrDeclarationOrigin.DEFINED, defaultClassDescriptor) val constructors = mutableSetOf() diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InnerClassLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InnerClassLowering.kt index 7ac07526113..430bbfd6304 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InnerClassLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InnerClassLowering.kt @@ -35,7 +35,6 @@ import org.jetbrains.kotlin.ir.util.transformFlat import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitClassReceiver -import org.jetbrains.kotlin.utils.addToStdlib.singletonList internal class InnerClassLowering(val context: Context) : ClassLoweringPass { override fun lower(irClass: IrClass) { @@ -71,7 +70,7 @@ internal class InnerClassLowering(val context: Context) : ClassLoweringPass { private fun lowerConstructors() { irClass.declarations.transformFlat { irMember -> if (irMember is IrConstructor) - lowerConstructor(irMember).singletonList() + listOf(lowerConstructor(irMember)) else null } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDescriptorSerializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDescriptorSerializer.kt index 098cbe20111..1a4629c37c6 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDescriptorSerializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDescriptorSerializer.kt @@ -72,7 +72,8 @@ class KonanDescriptorSerializer private constructor( val flags = Flags.getClassFlags( hasAnnotations(classDescriptor), classDescriptor.visibility, classDescriptor.modality, classDescriptor.kind, - classDescriptor.isInner, classDescriptor.isCompanionObject, classDescriptor.isData, classDescriptor.isExternal + classDescriptor.isInner, classDescriptor.isCompanionObject, classDescriptor.isData, classDescriptor.isExternal, + classDescriptor.isHeader ) if (flags != builder.flags) { builder.flags = flags @@ -195,7 +196,7 @@ class KonanDescriptorSerializer private constructor( val flags = Flags.getPropertyFlags( hasAnnotations, descriptor.visibility, descriptor.modality, descriptor.kind, descriptor.isVar, hasGetter, hasSetter, hasConstant, isConst, lateInit, descriptor.isExternal, - @Suppress("DEPRECATION") descriptor.isDelegated + @Suppress("DEPRECATION") descriptor.isDelegated, descriptor.isHeader ) if (flags != builder.flags) { builder.flags = flags @@ -240,7 +241,8 @@ class KonanDescriptorSerializer private constructor( val flags = Flags.getFunctionFlags( hasAnnotations(descriptor), descriptor.visibility, descriptor.modality, descriptor.kind, descriptor.isOperator, - descriptor.isInfix, descriptor.isInline, descriptor.isTailrec, descriptor.isExternal, descriptor.isSuspend + descriptor.isInfix, descriptor.isInline, descriptor.isTailrec, descriptor.isExternal, descriptor.isSuspend, + descriptor.isHeader ) if (flags != builder.flags) { builder.flags = flags diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializationUtil.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializationUtil.kt index 0ac394a8828..0ddb7fbcd48 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializationUtil.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializationUtil.kt @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.backend.konan.KonanBuiltIns import org.jetbrains.kotlin.backend.konan.llvm.base64Decode import org.jetbrains.kotlin.backend.konan.llvm.base64Encode import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.DECLARATION import org.jetbrains.kotlin.descriptors.Modality.FINAL @@ -126,7 +127,7 @@ internal fun deserializeModule(configuration: CompilerConfiguration, val moduleDescriptor = ModuleDescriptorImpl( Name.special(moduleName), storageManager, builtIns) builtIns.builtInsModule = moduleDescriptor - val deserializationConfiguration = CompilerDeserializationConfiguration(configuration) + val deserializationConfiguration = CompilerDeserializationConfiguration(configuration.languageVersionSettings) val libraryProto = KonanLinkData.Library .parseFrom(base64ToStream(library), diff --git a/gradle.properties b/gradle.properties index 7ba0a780269..10562d17e5c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,5 +21,5 @@ remoteRoot=konan_tests #kotlinCompilerModule=org.jetbrains.kotlin:kotlin-compiler:1.1-SNAPSHOT # Download artifacts of https://teamcity.jetbrains.com/viewType.html?buildTypeId=bt345 testDataVersion=1009012:id -kotlinCompilerModule=org.jetbrains.kotlin:kotlin-compiler:1.1-20170310.145051-441 +kotlinCompilerModule=org.jetbrains.kotlin:kotlin-compiler:1.1-20170403.193854-443 konanVersion=0.1