Fix warnings in compiler and interop

This commit is contained in:
Pavel Punegov
2019-01-24 20:51:02 +03:00
committed by Pavel Punegov
parent c1fa7f0f79
commit 3e153e5937
10 changed files with 12 additions and 22 deletions
+1 -1
View File
@@ -74,7 +74,7 @@ sourceSets.main.kotlin.srcDirs += "src/jvm/kotlin"
compileKotlin {
kotlinOptions {
freeCompilerArgs = ['-Xuse-experimental=kotlin.ExperimentalUnsignedTypes']
freeCompilerArgs = ['-Xuse-experimental=kotlin.ExperimentalUnsignedTypes', "-XXLanguage:+InlineClasses"]
}
}
@@ -73,5 +73,4 @@ public inline class StableRef<out T : Any> @PublishedApi internal constructor(
/**
* Converts to [StableRef] this opaque pointer produced by [StableRef.asCPointer].
*/
inline fun <reified T : Any> CPointer<*>.asStableRef(): StableRef<T> = StableRef<T>(this)
.also { it.get() as T }
inline fun <reified T : Any> CPointer<*>.asStableRef(): StableRef<T> = StableRef<T>(this).also { it.get() }
@@ -398,6 +398,7 @@ private val ObjCClassOrProtocol.superTypes: Sequence<ObjCClassOrProtocol>
private fun ObjCClassOrProtocol.declaredMethods(isClass: Boolean): Sequence<ObjCMethod> =
this.methods.asSequence().filter { it.isClass == isClass }
@Suppress("UNUSED_PARAMETER")
private fun Sequence<ObjCMethod>.inheritedTo(container: ObjCClassOrProtocol, isMeta: Boolean): Sequence<ObjCMethod> =
this // TODO: exclude methods that are marked as unavailable in [container].
+1 -1
View File
@@ -222,7 +222,7 @@ targetList.each { target ->
args = [*konanArgs,
'-output', project(':runtime').file("build/${target}Stdlib"),
'-produce', 'library', '-module-name', 'stdlib', '-XXLanguage:+AllowContractsForCustomFunctions',
'-Xmulti-platform', '-Xuse-experimental=kotlin.Experimental',
'-Xmulti-platform', '-Xuse-experimental=kotlin.Experimental', '-XXLanguage:+InlineClasses',
'-Xuse-experimental=kotlin.contracts.ExperimentalContracts',
'-Xuse-experimental=kotlin.ExperimentalMultiplatform',
'-Xallow-result-return-type',
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.serialization.konan.KonanMetadataVersion
private class K2NativeCompilerPerformanceManager: CommonCompilerPerformanceManager("Kotlin to Native Compiler")
class K2Native : CLICompiler<K2NativeCompilerArguments>() {
override fun createMetadataVersion(p0: IntArray): BinaryVersion = KonanMetadataVersion(*p0)
override fun createMetadataVersion(versionArray: IntArray): BinaryVersion = KonanMetadataVersion(*versionArray)
override val performanceManager:CommonCompilerPerformanceManager by lazy {
K2NativeCompilerPerformanceManager()
@@ -299,7 +299,7 @@ internal class Context(config: KonanConfig) : KonanBackendContext(config) {
get() = ir.irModule.irBuiltins
val interopBuiltIns by lazy {
InteropBuiltIns(this.builtIns, nativePtr)
InteropBuiltIns(this.builtIns)
}
var llvmModule: LLVMModuleRef? = null
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.types.TypeUtils
import org.jetbrains.kotlin.util.OperatorNameConventions
object InteropFqNames {
@@ -27,7 +26,7 @@ object InteropFqNames {
val nativePointed = packageName.child(Name.identifier(nativePointedName)).toUnsafe()
}
internal class InteropBuiltIns(builtIns: KonanBuiltIns, vararg konanPrimitives: ClassDescriptor) {
internal class InteropBuiltIns(builtIns: KonanBuiltIns) {
val packageScope = builtIns.builtInsModule.getPackage(InteropFqNames.packageName).memberScope
@@ -193,7 +193,6 @@ internal class LinkStage(val context: Context, val phaser: PhaseManager) {
}
} catch (e: KonanExternalToolFailure) {
context.reportCompilationError("${e.toolName} invocation reported errors")
return null
}
return executable
}
@@ -7,19 +7,15 @@ package org.jetbrains.kotlin.backend.konan.llvm
import org.jetbrains.kotlin.backend.konan.*
import org.jetbrains.kotlin.backend.konan.descriptors.isArray
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import org.jetbrains.kotlin.konan.target.CompilerOutputKind.*
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.typeUtil.isUnit
import org.jetbrains.kotlin.utils.alwaysTrue
internal fun findMainEntryPoint(context: Context): FunctionDescriptor? {
@@ -43,14 +39,10 @@ internal fun findMainEntryPoint(context: Context): FunctionDescriptor? {
val main =
candidates.singleOrNull { it.hasSingleArrayOfStringParameter } ?:
candidates.singleOrNull { it.hasNoParameters } ?:
run {
context.reportCompilationError("Could not find '$entryName' in '$packageName' package.")
null
}
if (main != null && main.isSuspend) {
context.reportCompilationError("Could not find '$entryName' in '$packageName' package.")
if (main.isSuspend) {
context.reportCompilationError("Entry point can not be a suspend function.")
return null
}
return main
@@ -1016,7 +1016,7 @@ internal object Devirtualization {
.asSequence()
.filter { it.key.irCallSite != null }
.associate { it.key.irCallSite!! to it.value }
devirtualize(irModule, context, moduleDFG, externalModulesDFG, devirtualizedCallSites)
devirtualize(irModule, context, externalModulesDFG, devirtualizedCallSites)
removeRedundantCoercions(irModule, context, moduleDFG, externalModulesDFG)
return AnalysisResult(devirtualizationAnalysisResult)
}
@@ -1040,7 +1040,7 @@ internal object Devirtualization {
|| (this is IrPrivateFunctionCall && specialNames.any { dfgSymbol.name?.contains(it) == true })
private fun devirtualize(irModule: IrModuleFragment, context: Context,
moduleDFG: ModuleDFG, externalModulesDFG: ExternalModulesDFG,
externalModulesDFG: ExternalModulesDFG,
devirtualizedCallSites: Map<IrCall, DevirtualizedCallSite>) {
val symbols = context.ir.symbols
val nativePtrEqualityOperatorSymbol = symbols.areEqualByValue[PrimitiveBinaryType.POINTER]!!