mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-03-10 08:31:29 +00:00
Fix warnings in JS/WASM modules
This commit is contained in:
@@ -302,9 +302,6 @@ fun createKotlinLibraryComponents(
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated("Use resolveSingleFileKlib() instead", replaceWith = ReplaceWith("resolveSingleFileKlib()"))
|
||||
fun createKotlinLibrary(libraryFile: File): KotlinLibrary = resolveSingleFileKlib(libraryFile)
|
||||
|
||||
fun isKotlinLibrary(libraryFile: File): Boolean = try {
|
||||
resolveSingleFileKlib(libraryFile)
|
||||
true
|
||||
|
||||
@@ -6,12 +6,10 @@
|
||||
package org.jetbrains.kotlin.serialization.js
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.config.AnalysisFlags
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||
import org.jetbrains.kotlin.metadata.js.JsProtoBuf
|
||||
@@ -24,7 +22,6 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.OptionalAnnotationUtil
|
||||
import org.jetbrains.kotlin.serialization.AnnotationSerializer
|
||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
||||
import org.jetbrains.kotlin.serialization.StringTableImpl
|
||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfiguration
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPropertyDescriptor
|
||||
@@ -238,7 +235,7 @@ object KotlinJavascriptSerializationUtil {
|
||||
}
|
||||
|
||||
fun serializeHeader(
|
||||
module: ModuleDescriptor, packageFqName: FqName?, languageVersionSettings: LanguageVersionSettings
|
||||
@Suppress("UNUSED_PARAMETER") module: ModuleDescriptor, packageFqName: FqName?, languageVersionSettings: LanguageVersionSettings
|
||||
): JsProtoBuf.Header {
|
||||
val header = JsProtoBuf.Header.newBuilder()
|
||||
|
||||
|
||||
@@ -49,13 +49,9 @@ import org.jetbrains.kotlin.ir.util.patchDeclarationParents
|
||||
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS
|
||||
import org.jetbrains.kotlin.js.config.ErrorTolerancePolicy
|
||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||
import org.jetbrains.kotlin.library.KotlinAbiVersion
|
||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||
import org.jetbrains.kotlin.library.KotlinLibraryVersioning
|
||||
import org.jetbrains.kotlin.library.SerializedIrModule
|
||||
import org.jetbrains.kotlin.library.*
|
||||
import org.jetbrains.kotlin.library.impl.BuiltInsPlatform
|
||||
import org.jetbrains.kotlin.library.impl.KotlinLibraryOnlyIrWriter
|
||||
import org.jetbrains.kotlin.library.impl.createKotlinLibrary
|
||||
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi2ir.Psi2IrConfiguration
|
||||
@@ -78,7 +74,7 @@ import org.jetbrains.kotlin.konan.file.File as KonanFile
|
||||
@OptIn(ExperimentalPathApi::class)
|
||||
@Ignore
|
||||
class GenerateIrRuntime {
|
||||
fun loadKlib(klibPath: String, isPacked: Boolean) = createKotlinLibrary(KonanFile("$klibPath${if (isPacked) ".klib" else ""}"))
|
||||
fun loadKlib(klibPath: String, isPacked: Boolean) = resolveSingleFileKlib(KonanFile("$klibPath${if (isPacked) ".klib" else ""}"))
|
||||
|
||||
private fun buildConfiguration(environment: KotlinCoreEnvironment): CompilerConfiguration {
|
||||
val runtimeConfiguration = environment.configuration.copy()
|
||||
@@ -92,13 +88,18 @@ class GenerateIrRuntime {
|
||||
LanguageFeature.MultiPlatformProjects to LanguageFeature.State.ENABLED
|
||||
),
|
||||
analysisFlags = mapOf(
|
||||
AnalysisFlags.useExperimental to listOf("kotlin.contracts.ExperimentalContracts", "kotlin.Experimental", "kotlin.ExperimentalMultiplatform"),
|
||||
AnalysisFlags.useExperimental to listOf(
|
||||
"kotlin.contracts.ExperimentalContracts",
|
||||
"kotlin.Experimental",
|
||||
"kotlin.ExperimentalMultiplatform"
|
||||
),
|
||||
AnalysisFlags.allowResultReturnType to true
|
||||
)
|
||||
)
|
||||
|
||||
return runtimeConfiguration
|
||||
}
|
||||
|
||||
private val CompilerConfiguration.metadataVersion
|
||||
get() = get(CommonConfigurationKeys.METADATA_VERSION) as? KlibMetadataVersion ?: KlibMetadataVersion.INSTANCE
|
||||
|
||||
@@ -173,7 +174,7 @@ class GenerateIrRuntime {
|
||||
|
||||
val (module, symbolTable, irBuiltIns, linker) = doDeserializeModule(modulePath)
|
||||
|
||||
val jsProgram = doBackEnd(module, symbolTable, irBuiltIns, linker)
|
||||
doBackEnd(module, symbolTable, irBuiltIns, linker)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -377,7 +378,16 @@ class GenerateIrRuntime {
|
||||
println("Fastest re-compilation takes ${MeasureUnits.MILLISECONDS.convert(minResult.time)} (${minResult.file})")
|
||||
}
|
||||
|
||||
private fun runBenchWithWarmup(name: String, W: Int, N: Int, measurer: MeasureUnits, wmpDone: () -> Unit = {}, bnhDone: (Long) -> Unit = {}, pre: () -> Unit = {}, bench: () -> Unit) {
|
||||
private fun runBenchWithWarmup(
|
||||
name: String,
|
||||
W: Int,
|
||||
N: Int,
|
||||
measurer: MeasureUnits,
|
||||
wmpDone: () -> Unit = {},
|
||||
bnhDone: (Long) -> Unit = {},
|
||||
pre: () -> Unit = {},
|
||||
bench: () -> Unit
|
||||
) {
|
||||
|
||||
println("Run $name benchmark")
|
||||
|
||||
@@ -473,7 +483,12 @@ class GenerateIrRuntime {
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalPathApi::class)
|
||||
private fun doSerializeModule(moduleFragment: IrModuleFragment, bindingContext: BindingContext, files: List<KtFile>, perFile: Boolean = false): String {
|
||||
private fun doSerializeModule(
|
||||
moduleFragment: IrModuleFragment,
|
||||
bindingContext: BindingContext,
|
||||
files: List<KtFile>,
|
||||
perFile: Boolean = false
|
||||
): String {
|
||||
val tmpKlibDir = createTempDirectory().also { it.toFile().deleteOnExit() }.toString()
|
||||
serializeModuleIntoKlib(
|
||||
moduleName,
|
||||
@@ -500,11 +515,22 @@ class GenerateIrRuntime {
|
||||
return getModuleDescriptorByLibrary(moduleRef, emptyMap())
|
||||
}
|
||||
|
||||
private data class DeserializedModuleInfo(val module: IrModuleFragment, val symbolTable: SymbolTable, val irBuiltIns: IrBuiltIns, val linker: JsIrLinker)
|
||||
private data class DeserializedModuleInfo(
|
||||
val module: IrModuleFragment,
|
||||
val symbolTable: SymbolTable,
|
||||
val irBuiltIns: IrBuiltIns,
|
||||
val linker: JsIrLinker
|
||||
)
|
||||
|
||||
|
||||
private fun doSerializeIrModule(module: IrModuleFragment): SerializedIrModule {
|
||||
val serializedIr = JsIrModuleSerializer(IrMessageLogger.None, module.irBuiltins, mutableMapOf(), CompatibilityMode.CURRENT, true).serializedIrModule(module)
|
||||
val serializedIr = JsIrModuleSerializer(
|
||||
IrMessageLogger.None,
|
||||
module.irBuiltins,
|
||||
mutableMapOf(),
|
||||
CompatibilityMode.CURRENT,
|
||||
true
|
||||
).serializedIrModule(module)
|
||||
return serializedIr
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.test.TestFiles
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil
|
||||
import java.io.Closeable
|
||||
import java.io.File
|
||||
import java.lang.Boolean.getBoolean
|
||||
|
||||
private val wasmRuntimeKlib =
|
||||
loadKlib(System.getProperty("kotlin.wasm.stdlib.path"))
|
||||
@@ -46,6 +45,7 @@ abstract class BasicWasmBoxTest(
|
||||
|
||||
private val spiderMonkey by lazy { SpiderMonkeyEngine() }
|
||||
|
||||
@Suppress("UNUSED_PARAMETER")
|
||||
fun doTestWithCoroutinesPackageReplacement(filePath: String, coroutinesPackage: String) {
|
||||
TODO("TestWithCoroutinesPackageReplacement are not supported")
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.js.test.semantics
|
||||
|
||||
import org.jetbrains.kotlin.js.test.BasicBoxTest
|
||||
import java.io.File
|
||||
import javax.script.ScriptException
|
||||
|
||||
private val testGroupDir = "multiModuleOrder/"
|
||||
private val pathToTestGroupDir = BasicBoxTest.TEST_DATA_DIR_PATH + testGroupDir
|
||||
@@ -33,9 +32,8 @@ class MultiModuleOrderTest : BasicBoxTest(pathToTestGroupDir, testGroupDir) {
|
||||
val libJsFile = File(parentDir, "$name-lib_v5.js").path
|
||||
try {
|
||||
testChecker.run(listOf(mainJsFile, libJsFile))
|
||||
}
|
||||
catch (e: RuntimeException) {
|
||||
assertTrue(e is ScriptException || e is IllegalStateException)
|
||||
} catch (e: RuntimeException) {
|
||||
assertTrue(e is IllegalStateException)
|
||||
val message = e.message!!
|
||||
assertTrue("Exception message should contain reference to dependency (lib)", "'lib'" in message)
|
||||
assertTrue("Exception message should contain reference to module that failed to load (main)", "'main'" in message)
|
||||
|
||||
@@ -7,7 +7,6 @@ import org.jetbrains.kotlin.konan.library.impl.createKonanLibraryComponents
|
||||
import org.jetbrains.kotlin.konan.target.Distribution
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||
import org.jetbrains.kotlin.library.*
|
||||
import org.jetbrains.kotlin.library.impl.createKotlinLibrary
|
||||
import org.jetbrains.kotlin.util.DummyLogger
|
||||
import org.jetbrains.kotlin.util.Logger
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ import kotlinx.serialization.json.Json
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils.assertEqualsToFile
|
||||
import org.jetbrains.kotlin.utils.fileUtils.withReplacedExtensionOrNull
|
||||
import org.jetbrains.kotlin.wasm.ir.convertors.MyByteReader
|
||||
import org.jetbrains.kotlin.wasm.ir.convertors.WasmIrToBinary
|
||||
import org.jetbrains.kotlin.wasm.ir.convertors.WasmBinaryToIR
|
||||
import org.jetbrains.kotlin.wasm.ir.convertors.WasmIrToBinary
|
||||
import org.jetbrains.kotlin.wasm.ir.convertors.WasmIrToText
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.File
|
||||
@@ -128,6 +128,7 @@ data class SpecTest(
|
||||
)
|
||||
}
|
||||
|
||||
@Suppress("UNUSED_PARAMETER")
|
||||
private fun runSpecTest(specTest: SpecTest, testDir: File, wastFile: File, wabtOptions: List<String>) {
|
||||
for (command in specTest.commands) {
|
||||
if (command is SpecTest.Command.Module) {
|
||||
|
||||
Reference in New Issue
Block a user