kotlin-compiler: 1.1-20170403.193854-443 (#452)

This commit is contained in:
SvyatoslavScherbina
2017-04-05 20:48:58 +03:00
committed by Nikolay Igotti
parent f5e3519d3a
commit 058bb728df
11 changed files with 21 additions and 30 deletions
@@ -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")
@@ -41,7 +41,7 @@ object KonanPlatform : TargetPlatform("Konan") {
override val multiTargetPlatform = MultiTargetPlatform.Specific(platformName)
override fun getDefaultImports(languageVersionSettings: LanguageVersionSettings): List<ImportPath> {
return Default.getDefaultImports(languageVersionSettings) + listOf(
ImportPath("konan.*")
ImportPath.fromString("konan.*")
)
}
@@ -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<FileScopeProviderImpl>()
useImpl<AnnotationResolverImpl>()
CompilerEnvironment.configure(this)
useInstance(LookupTracker.DO_NOTHING)
useInstance(languageVersionSettings)
useImpl<ResolveSession>()
useImpl<LazyTopDownAnalyzer>()
@@ -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()
@@ -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 :
@@ -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)
}
@@ -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<ClassConstructorDescriptor>()
@@ -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
}
@@ -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
@@ -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),
+1 -1
View File
@@ -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