From 12715c062df91e88379091a7685ea50db027201e Mon Sep 17 00:00:00 2001 From: Artem Kobzar Date: Tue, 1 Aug 2023 09:42:33 +0000 Subject: [PATCH] [K/JS] Reexport exported declarations in a proxy module file with per-file compilation --- .../kotlin/ir/backend/js/ic/JsPerFileCache.kt | 190 ++++++++++++------ .../irToJs/IrModuleToJsTransformer.kt | 9 +- .../incremental/AbstractInvalidationTest.kt | 8 +- .../incremental/IrAbstractInvalidationTest.kt | 2 +- ...JsFirInvalidationPerFileTestGenerated.java | 6 + ...FirInvalidationPerModuleTestGenerated.java | 6 + ...IrES6InvalidationPerFileTestGenerated.java | 6 + ...ES6InvalidationPerModuleTestGenerated.java | 6 + .../JsIrInvalidationPerFileTestGenerated.java | 6 + ...sIrInvalidationPerModuleTestGenerated.java | 6 + .../addUpdateRemoveDependentFile/project.info | 2 +- .../project.info | 2 +- .../circleExportsUpdate/project.info | 2 +- .../circleInlineImportsUpdate/project.info | 2 +- .../invalidation/class/project.info | 2 +- .../classFunctionsAndFields/project.info | 2 +- .../companionFunction/project.info | 2 +- .../companionInlineFunction/project.info | 2 +- .../companionProperties/project.info | 2 +- .../companionWithStdLibCall/project.info | 2 +- .../invalidation/constVals/project.fir.info | 2 +- .../invalidation/constVals/project.info | 2 +- .../crossModuleReferences/project.info | 2 +- .../invalidation/enum/project.info | 4 +- .../enumsInInlineFunctions/project.info | 2 +- .../exceptionsFromInlineFunction/project.info | 2 +- .../exportsThroughInlineFunction/project.info | 2 +- .../project.info | 2 +- .../fakeOverrideInheritance/project.info | 2 +- .../fakeOverrideInlineExtension/project.info | 2 +- .../fakeOverrideInlineFunction/project.info | 2 +- .../fakeOverrideInlineProperty/project.info | 2 +- .../project.info | 2 +- .../invalidation/fastPath1/project.info | 2 +- .../invalidation/fastPath2/project.info | 2 +- .../friendDependency/project.info | 2 +- .../functionDefaultParams/project.info | 2 +- .../functionSignature/project.info | 2 +- .../functionTypeInterface/project.info | 2 +- .../functionTypeInterfaceReflect/project.info | 2 +- .../genericFunctions/project.info | 2 +- .../genericInlineFunctions/project.info | 2 +- .../gettersAndSettersInlining/project.info | 2 +- .../inlineBecomeNonInline/project.info | 2 +- .../inlineFunctionAnnotations/project.info | 4 +- .../project.info | 2 +- .../inlineFunctionAsParam/project.info | 2 +- .../inlineFunctionCircleUsage/project.info | 2 +- .../inlineFunctionDefaultParams/project.info | 2 +- .../inlineFunctionWithObject/project.info | 2 +- .../interfaceOpenMethods/project.info | 2 +- .../project.info | 2 +- .../interfaceSuperUsage/project.info | 2 +- .../interfaceWithDefaultParams/project.info | 2 +- .../invalidation/jsCode/project.info | 2 +- .../jsCodeWithConstString/project.fir.info | 2 +- .../jsCodeWithConstString/project.info | 2 +- .../invalidation/jsExport/project.info | 4 +- .../jsExportWithMultipleFiles/lib1/l1.0.kt | 1 + .../jsExportWithMultipleFiles/lib1/l1.1.kt | 2 + .../jsExportWithMultipleFiles/lib1/l1.5.kt | 1 + .../jsExportWithMultipleFiles/lib1/l1.6.kt | 2 + .../jsExportWithMultipleFiles/lib1/l2.2.kt | 1 + .../jsExportWithMultipleFiles/lib1/l2.3.kt | 2 + .../jsExportWithMultipleFiles/lib1/l2.6.kt | 1 + .../lib1/module.info | 29 +++ .../jsExportWithMultipleFiles/main/m.kt | 3 + .../main/module.info | 3 + .../jsExportWithMultipleFiles/project.info | 30 +++ .../jsModuleAnnotation/project.info | 2 +- .../languageVersionSettings/project.info | 10 +- .../localInlineFunction/project.info | 2 +- .../project.info | 2 +- .../mainModuleInvalidation/project.info | 2 +- .../moveAndModifyInlineFunction/project.info | 2 +- .../project.info | 2 +- .../moveFilesBetweenModules/project.info | 2 +- .../project.info | 2 +- .../invalidation/nestedClass/project.info | 2 +- .../nonInlineBecomeInline/project.info | 2 +- .../project.info | 2 +- .../privateInlineFunction1/project.info | 2 +- .../project.info | 2 +- .../invalidation/removeFile/project.info | 2 +- .../invalidation/removeModule/project.info | 2 +- .../removeUnusedFile/project.info | 2 +- .../invalidation/renameFile/project.info | 2 +- .../invalidation/renameModule/project.info | 2 +- .../invalidation/simple/project.info | 2 +- .../invalidation/splitJoinModule/project.info | 2 +- .../suspendFunctions/project.info | 2 +- .../project.info | 2 +- .../toplevelProperties/project.info | 2 +- .../transitiveInlineFunction/project.info | 2 +- .../typeScriptExportsPerFile/project.info | 6 +- .../project.info | 2 +- .../invalidation/updateExports/project.info | 2 +- .../project.info | 2 +- .../invalidation/variance/project.info | 2 +- .../changeFunctionSignature/project.info | 2 +- .../interfaceBecomeClass/project.info | 2 +- .../removeFunction/project.info | 2 +- .../removeFunctionFromBlock/project.info | 2 +- .../removeFunctionFromChainCall/project.info | 2 +- .../removeFunctionFromElvis/project.info | 2 +- .../removeFunctionFromInline/project.info | 2 +- .../removeInlineFunction/project.info | 2 +- 107 files changed, 341 insertions(+), 169 deletions(-) create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.0.kt create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.1.kt create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.5.kt create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.6.kt create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.2.kt create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.3.kt create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.6.kt create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/main/m.kt create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/main/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/project.info diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/JsPerFileCache.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/JsPerFileCache.kt index addba1587cc..857b5e4b064 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/JsPerFileCache.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/JsPerFileCache.kt @@ -6,10 +6,10 @@ package org.jetbrains.kotlin.ir.backend.js.ic import org.jetbrains.kotlin.backend.common.serialization.cityHash64 -import org.jetbrains.kotlin.backend.common.serialization.cityHash64String import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.* import org.jetbrains.kotlin.protobuf.CodedInputStream import org.jetbrains.kotlin.protobuf.CodedOutputStream +import org.jetbrains.kotlin.utils.addToStdlib.butIf import org.jetbrains.kotlin.utils.addToStdlib.runIf import java.io.File @@ -22,38 +22,50 @@ class JsPerFileCache(private val moduleArtifacts: List) : JsMult private const val CACHED_FILE_D_TS = "file.d.ts" } - class CachedFileInfo( - val moduleArtifact: ModuleArtifact, - val fileArtifact: SrcFileArtifact, - val isExportFileCachedInfo: Boolean = false, - ) : CacheInfo { - var dtsHash: Long? = null + sealed class CachedFileInfo(val moduleArtifact: ModuleArtifact, moduleHeader: JsIrModuleHeader?) : CacheInfo { var crossFileReferencesHash: ICHash = ICHash() - var exportFileCachedInfo: CachedFileInfo? = null - override lateinit var jsIrHeader: JsIrModuleHeader + final override lateinit var jsIrHeader: JsIrModuleHeader - constructor( - jsIrModuleHeader: JsIrModuleHeader, - moduleArtifact: ModuleArtifact, - fileArtifact: SrcFileArtifact, - isExportFileCachedInfo: Boolean = false, - tsDeclarationsHash: Long? = null, - ) : this(moduleArtifact, fileArtifact, isExportFileCachedInfo) { - jsIrHeader = jsIrModuleHeader - dtsHash = tsDeclarationsHash + init { + if (moduleHeader != null) jsIrHeader = moduleHeader } - val moduleHeaderArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(JS_MODULE_HEADER) } - val jsFileArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(if (isExportFileCachedInfo) CACHED_EXPORT_FILE_JS else CACHED_FILE_JS) } - val dtsFileArtifact by lazy(LazyThreadSafetyMode.NONE) { runIf(isExportFileCachedInfo) { getArtifactWithName(CACHED_FILE_D_TS) } } - val sourceMapFileArtifact by lazy(LazyThreadSafetyMode.NONE) { runIf(!isExportFileCachedInfo) { getArtifactWithName(CACHED_FILE_JS_MAP) } } + sealed class SerializableCachedFileInfo( + moduleArtifact: ModuleArtifact, + val fileArtifact: SrcFileArtifact, + moduleHeader: JsIrModuleHeader? + ) : CachedFileInfo(moduleArtifact, moduleHeader) { + fun getArtifactWithName(name: String): File? = moduleArtifact.artifactsDir?.let { File(it, "$filePrefix.$name") } + private val filePrefix by lazy(LazyThreadSafetyMode.NONE) { fileArtifact.srcFilePath.run { "${substringAfterLast('/')}.${cityHash64()}" } } + } - private fun getArtifactWithName(name: String): File? = moduleArtifact.artifactsDir?.let { File(it, "$filePrefix.$name") } + class MainFileCachedInfo(moduleArtifact: ModuleArtifact, fileArtifact: SrcFileArtifact, moduleHeader: JsIrModuleHeader? = null) : + SerializableCachedFileInfo(moduleArtifact, fileArtifact, moduleHeader) { + var exportFileCachedInfo: ExportFileCachedInfo? = null - private val filePrefix by lazy(LazyThreadSafetyMode.NONE) { - val pathHash = fileArtifact.srcFilePath.cityHash64String() - "${fileArtifact.srcFilePath.substringAfterLast('/')}.$pathHash" + val jsFileArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(CACHED_FILE_JS) } + val moduleHeaderArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(JS_MODULE_HEADER) } + val sourceMapFileArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(CACHED_FILE_JS_MAP) } + } + + class ExportFileCachedInfo( + moduleArtifact: ModuleArtifact, + fileArtifact: SrcFileArtifact, + moduleHeader: JsIrModuleHeader? = null, + var tsDeclarationsHash: Long? = null + ) : SerializableCachedFileInfo(moduleArtifact, fileArtifact, moduleHeader) { + val jsFileArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(CACHED_EXPORT_FILE_JS) } + val dtsFileArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(CACHED_FILE_D_TS) } + } + + class ModuleProxyFileCachedInfo(moduleArtifact: ModuleArtifact, moduleHeader: JsIrModuleHeader? = null) : + CachedFileInfo(moduleArtifact, moduleHeader) { + val jsFileArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(CACHED_FILE_JS) } + val dtsFileArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(CACHED_FILE_D_TS) } + val moduleHeaderArtifact by lazy(LazyThreadSafetyMode.NONE) { getArtifactWithName(JS_MODULE_HEADER) } + + private fun getArtifactWithName(name: String): File? = moduleArtifact.artifactsDir?.let { File(it, "entry.$name") } } } @@ -66,13 +78,14 @@ class JsPerFileCache(private val moduleArtifacts: List) : JsMult private fun JsIrProgramFragment.getExportFragmentExternalName(moduleArtifact: ModuleArtifact) = moduleFragmentToExternalName.getExternalNameForExporterFile(name, packageFqn, moduleArtifact.moduleExternalName) - private fun JsIrProgramFragment.asIrModuleHeader(moduleName: String): JsIrModuleHeader { + private fun JsIrProgramFragment.asIrModuleHeader(moduleName: String, reexportedIn: String? = null): JsIrModuleHeader { return JsIrModuleHeader( moduleName = moduleName, externalModuleName = moduleName, definitions = definitions, nameBindings = nameBindings.mapValues { v -> v.value.toString() }, optionalCrossModuleImports = optionalCrossModuleImports, + reexportedInModuleWithName = reexportedIn, associatedModule = null ) } @@ -80,15 +93,20 @@ class JsPerFileCache(private val moduleArtifacts: List) : JsMult private fun SrcFileArtifact.loadJsIrModuleHeaders(moduleArtifact: ModuleArtifact) = with(loadJsIrFragments()) { LoadedJsIrModuleHeaders( mainFragment.run { asIrModuleHeader(getMainFragmentExternalName(moduleArtifact)) }, - exportFragment?.run { asIrModuleHeader(mainFragment.getExportFragmentExternalName(moduleArtifact)) }, + exportFragment?.run { asIrModuleHeader(mainFragment.getExportFragmentExternalName(moduleArtifact), moduleArtifact.moduleExternalName) }, ) } - private fun CodedInputStream.loadSingleCachedFileInfo(cachedFileInfo: CachedFileInfo) = cachedFileInfo.also { + private fun CodedInputStream.loadSingleCachedFileInfo(cachedFileInfo: T): T = cachedFileInfo.also { val moduleName = readString() + var reexportedIn: String? = null it.crossFileReferencesHash = ICHash.fromProtoStream(this) - it.dtsHash = runIf(readBool()) { readInt64() } + + if (it is CachedFileInfo.ExportFileCachedInfo) { + it.tsDeclarationsHash = runIf(readBool()) { readInt64() } + reexportedIn = cachedFileInfo.moduleArtifact.moduleExternalName + } val (definitions, nameBindings, optionalCrossModuleImports) = fetchJsIrModuleHeaderNames() @@ -98,15 +116,16 @@ class JsPerFileCache(private val moduleArtifacts: List) : JsMult definitions = definitions, nameBindings = nameBindings, optionalCrossModuleImports = optionalCrossModuleImports, - associatedModule = null + reexportedInModuleWithName = reexportedIn, + associatedModule = null, ) } - private fun CachedFileInfo.readModuleHeaderCache(f: CodedInputStream.() -> T): T? = moduleHeaderArtifact?.useCodedInputIfExists(f) + private fun CachedFileInfo.MainFileCachedInfo.readModuleHeaderCache(f: CodedInputStream.() -> T): T? = + moduleHeaderArtifact?.useCodedInputIfExists(f) private fun ModuleArtifact.fetchFileInfoFor(fileArtifact: SrcFileArtifact): List? { - val moduleArtifact = this - val mainFileCachedFileInfo = CachedFileInfo(moduleArtifact, fileArtifact) + val mainFileCachedFileInfo = CachedFileInfo.MainFileCachedInfo(this, fileArtifact) return mainFileCachedFileInfo.readModuleHeaderCache { mainFileCachedFileInfo.run { @@ -117,48 +136,66 @@ class JsPerFileCache(private val moduleArtifacts: List) : JsMult } } - private fun CodedInputStream.fetchFileInfoForExportedPart(mainCachedFileInfo: CachedFileInfo): CachedFileInfo? { + private fun ModuleArtifact.fetchModuleProxyFileInfo(): CachedFileInfo.ModuleProxyFileCachedInfo? { + val mainFileCachedFileInfo = CachedFileInfo.ModuleProxyFileCachedInfo(this) + return mainFileCachedFileInfo.moduleHeaderArtifact?.useCodedInputIfExists { loadSingleCachedFileInfo(mainFileCachedFileInfo) } + } + + private fun CodedInputStream.fetchFileInfoForExportedPart(mainCachedFileInfo: CachedFileInfo.MainFileCachedInfo): CachedFileInfo.ExportFileCachedInfo? { return ifTrue { loadSingleCachedFileInfo( - CachedFileInfo( - mainCachedFileInfo.moduleArtifact, - mainCachedFileInfo.fileArtifact, - isExportFileCachedInfo = true - ) + CachedFileInfo.ExportFileCachedInfo(mainCachedFileInfo.moduleArtifact, mainCachedFileInfo.fileArtifact) ) } } - private fun CodedOutputStream.commitSingleFileInfo(cachedFileInfo: CachedFileInfo) { + private fun CodedOutputStream.commitSingleFileInfo(cachedFileInfo: CachedFileInfo.SerializableCachedFileInfo) { writeStringNoTag(cachedFileInfo.jsIrHeader.externalModuleName) cachedFileInfo.crossFileReferencesHash.toProtoStream(this) - ifNotNull(cachedFileInfo.dtsHash, ::writeInt64NoTag) + if (cachedFileInfo is CachedFileInfo.ExportFileCachedInfo) { + ifNotNull(cachedFileInfo.tsDeclarationsHash, ::writeInt64NoTag) + } commitJsIrModuleHeaderNames(cachedFileInfo.jsIrHeader) } - private fun CachedFileInfo.commitFileInfo() = runIf(!isExportFileCachedInfo) { - moduleHeaderArtifact?.useCodedOutput { - ifNotNull(exportFileCachedInfo) { commitSingleFileInfo(it) } - commitSingleFileInfo(this@commitFileInfo) + private fun CachedFileInfo.commitFileInfo() = when (this) { + is CachedFileInfo.MainFileCachedInfo -> { + moduleHeaderArtifact?.useCodedOutput { + ifNotNull(exportFileCachedInfo) { commitSingleFileInfo(it) } + commitSingleFileInfo(this@commitFileInfo) + } } + is CachedFileInfo.ModuleProxyFileCachedInfo -> { + moduleHeaderArtifact?.useCodedOutput { + writeStringNoTag(jsIrHeader.externalModuleName) + crossFileReferencesHash.toProtoStream(this) + commitJsIrModuleHeaderNames(jsIrHeader) + } + } + is CachedFileInfo.ExportFileCachedInfo -> {} + } + + private fun ModuleArtifact.generateModuleProxyFileCachedInfo(): CachedFileInfo { + return CachedFileInfo.ModuleProxyFileCachedInfo( + this, + generateProxyIrModuleWith(moduleExternalName, moduleExternalName).makeModuleHeader() + ) } private fun ModuleArtifact.loadFileInfoFor(fileArtifact: SrcFileArtifact): List { - val moduleArtifact = this - val headers = fileArtifact.loadJsIrModuleHeaders(moduleArtifact) + val headers = fileArtifact.loadJsIrModuleHeaders(this) - val mainCachedFileInfo = CachedFileInfo(headers.mainHeader, this, fileArtifact) + val mainCachedFileInfo = CachedFileInfo.MainFileCachedInfo(this, fileArtifact, headers.mainHeader) if (headers.exportHeader != null) { val tsDeclarationsHash = fileArtifact.loadJsIrFragments().exportFragment?.dts?.raw?.cityHash64() val cachedExportFileInfo = mainCachedFileInfo.readModuleHeaderCache { fetchFileInfoForExportedPart(mainCachedFileInfo) } - mainCachedFileInfo.exportFileCachedInfo = if (cachedExportFileInfo?.dtsHash != tsDeclarationsHash) { - CachedFileInfo( - headers.exportHeader, - moduleArtifact, + mainCachedFileInfo.exportFileCachedInfo = if (cachedExportFileInfo?.tsDeclarationsHash != tsDeclarationsHash) { + CachedFileInfo.ExportFileCachedInfo( + this, fileArtifact, - tsDeclarationsHash = tsDeclarationsHash, - isExportFileCachedInfo = true + headers.exportHeader, + tsDeclarationsHash, ) } else { cachedExportFileInfo @@ -169,7 +206,11 @@ class JsPerFileCache(private val moduleArtifacts: List) : JsMult } private val CachedFileInfo.cachedFiles: CachedFileArtifacts? - get() = jsFileArtifact?.let { CachedFileArtifacts(it, sourceMapFileArtifact, dtsFileArtifact) } + get() = when (this) { + is CachedFileInfo.MainFileCachedInfo -> jsFileArtifact?.let { CachedFileArtifacts(it, sourceMapFileArtifact, null) } + is CachedFileInfo.ExportFileCachedInfo -> jsFileArtifact?.let { CachedFileArtifacts(it, null, dtsFileArtifact) } + is CachedFileInfo.ModuleProxyFileCachedInfo -> jsFileArtifact?.let { CachedFileArtifacts(it, null, dtsFileArtifact) } + } override fun getMainModuleAndDependencies(cacheInfo: List) = null to cacheInfo @@ -188,23 +229,40 @@ class JsPerFileCache(private val moduleArtifacts: List) : JsMult } ?: compilationOutputs override fun loadJsIrModule(cacheInfo: CachedFileInfo): JsIrModule { + if (cacheInfo !is CachedFileInfo.SerializableCachedFileInfo) { + return generateProxyIrModuleWith(cacheInfo.jsIrHeader.externalModuleName, cacheInfo.jsIrHeader.externalModuleName) + } + val fragments = cacheInfo.fileArtifact.loadJsIrFragments() + val isExportFileCachedInfo = cacheInfo is CachedFileInfo.ExportFileCachedInfo return JsIrModule( cacheInfo.jsIrHeader.moduleName, cacheInfo.jsIrHeader.externalModuleName, - listOf(if (cacheInfo.isExportFileCachedInfo) fragments.exportFragment!! else fragments.mainFragment) + listOf(if (isExportFileCachedInfo) fragments.exportFragment!! else fragments.mainFragment), + runIf(isExportFileCachedInfo) { cacheInfo.moduleArtifact.moduleSafeName } ) } override fun loadProgramHeadersFromCache(): List { return moduleArtifacts - .flatMap { module -> - module.fileArtifacts.flatMap { - if (it.isModified()) - module.loadFileInfoFor(it) - else - module.fetchFileInfoFor(it) ?: module.loadFileInfoFor(it) - } + .flatMap { moduleArtifact -> + var hasFileWithJsExportedDeclaration = false + moduleArtifact.fileArtifacts + .flatMap { srcFileArtifact -> + val cachedFileInfo = if (srcFileArtifact.isModified()) + moduleArtifact.loadFileInfoFor(srcFileArtifact) + else + moduleArtifact.fetchFileInfoFor(srcFileArtifact) ?: moduleArtifact.loadFileInfoFor(srcFileArtifact) + + if (!hasFileWithJsExportedDeclaration && cachedFileInfo.hasExportFile()) { + hasFileWithJsExportedDeclaration = true + } + + cachedFileInfo + } + .butIf(hasFileWithJsExportedDeclaration) { + it.plus(moduleArtifact.fetchModuleProxyFileInfo() ?: moduleArtifact.generateModuleProxyFileCachedInfo()) + } } .onEach { headerToCachedInfo[it.jsIrHeader] = it } } @@ -228,4 +286,6 @@ class JsPerFileCache(private val moduleArtifacts: List) : JsMult private data class CachedFileArtifacts(val jsCodeFile: File, val sourceMapFile: File?, val tsDeclarationsFile: File?) private data class LoadedJsIrModuleHeaders(val mainHeader: JsIrModuleHeader, val exportHeader: JsIrModuleHeader?) -} + + private fun List.hasExportFile(): Boolean = size > 1 +} \ No newline at end of file diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt index 658df813f46..be728444288 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt @@ -47,6 +47,12 @@ val String.safeModuleName: String val IrModuleFragment.safeName: String get() = name.asString().safeModuleName +fun generateProxyIrModuleWith(safeName: String, externalName: String) = JsIrModule( + safeName, + externalName, + listOf(JsIrProgramFragment(safeName, "")) +) + enum class JsGenerationGranularity { WHOLE_PROGRAM, PER_MODULE, @@ -301,10 +307,9 @@ class IrModuleToJsTransformer( } private fun IrAndExportedDeclarations.toJsIrProxyModule(): JsIrModule { - return JsIrModule( + return generateProxyIrModuleWith( fragment.safeName, moduleFragmentToNameMapper.getExternalNameFor(fragment), - listOf(JsIrProgramFragment(fragment.safeName, "")) ) } diff --git a/js/js.tests/test/org/jetbrains/kotlin/incremental/AbstractInvalidationTest.kt b/js/js.tests/test/org/jetbrains/kotlin/incremental/AbstractInvalidationTest.kt index 48db98f74d1..c0f521942bc 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/incremental/AbstractInvalidationTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/incremental/AbstractInvalidationTest.kt @@ -261,20 +261,16 @@ abstract class AbstractInvalidationTest( } private fun verifyJsCode(stepId: Int, mainModuleName: String, jsFiles: List) { - val testModuleName = "./$mainModuleName${projectInfo.moduleKind.extension}" try { V8IrJsTestChecker.checkWithTestFunctionArgs( files = jsFiles, - testModuleName = testModuleName, + testModuleName = "./$mainModuleName${projectInfo.moduleKind.extension}", testPackageName = null, testFunctionName = BOX_FUNCTION_NAME, testFunctionArgs = "$stepId", expectedResult = "OK", withModuleSystem = projectInfo.moduleKind in setOf(ModuleKind.COMMON_JS, ModuleKind.UMD, ModuleKind.AMD), - entryModulePath = when (granularity) { - JsGenerationGranularity.PER_FILE -> jsFiles.find { it.endsWith("m.export.mjs") } - else -> jsFiles.last() - } + entryModulePath = jsFiles.last() ) } catch (e: ComparisonFailure) { throw ComparisonFailure("Mismatched box out at step $stepId", e.expected, e.actual) diff --git a/js/js.tests/test/org/jetbrains/kotlin/incremental/IrAbstractInvalidationTest.kt b/js/js.tests/test/org/jetbrains/kotlin/incremental/IrAbstractInvalidationTest.kt index 0de579ef957..316a519b308 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/incremental/IrAbstractInvalidationTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/incremental/IrAbstractInvalidationTest.kt @@ -47,7 +47,7 @@ abstract class AbstractJsIrES6InvalidationPerModuleTest : IrAbstractInvalidation abstract class AbstractJsIrInvalidationPerFileWithPLTest : AbstractJsIrInvalidationWithPLTest( granularity = JsGenerationGranularity.PER_FILE, - workingDirPath = "incrementalOut/invalidationWithPL/perModule" + workingDirPath = "incrementalOut/invalidationWithPL/perFile" ) abstract class AbstractJsIrInvalidationPerModuleWithPLTest : AbstractJsIrInvalidationWithPLTest( diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java index cb4a46ecad5..6ef4d76ae3e 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java @@ -307,6 +307,12 @@ public class JsFirInvalidationPerFileTestGenerated extends AbstractJsFirInvalida runTest("js/js.translator/testData/incremental/invalidation/jsExport/"); } + @Test + @TestMetadata("jsExportWithMultipleFiles") + public void testJsExportWithMultipleFiles() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/"); + } + @Test @TestMetadata("jsModuleAnnotation") public void testJsModuleAnnotation() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java index 3050035a340..b57c83d69b7 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java @@ -307,6 +307,12 @@ public class JsFirInvalidationPerModuleTestGenerated extends AbstractJsFirInvali runTest("js/js.translator/testData/incremental/invalidation/jsExport/"); } + @Test + @TestMetadata("jsExportWithMultipleFiles") + public void testJsExportWithMultipleFiles() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/"); + } + @Test @TestMetadata("jsModuleAnnotation") public void testJsModuleAnnotation() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java index 256f7d22060..61bde7b4984 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java @@ -307,6 +307,12 @@ public class JsIrES6InvalidationPerFileTestGenerated extends AbstractJsIrES6Inva runTest("js/js.translator/testData/incremental/invalidation/jsExport/"); } + @Test + @TestMetadata("jsExportWithMultipleFiles") + public void testJsExportWithMultipleFiles() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/"); + } + @Test @TestMetadata("jsModuleAnnotation") public void testJsModuleAnnotation() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java index 1e1d7ad987d..8f183d3e10e 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java @@ -307,6 +307,12 @@ public class JsIrES6InvalidationPerModuleTestGenerated extends AbstractJsIrES6In runTest("js/js.translator/testData/incremental/invalidation/jsExport/"); } + @Test + @TestMetadata("jsExportWithMultipleFiles") + public void testJsExportWithMultipleFiles() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/"); + } + @Test @TestMetadata("jsModuleAnnotation") public void testJsModuleAnnotation() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java index b9d8ea3899e..1bde5eca39d 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java @@ -307,6 +307,12 @@ public class JsIrInvalidationPerFileTestGenerated extends AbstractJsIrInvalidati runTest("js/js.translator/testData/incremental/invalidation/jsExport/"); } + @Test + @TestMetadata("jsExportWithMultipleFiles") + public void testJsExportWithMultipleFiles() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/"); + } + @Test @TestMetadata("jsModuleAnnotation") public void testJsModuleAnnotation() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java index d59b83c654c..5056467e379 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java @@ -307,6 +307,12 @@ public class JsIrInvalidationPerModuleTestGenerated extends AbstractJsIrInvalida runTest("js/js.translator/testData/incremental/invalidation/jsExport/"); } + @Test + @TestMetadata("jsExportWithMultipleFiles") + public void testJsExportWithMultipleFiles() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/"); + } + @Test @TestMetadata("jsModuleAnnotation") public void testJsModuleAnnotation() throws Exception { diff --git a/js/js.translator/testData/incremental/invalidation/addUpdateRemoveDependentFile/project.info b/js/js.translator/testData/incremental/invalidation/addUpdateRemoveDependentFile/project.info index 1902725d080..5fa26414f4c 100644 --- a/js/js.translator/testData/incremental/invalidation/addUpdateRemoveDependentFile/project.info +++ b/js/js.translator/testData/incremental/invalidation/addUpdateRemoveDependentFile/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1a, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1a, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/addUpdateRemoveDependentModule/project.info b/js/js.translator/testData/incremental/invalidation/addUpdateRemoveDependentModule/project.info index d646e5b5da8..af193c3e8c2 100644 --- a/js/js.translator/testData/incremental/invalidation/addUpdateRemoveDependentModule/project.info +++ b/js/js.translator/testData/incremental/invalidation/addUpdateRemoveDependentModule/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1a, lib1/l1b, main/m, main/m.export + dirty js files: lib1/l1a, lib1/l1b, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/circleExportsUpdate/project.info b/js/js.translator/testData/incremental/invalidation/circleExportsUpdate/project.info index f34a3bc54b2..5434da70dcc 100644 --- a/js/js.translator/testData/incremental/invalidation/circleExportsUpdate/project.info +++ b/js/js.translator/testData/incremental/invalidation/circleExportsUpdate/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/f, lib1/f1, lib1/f2, lib1/f3, main/m, main/m.export + dirty js files: lib1/f, lib1/f1, lib1/f2, lib1/f3, main/m, main/m.export, main STEP 1..3: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/circleInlineImportsUpdate/project.info b/js/js.translator/testData/incremental/invalidation/circleInlineImportsUpdate/project.info index 6b701fb1a69..37ded095eea 100644 --- a/js/js.translator/testData/incremental/invalidation/circleInlineImportsUpdate/project.info +++ b/js/js.translator/testData/incremental/invalidation/circleInlineImportsUpdate/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/f, lib1/f1, lib1/f2, lib1/f3, main/m, main/m.export + dirty js files: lib1/f, lib1/f1, lib1/f2, lib1/f3, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/class/project.info b/js/js.translator/testData/incremental/invalidation/class/project.info index 7472ab233e0..f275ae9993b 100644 --- a/js/js.translator/testData/incremental/invalidation/class/project.info +++ b/js/js.translator/testData/incremental/invalidation/class/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/testEquals, main/testToString, main/testHashCode, main/m, main/m.export + dirty js files: lib1/l1, main/testEquals, main/testToString, main/testHashCode, main/m, main/m.export, main STEP 1..3: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/project.info b/js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/project.info index 9947923d645..72e665ae81b 100644 --- a/js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/project.info +++ b/js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/companionFunction/project.info b/js/js.translator/testData/incremental/invalidation/companionFunction/project.info index 34881b09aa9..962dfdad02c 100644 --- a/js/js.translator/testData/incremental/invalidation/companionFunction/project.info +++ b/js/js.translator/testData/incremental/invalidation/companionFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/companionInlineFunction/project.info b/js/js.translator/testData/incremental/invalidation/companionInlineFunction/project.info index fc8b23ee646..e229c516cdf 100644 --- a/js/js.translator/testData/incremental/invalidation/companionInlineFunction/project.info +++ b/js/js.translator/testData/incremental/invalidation/companionInlineFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1..4: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/companionProperties/project.info b/js/js.translator/testData/incremental/invalidation/companionProperties/project.info index 5fe78a6c064..7b5dc1820e3 100644 --- a/js/js.translator/testData/incremental/invalidation/companionProperties/project.info +++ b/js/js.translator/testData/incremental/invalidation/companionProperties/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, lib2/l2string, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, lib2/l2string, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2 diff --git a/js/js.translator/testData/incremental/invalidation/companionWithStdLibCall/project.info b/js/js.translator/testData/incremental/invalidation/companionWithStdLibCall/project.info index 97b168f6ca1..def39188c74 100644 --- a/js/js.translator/testData/incremental/invalidation/companionWithStdLibCall/project.info +++ b/js/js.translator/testData/incremental/invalidation/companionWithStdLibCall/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/f, main/m, main/m.export + dirty js files: lib1/l1, main/f, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/constVals/project.fir.info b/js/js.translator/testData/incremental/invalidation/constVals/project.fir.info index ce25de70921..993a334fe0f 100644 --- a/js/js.translator/testData/incremental/invalidation/constVals/project.fir.info +++ b/js/js.translator/testData/incremental/invalidation/constVals/project.fir.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1..3: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/constVals/project.info b/js/js.translator/testData/incremental/invalidation/constVals/project.info index b6aaddd92a2..dfd281f8e17 100644 --- a/js/js.translator/testData/incremental/invalidation/constVals/project.info +++ b/js/js.translator/testData/incremental/invalidation/constVals/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2 diff --git a/js/js.translator/testData/incremental/invalidation/crossModuleReferences/project.info b/js/js.translator/testData/incremental/invalidation/crossModuleReferences/project.info index 5f7f59d5c06..58036dbaba8 100644 --- a/js/js.translator/testData/incremental/invalidation/crossModuleReferences/project.info +++ b/js/js.translator/testData/incremental/invalidation/crossModuleReferences/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1..4: libs: lib1, lib2, main dirty js modules: lib1, lib2 diff --git a/js/js.translator/testData/incremental/invalidation/enum/project.info b/js/js.translator/testData/incremental/invalidation/enum/project.info index d86444f65f0..1b7fbcc6303 100644 --- a/js/js.translator/testData/incremental/invalidation/enum/project.info +++ b/js/js.translator/testData/incremental/invalidation/enum/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/testEnumEntries, main/testEnumValues, main/m, main/m.export + dirty js files: lib1/l1, main/testEnumEntries, main/testEnumValues, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 @@ -12,7 +12,7 @@ STEP 2: language: +EnumEntries libs: lib1, main dirty js modules: main, lib1 - dirty js files: lib1/l1, main/testEnumEntries, main/testEnumValues, main/m, main/m.export + dirty js files: lib1/l1, main/testEnumEntries, main/testEnumValues, main/m, main/m.export, main STEP 3: language: +EnumEntries libs: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/enumsInInlineFunctions/project.info b/js/js.translator/testData/incremental/invalidation/enumsInInlineFunctions/project.info index 104cb1593e9..c12f0cd8058 100644 --- a/js/js.translator/testData/incremental/invalidation/enumsInInlineFunctions/project.info +++ b/js/js.translator/testData/incremental/invalidation/enumsInInlineFunctions/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1..2: libs: lib1, lib2, main dirty js modules: lib1, lib2 diff --git a/js/js.translator/testData/incremental/invalidation/exceptionsFromInlineFunction/project.info b/js/js.translator/testData/incremental/invalidation/exceptionsFromInlineFunction/project.info index 9d1a12deda9..8682b544302 100644 --- a/js/js.translator/testData/incremental/invalidation/exceptionsFromInlineFunction/project.info +++ b/js/js.translator/testData/incremental/invalidation/exceptionsFromInlineFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2 diff --git a/js/js.translator/testData/incremental/invalidation/exportsThroughInlineFunction/project.info b/js/js.translator/testData/incremental/invalidation/exportsThroughInlineFunction/project.info index 8feef46a3ef..bbb6e2cf5ab 100644 --- a/js/js.translator/testData/incremental/invalidation/exportsThroughInlineFunction/project.info +++ b/js/js.translator/testData/incremental/invalidation/exportsThroughInlineFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, lib1/l2, main/m, main/m.export + dirty js files: lib1/l1, lib1/l2, main/m, main/m.export, main STEP 1..4: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/fakeOverrideClassFunctionQualifiers/project.info b/js/js.translator/testData/incremental/invalidation/fakeOverrideClassFunctionQualifiers/project.info index 7d4e2c809e3..00cc8557756 100644 --- a/js/js.translator/testData/incremental/invalidation/fakeOverrideClassFunctionQualifiers/project.info +++ b/js/js.translator/testData/incremental/invalidation/fakeOverrideClassFunctionQualifiers/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/fakeOverrideInheritance/project.info b/js/js.translator/testData/incremental/invalidation/fakeOverrideInheritance/project.info index 8d599d2c26a..692ad20d00b 100644 --- a/js/js.translator/testData/incremental/invalidation/fakeOverrideInheritance/project.info +++ b/js/js.translator/testData/incremental/invalidation/fakeOverrideInheritance/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/A, lib1/B, lib1/C, main/classABC, main/m, main/m.export + dirty js files: lib1/A, lib1/B, lib1/C, main/classABC, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineExtension/project.info b/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineExtension/project.info index 5ba54a42900..6ae62e695ab 100644 --- a/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineExtension/project.info +++ b/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineExtension/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/classA, main/m, main/m.export + dirty js files: lib1/l1, main/classA, main/m, main/m.export, main STEP 1..4: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineFunction/project.info b/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineFunction/project.info index 0997aa0b0d2..21ac0b25149 100644 --- a/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineFunction/project.info +++ b/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1..2: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineProperty/project.info b/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineProperty/project.info index c6b63f5e31b..62d10c0abf2 100644 --- a/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineProperty/project.info +++ b/js/js.translator/testData/incremental/invalidation/fakeOverrideInlineProperty/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/classA, main/m, main/m.export + dirty js files: lib1/l1, main/classA, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/fakeOverrideInterfaceFunctionQualifiers/project.info b/js/js.translator/testData/incremental/invalidation/fakeOverrideInterfaceFunctionQualifiers/project.info index 953afe51b00..fc381177493 100644 --- a/js/js.translator/testData/incremental/invalidation/fakeOverrideInterfaceFunctionQualifiers/project.info +++ b/js/js.translator/testData/incremental/invalidation/fakeOverrideInterfaceFunctionQualifiers/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/class2, lib2/object2, main/m, main/m.export + dirty js files: lib1/l1, lib2/class2, lib2/object2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/fastPath1/project.info b/js/js.translator/testData/incremental/invalidation/fastPath1/project.info index 01d9e56bb09..26672df13de 100644 --- a/js/js.translator/testData/incremental/invalidation/fastPath1/project.info +++ b/js/js.translator/testData/incremental/invalidation/fastPath1/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib2 diff --git a/js/js.translator/testData/incremental/invalidation/fastPath2/project.info b/js/js.translator/testData/incremental/invalidation/fastPath2/project.info index 9549828d811..029cfb3fe74 100644 --- a/js/js.translator/testData/incremental/invalidation/fastPath2/project.info +++ b/js/js.translator/testData/incremental/invalidation/fastPath2/project.info @@ -3,6 +3,6 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/friendDependency/project.info b/js/js.translator/testData/incremental/invalidation/friendDependency/project.info index e42f0dee435..7926b966dc3 100644 --- a/js/js.translator/testData/incremental/invalidation/friendDependency/project.info +++ b/js/js.translator/testData/incremental/invalidation/friendDependency/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/publicClass, main/test, main/m, main/m.export + dirty js files: lib1/l1, main/publicClass, main/test, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/functionDefaultParams/project.info b/js/js.translator/testData/incremental/invalidation/functionDefaultParams/project.info index 4178bed6a0a..90dbd1cf24d 100644 --- a/js/js.translator/testData/incremental/invalidation/functionDefaultParams/project.info +++ b/js/js.translator/testData/incremental/invalidation/functionDefaultParams/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/functionSignature/project.info b/js/js.translator/testData/incremental/invalidation/functionSignature/project.info index f82f10a674b..0709ea1596e 100644 --- a/js/js.translator/testData/incremental/invalidation/functionSignature/project.info +++ b/js/js.translator/testData/incremental/invalidation/functionSignature/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..6: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/functionTypeInterface/project.info b/js/js.translator/testData/incremental/invalidation/functionTypeInterface/project.info index 78f166ffbdc..b7860b8ce9f 100644 --- a/js/js.translator/testData/incremental/invalidation/functionTypeInterface/project.info +++ b/js/js.translator/testData/incremental/invalidation/functionTypeInterface/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2b, lib2/l2a, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2b, lib2/l2a, main/m, main/m.export, main STEP 1..4: libs: lib1, lib2, main dirty js modules: lib2 diff --git a/js/js.translator/testData/incremental/invalidation/functionTypeInterfaceReflect/project.info b/js/js.translator/testData/incremental/invalidation/functionTypeInterfaceReflect/project.info index a65663a220e..1d16aff4753 100644 --- a/js/js.translator/testData/incremental/invalidation/functionTypeInterfaceReflect/project.info +++ b/js/js.translator/testData/incremental/invalidation/functionTypeInterfaceReflect/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/A, lib1/B, lib1/C, main/test, main/m, main/m.export + dirty js files: lib1/A, lib1/B, lib1/C, main/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/genericFunctions/project.info b/js/js.translator/testData/incremental/invalidation/genericFunctions/project.info index 95900bd4f49..1cb61eedae3 100644 --- a/js/js.translator/testData/incremental/invalidation/genericFunctions/project.info +++ b/js/js.translator/testData/incremental/invalidation/genericFunctions/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..4: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/genericInlineFunctions/project.info b/js/js.translator/testData/incremental/invalidation/genericInlineFunctions/project.info index 8f0434bfe07..57be0086654 100644 --- a/js/js.translator/testData/incremental/invalidation/genericInlineFunctions/project.info +++ b/js/js.translator/testData/incremental/invalidation/genericInlineFunctions/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main, libProxy STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..7: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/gettersAndSettersInlining/project.info b/js/js.translator/testData/incremental/invalidation/gettersAndSettersInlining/project.info index 0daafad9237..f5a097b934a 100644 --- a/js/js.translator/testData/incremental/invalidation/gettersAndSettersInlining/project.info +++ b/js/js.translator/testData/incremental/invalidation/gettersAndSettersInlining/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1..3: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/inlineBecomeNonInline/project.info b/js/js.translator/testData/incremental/invalidation/inlineBecomeNonInline/project.info index eba29218f54..3f1eaae0f91 100644 --- a/js/js.translator/testData/incremental/invalidation/inlineBecomeNonInline/project.info +++ b/js/js.translator/testData/incremental/invalidation/inlineBecomeNonInline/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionAnnotations/project.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionAnnotations/project.info index 47a5e01e4bf..9189dbcaad3 100644 --- a/js/js.translator/testData/incremental/invalidation/inlineFunctionAnnotations/project.info +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionAnnotations/project.info @@ -3,11 +3,11 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, lib1/l1.export, main/m + dirty js files: lib1/l1, lib1/l1.export, lib1, main/m STEP 2..3: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionAsFunctionReference/project.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionAsFunctionReference/project.info index 16c89f0d45b..3d06d21ffff 100644 --- a/js/js.translator/testData/incremental/invalidation/inlineFunctionAsFunctionReference/project.info +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionAsFunctionReference/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, lib1/l2, main/m, main/m.export + dirty js files: lib1/l1, lib1/l2, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionAsParam/project.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionAsParam/project.info index 6215b87a451..858b5286d67 100644 --- a/js/js.translator/testData/incremental/invalidation/inlineFunctionAsParam/project.info +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionAsParam/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..9: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionCircleUsage/project.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionCircleUsage/project.info index 80f5b5f6cee..b57f2ef625e 100644 --- a/js/js.translator/testData/incremental/invalidation/inlineFunctionCircleUsage/project.info +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionCircleUsage/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1a, lib1/l1b, main/m, main/m.export + dirty js files: lib1/l1a, lib1/l1b, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionDefaultParams/project.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionDefaultParams/project.info index e902cbd0f6b..1f32f679ca2 100644 --- a/js/js.translator/testData/incremental/invalidation/inlineFunctionDefaultParams/project.info +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionDefaultParams/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..3: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/project.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/project.info index e6ef57b6039..c0ef4b550d6 100644 --- a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/project.info +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/interfaceOpenMethods/project.info b/js/js.translator/testData/incremental/invalidation/interfaceOpenMethods/project.info index 93dc87701bb..0fc75a1da5a 100644 --- a/js/js.translator/testData/incremental/invalidation/interfaceOpenMethods/project.info +++ b/js/js.translator/testData/incremental/invalidation/interfaceOpenMethods/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/InterfaceA, lib1/InterfaceB, lib1/InterfaceC, lib2/MyClass, lib2/GetA, lib2/GetB, lib2/GetC, main/test, main/m, main/m.export + dirty js files: lib1/InterfaceA, lib1/InterfaceB, lib1/InterfaceC, lib2/MyClass, lib2/GetA, lib2/GetB, lib2/GetC, main/test, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/interfaceOpenMethodsInOpenClass/project.info b/js/js.translator/testData/incremental/invalidation/interfaceOpenMethodsInOpenClass/project.info index db780c01afa..8505740a610 100644 --- a/js/js.translator/testData/incremental/invalidation/interfaceOpenMethodsInOpenClass/project.info +++ b/js/js.translator/testData/incremental/invalidation/interfaceOpenMethodsInOpenClass/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/InterfaceA, lib1/ClassB, lib2/MyClass, lib2/GetA, lib2/GetB, main/test, main/m, main/m.export + dirty js files: lib1/InterfaceA, lib1/ClassB, lib2/MyClass, lib2/GetA, lib2/GetB, main/test, main/m, main/m.export, main STEP 1..3: libs: lib1, lib2, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/interfaceSuperUsage/project.info b/js/js.translator/testData/incremental/invalidation/interfaceSuperUsage/project.info index 8b62a7f0771..4fbf842b067 100644 --- a/js/js.translator/testData/incremental/invalidation/interfaceSuperUsage/project.info +++ b/js/js.translator/testData/incremental/invalidation/interfaceSuperUsage/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/Interface, lib1/ClassA, lib1/ClassB, main/test, main/m, main/m.export + dirty js files: lib1/Interface, lib1/ClassA, lib1/ClassB, main/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/interfaceWithDefaultParams/project.info b/js/js.translator/testData/incremental/invalidation/interfaceWithDefaultParams/project.info index 193204ca4b2..370cd255e5e 100644 --- a/js/js.translator/testData/incremental/invalidation/interfaceWithDefaultParams/project.info +++ b/js/js.translator/testData/incremental/invalidation/interfaceWithDefaultParams/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, lib2/l2test, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, lib2/l2test, main/m, main/m.export, main STEP 1..2: libs: lib1, lib2, main dirty js modules: lib1, lib2 diff --git a/js/js.translator/testData/incremental/invalidation/jsCode/project.info b/js/js.translator/testData/incremental/invalidation/jsCode/project.info index e902cbd0f6b..1f32f679ca2 100644 --- a/js/js.translator/testData/incremental/invalidation/jsCode/project.info +++ b/js/js.translator/testData/incremental/invalidation/jsCode/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..3: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/project.fir.info b/js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/project.fir.info index 3ea0c9b7115..2ac26868bd2 100644 --- a/js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/project.fir.info +++ b/js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/project.fir.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, lib1/js, lib1/test, main/m, main/m.export + dirty js files: lib1/l1, lib1/js, lib1/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/project.info b/js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/project.info index 8a3dc88734c..be002ef912d 100644 --- a/js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/project.info +++ b/js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, lib1/js, lib1/test, main/m, main/m.export + dirty js files: lib1/l1, lib1/js, lib1/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/jsExport/project.info b/js/js.translator/testData/incremental/invalidation/jsExport/project.info index 0f412ed2a5a..cc4061625e6 100644 --- a/js/js.translator/testData/incremental/invalidation/jsExport/project.info +++ b/js/js.translator/testData/incremental/invalidation/jsExport/project.info @@ -3,11 +3,11 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, lib1/l1.export, main/m + dirty js files: lib1/l1, lib1/l1.export, lib1, main/m STEP 2..3: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.0.kt b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.0.kt new file mode 100644 index 00000000000..6303003d951 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.0.kt @@ -0,0 +1 @@ +fun foo() = 77 diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.1.kt b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.1.kt new file mode 100644 index 00000000000..cd49e06c013 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.1.kt @@ -0,0 +1,2 @@ +@JsExport +fun foo() = 77 diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.5.kt b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.5.kt new file mode 100644 index 00000000000..6303003d951 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.5.kt @@ -0,0 +1 @@ +fun foo() = 77 diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.6.kt b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.6.kt new file mode 100644 index 00000000000..208c1fc173f --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l1.6.kt @@ -0,0 +1,2 @@ +@JsExport +class Bar diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.2.kt b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.2.kt new file mode 100644 index 00000000000..f6673f853ba --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.2.kt @@ -0,0 +1 @@ +class Bar diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.3.kt b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.3.kt new file mode 100644 index 00000000000..208c1fc173f --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.3.kt @@ -0,0 +1,2 @@ +@JsExport +class Bar diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.6.kt b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.6.kt new file mode 100644 index 00000000000..6303003d951 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/l2.6.kt @@ -0,0 +1 @@ +fun foo() = 77 diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/module.info b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/module.info new file mode 100644 index 00000000000..264a759d339 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/lib1/module.info @@ -0,0 +1,29 @@ +STEP 0: + modifications: + U : l1.0.kt -> l1.kt + added file: l1.kt +STEP 1: + modifications: + U : l1.1.kt -> l1.kt + modified ir: l1.kt +STEP 2: + modifications: + U : l2.2.kt -> l2.kt + added file: l2.kt +STEP 3: + modifications: + U : l2.3.kt -> l2.kt + modified ir: l2.kt +STEP 4: + modifications: + D : l1.kt + removed file: l1.kt +STEP 5: + modifications: + U : l1.5.kt -> l1.kt + added file: l1.kt +STEP 6: + modifications: + U : l1.6.kt -> l1.kt + U : l2.6.kt -> l2.kt + modified ir: l1.kt, l2.kt diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/main/m.kt b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/main/m.kt new file mode 100644 index 00000000000..111fca38b0d --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/main/m.kt @@ -0,0 +1,3 @@ +fun box(): String { + return "OK" +} diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/main/module.info b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/main/module.info new file mode 100644 index 00000000000..01bad736b09 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/main/module.info @@ -0,0 +1,3 @@ +STEP 0: + added file: m.kt +STEP 1..6: \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/project.info b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/project.info new file mode 100644 index 00000000000..6b023f79bd1 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/jsExportWithMultipleFiles/project.info @@ -0,0 +1,30 @@ +MODULES: lib1, main + +STEP 0: + libs: lib1, main + dirty js modules: lib1, main + dirty js files: lib1/l1, main/m, main/m.export, main +STEP 1: + libs: lib1, main + dirty js modules: lib1 + dirty js files: lib1/l1, lib1/l1.export, lib1 +STEP 2: + libs: lib1, main + dirty js modules: lib1 + dirty js files: lib1/l2 +STEP 3: + libs: lib1, main + dirty js modules: lib1 + dirty js files: lib1/l2, lib1/l2.export, lib1 +STEP 4: + libs: lib1, main + dirty js modules: lib1 + dirty js files: lib1 +STEP 5: + libs: lib1, main + dirty js modules: lib1 + dirty js files: lib1/l1 +STEP 6: + libs: lib1, main + dirty js modules: lib1 + dirty js files: lib1/l1, lib1/l1.export, lib1/l2, lib1 \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/project.info b/js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/project.info index 41251fc3076..039473318d2 100644 --- a/js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/project.info +++ b/js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/ObjectA, lib1/ObjectB, main/m, main/m.export + dirty js files: lib1/ObjectA, lib1/ObjectB, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/languageVersionSettings/project.info b/js/js.translator/testData/incremental/invalidation/languageVersionSettings/project.info index 6c21be44e08..a8e40b91c9f 100644 --- a/js/js.translator/testData/incremental/invalidation/languageVersionSettings/project.info +++ b/js/js.translator/testData/incremental/invalidation/languageVersionSettings/project.info @@ -3,22 +3,22 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1: language: +TypeAliases libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 2: language: +TypeAliases, +BoundCallableReferences, +LocalDelegatedProperties, +TopLevelSealedInheritance libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 3: language: +TypeAliases, +BoundCallableReferences, +TopLevelSealedInheritance libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 4: language: +BoundCallableReferences, +TopLevelSealedInheritance, +TypeAliases libs: lib1, main @@ -29,7 +29,7 @@ STEP 6: language: +BoundCallableReferences, -TypeAliases, +TopLevelSealedInheritance libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 7: language: +TopLevelSealedInheritance, +BoundCallableReferences, +TypeAliases libs: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/localInlineFunction/project.info b/js/js.translator/testData/incremental/invalidation/localInlineFunction/project.info index 3b4f501feba..f62cd7ed838 100644 --- a/js/js.translator/testData/incremental/invalidation/localInlineFunction/project.info +++ b/js/js.translator/testData/incremental/invalidation/localInlineFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/localObjectsLeakThroughInterface/project.info b/js/js.translator/testData/incremental/invalidation/localObjectsLeakThroughInterface/project.info index f529ee1fa07..2f53e046705 100644 --- a/js/js.translator/testData/incremental/invalidation/localObjectsLeakThroughInterface/project.info +++ b/js/js.translator/testData/incremental/invalidation/localObjectsLeakThroughInterface/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/classA, lib1/interface, main/test, main/m, main/m.export + dirty js files: lib1/classA, lib1/interface, main/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/mainModuleInvalidation/project.info b/js/js.translator/testData/incremental/invalidation/mainModuleInvalidation/project.info index 8ff11c26dd4..20339ac652b 100644 --- a/js/js.translator/testData/incremental/invalidation/mainModuleInvalidation/project.info +++ b/js/js.translator/testData/incremental/invalidation/mainModuleInvalidation/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m0, main/m1, main/m, main/m.export + dirty js files: lib1/l1, main/m0, main/m1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: main diff --git a/js/js.translator/testData/incremental/invalidation/moveAndModifyInlineFunction/project.info b/js/js.translator/testData/incremental/invalidation/moveAndModifyInlineFunction/project.info index c2884e1cd61..c2561e2f621 100644 --- a/js/js.translator/testData/incremental/invalidation/moveAndModifyInlineFunction/project.info +++ b/js/js.translator/testData/incremental/invalidation/moveAndModifyInlineFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1a, lib1/l1b, lib1/test, main/m, main/m.export + dirty js files: lib1/l1a, lib1/l1b, lib1/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/moveExternalDeclarationsBetweenFiles/project.info b/js/js.translator/testData/incremental/invalidation/moveExternalDeclarationsBetweenFiles/project.info index aa364a3ab8d..f621299596d 100644 --- a/js/js.translator/testData/incremental/invalidation/moveExternalDeclarationsBetweenFiles/project.info +++ b/js/js.translator/testData/incremental/invalidation/moveExternalDeclarationsBetweenFiles/project.info @@ -4,7 +4,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main - dirty js files: lib1/demo, lib1/JsModuleA, lib1/JsModuleB, lib2/test, main/m, main/m.export + dirty js files: lib1/demo, lib1/JsModuleA, lib1/JsModuleB, lib2/test, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js files: lib1/demo, lib1/JsModuleA, lib1/JsModuleB diff --git a/js/js.translator/testData/incremental/invalidation/moveFilesBetweenModules/project.info b/js/js.translator/testData/incremental/invalidation/moveFilesBetweenModules/project.info index 0f20ff826c8..d8bbf0c2a2e 100644 --- a/js/js.translator/testData/incremental/invalidation/moveFilesBetweenModules/project.info +++ b/js/js.translator/testData/incremental/invalidation/moveFilesBetweenModules/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, lib3, main STEP 0: libs: lib1, lib2, lib3, main dirty js modules: lib1, lib2, lib3, main - dirty js files: lib1/l11, lib1/l12, lib2/l21, lib3/l3, main/m, main/m.export + dirty js files: lib1/l11, lib1/l12, lib2/l21, lib3/l3, main/m, main/m.export, main STEP 1: libs: lib1, lib2, lib3, main dirty js modules: lib1, lib2, lib3, main diff --git a/js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/project.info b/js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/project.info index 3e2550f7015..0626cd870c2 100644 --- a/js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/project.info +++ b/js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, lib3, main STEP 0: libs: lib1, lib2, lib3, main dirty js modules: lib1, lib2, lib3, main - dirty js files: lib1/l1, lib2/l2, lib3/l3, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, lib3/l3, main/m, main/m.export, main STEP 1: libs: lib1, lib2, lib3, main dirty js modules: lib1, lib2, lib3, main diff --git a/js/js.translator/testData/incremental/invalidation/nestedClass/project.info b/js/js.translator/testData/incremental/invalidation/nestedClass/project.info index bfa71d9498b..efd81795389 100644 --- a/js/js.translator/testData/incremental/invalidation/nestedClass/project.info +++ b/js/js.translator/testData/incremental/invalidation/nestedClass/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/nonInlineBecomeInline/project.info b/js/js.translator/testData/incremental/invalidation/nonInlineBecomeInline/project.info index 7e1fd8b652b..056495dfeff 100644 --- a/js/js.translator/testData/incremental/invalidation/nonInlineBecomeInline/project.info +++ b/js/js.translator/testData/incremental/invalidation/nonInlineBecomeInline/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..3: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/privateDeclarationLeakThroughDefaultParam/project.info b/js/js.translator/testData/incremental/invalidation/privateDeclarationLeakThroughDefaultParam/project.info index a0edf7d288a..697bdad2eff 100644 --- a/js/js.translator/testData/incremental/invalidation/privateDeclarationLeakThroughDefaultParam/project.info +++ b/js/js.translator/testData/incremental/invalidation/privateDeclarationLeakThroughDefaultParam/project.info @@ -3,7 +3,7 @@ MODULES: main STEP 0: libs: main dirty js modules: main - dirty js files: main/f, main/m, main/m.export + dirty js files: main/f, main/m, main/m.export, main STEP 1..2: libs: main dirty js modules: main diff --git a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/project.info b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/project.info index 34881b09aa9..962dfdad02c 100644 --- a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/project.info +++ b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/privateObjectsLeakThroughSealedInterface/project.info b/js/js.translator/testData/incremental/invalidation/privateObjectsLeakThroughSealedInterface/project.info index b55216d024c..5403879bb10 100644 --- a/js/js.translator/testData/incremental/invalidation/privateObjectsLeakThroughSealedInterface/project.info +++ b/js/js.translator/testData/incremental/invalidation/privateObjectsLeakThroughSealedInterface/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/classA, lib1/interface, main/test, main/m, main/m.export + dirty js files: lib1/classA, lib1/interface, main/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/removeFile/project.info b/js/js.translator/testData/incremental/invalidation/removeFile/project.info index 925d5a09a4b..e16097c2244 100644 --- a/js/js.translator/testData/incremental/invalidation/removeFile/project.info +++ b/js/js.translator/testData/incremental/invalidation/removeFile/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1_0, lib1/l1_1, lib2/l2_0, lib2/l2_1, main/m, main/m.export + dirty js files: lib1/l1_0, lib1/l1_1, lib2/l2_0, lib2/l2_1, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/removeModule/project.info b/js/js.translator/testData/incremental/invalidation/removeModule/project.info index 7c48c587942..989936e3b90 100644 --- a/js/js.translator/testData/incremental/invalidation/removeModule/project.info +++ b/js/js.translator/testData/incremental/invalidation/removeModule/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2 diff --git a/js/js.translator/testData/incremental/invalidation/removeUnusedFile/project.info b/js/js.translator/testData/incremental/invalidation/removeUnusedFile/project.info index 48fa4f78fdc..fd240ec61fd 100644 --- a/js/js.translator/testData/incremental/invalidation/removeUnusedFile/project.info +++ b/js/js.translator/testData/incremental/invalidation/removeUnusedFile/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1_0, lib1/l1_1, main/m, main/m.export + dirty js files: lib1/l1_0, lib1/l1_1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/renameFile/project.info b/js/js.translator/testData/incremental/invalidation/renameFile/project.info index abc96f89a2b..12eb694ae82 100644 --- a/js/js.translator/testData/incremental/invalidation/renameFile/project.info +++ b/js/js.translator/testData/incremental/invalidation/renameFile/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/renameModule/project.info b/js/js.translator/testData/incremental/invalidation/renameModule/project.info index 04c9b5ed985..591ba8ff0f1 100644 --- a/js/js.translator/testData/incremental/invalidation/renameModule/project.info +++ b/js/js.translator/testData/incremental/invalidation/renameModule/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib1-new, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..2: libs: lib1-new, main dirty js modules: lib1-new, main diff --git a/js/js.translator/testData/incremental/invalidation/simple/project.info b/js/js.translator/testData/incremental/invalidation/simple/project.info index 34881b09aa9..962dfdad02c 100644 --- a/js/js.translator/testData/incremental/invalidation/simple/project.info +++ b/js/js.translator/testData/incremental/invalidation/simple/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/splitJoinModule/project.info b/js/js.translator/testData/incremental/invalidation/splitJoinModule/project.info index 8a774ab7764..2c8eae97520 100644 --- a/js/js.translator/testData/incremental/invalidation/splitJoinModule/project.info +++ b/js/js.translator/testData/incremental/invalidation/splitJoinModule/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib1-a, lib1-b, lib1-c, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1a, lib1/l1b, lib1/l1c, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1a, lib1/l1b, lib1/l1c, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1-a, lib1-b, lib1-c, lib2, main dirty js modules: lib1-a, lib1-b, lib1-c, lib2 diff --git a/js/js.translator/testData/incremental/invalidation/suspendFunctions/project.info b/js/js.translator/testData/incremental/invalidation/suspendFunctions/project.info index 15348e6f334..9a3732dd54c 100644 --- a/js/js.translator/testData/incremental/invalidation/suspendFunctions/project.info +++ b/js/js.translator/testData/incremental/invalidation/suspendFunctions/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidation/suspendInterfaceWithDefaultParams/project.info b/js/js.translator/testData/incremental/invalidation/suspendInterfaceWithDefaultParams/project.info index 9232668e447..6101b130062 100644 --- a/js/js.translator/testData/incremental/invalidation/suspendInterfaceWithDefaultParams/project.info +++ b/js/js.translator/testData/incremental/invalidation/suspendInterfaceWithDefaultParams/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1A, lib1/l1I, lib2/l2A, main/m, main/m.export + dirty js files: lib1/l1A, lib1/l1I, lib2/l2A, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/toplevelProperties/project.info b/js/js.translator/testData/incremental/invalidation/toplevelProperties/project.info index a69d7878526..0af70cc6606 100644 --- a/js/js.translator/testData/incremental/invalidation/toplevelProperties/project.info +++ b/js/js.translator/testData/incremental/invalidation/toplevelProperties/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, lib2/l2globalVal, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, lib2/l2globalVal, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/project.info b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/project.info index 92d45af0fb7..65372b8b1f8 100644 --- a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/project.info +++ b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/typeScriptExportsPerFile/project.info b/js/js.translator/testData/incremental/invalidation/typeScriptExportsPerFile/project.info index 76c87fda9cd..27e56553810 100644 --- a/js/js.translator/testData/incremental/invalidation/typeScriptExportsPerFile/project.info +++ b/js/js.translator/testData/incremental/invalidation/typeScriptExportsPerFile/project.info @@ -4,16 +4,16 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main - dirty js files: lib1/l1, lib1/l1.export, lib2/l2 + dirty js files: lib1/l1, lib1/l1.export, lib1, lib2/l2 STEP 2: libs: lib1, lib2, main dirty js files: lib1/l1, lib1/l1.export, lib2/l2 STEP 3: libs: lib1, lib2, main - dirty js files: lib2/l2, lib2/l2.export, main/m + dirty js files: lib2/l2, lib2/l2.export, lib2, main/m STEP 4: libs: lib1, lib2, main dirty js files: lib1/l1, lib2/l2 diff --git a/js/js.translator/testData/incremental/invalidation/unicodeSerializationAndDeserialization/project.info b/js/js.translator/testData/incremental/invalidation/unicodeSerializationAndDeserialization/project.info index 24168ea7e72..1bbe535f2e9 100644 --- a/js/js.translator/testData/incremental/invalidation/unicodeSerializationAndDeserialization/project.info +++ b/js/js.translator/testData/incremental/invalidation/unicodeSerializationAndDeserialization/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib3, lib2, main STEP 0: libs: lib1, lib3, lib2, main dirty js modules: lib1, lib2, lib3, main - dirty js files: lib1/l1, lib2/l2, lib3/l3, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, lib3/l3, main/m, main/m.export, main STEP 1: libs: lib1, lib3, lib2, main dirty js modules: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/updateExports/project.info b/js/js.translator/testData/incremental/invalidation/updateExports/project.info index 438e7bad534..b2c35437b3d 100644 --- a/js/js.translator/testData/incremental/invalidation/updateExports/project.info +++ b/js/js.translator/testData/incremental/invalidation/updateExports/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1a, lib1/l1b, lib1/l1c, lib1/l1d, lib2/l2a, main/m, main/m.export + dirty js files: lib1/l1a, lib1/l1b, lib1/l1c, lib1/l1d, lib2/l2a, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib2 diff --git a/js/js.translator/testData/incremental/invalidation/updateExportsAndInlineImports/project.info b/js/js.translator/testData/incremental/invalidation/updateExportsAndInlineImports/project.info index 4d0ca29cc7b..2c762f743d2 100644 --- a/js/js.translator/testData/incremental/invalidation/updateExportsAndInlineImports/project.info +++ b/js/js.translator/testData/incremental/invalidation/updateExportsAndInlineImports/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1a, lib1/l1b, lib2/l2a, main/m, main/m.export + dirty js files: lib1/l1a, lib1/l1b, lib2/l2a, main/m, main/m.export, main STEP 1: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidation/variance/project.info b/js/js.translator/testData/incremental/invalidation/variance/project.info index 15348e6f334..9a3732dd54c 100644 --- a/js/js.translator/testData/incremental/invalidation/variance/project.info +++ b/js/js.translator/testData/incremental/invalidation/variance/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/m, main/m.export + dirty js files: lib1/l1, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidationWithPL/changeFunctionSignature/project.info b/js/js.translator/testData/incremental/invalidationWithPL/changeFunctionSignature/project.info index a9a7f966121..fedc02b2f92 100644 --- a/js/js.translator/testData/incremental/invalidationWithPL/changeFunctionSignature/project.info +++ b/js/js.translator/testData/incremental/invalidationWithPL/changeFunctionSignature/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/test, main/m, main/m.export + dirty js files: lib1/l1, main/test, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidationWithPL/interfaceBecomeClass/project.info b/js/js.translator/testData/incremental/invalidationWithPL/interfaceBecomeClass/project.info index d99cd13769e..7842cf06349 100644 --- a/js/js.translator/testData/incremental/invalidationWithPL/interfaceBecomeClass/project.info +++ b/js/js.translator/testData/incremental/invalidationWithPL/interfaceBecomeClass/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/klass, main/test, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/klass, main/test, main/m, main/m.export, main STEP 1..2: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidationWithPL/removeFunction/project.info b/js/js.translator/testData/incremental/invalidationWithPL/removeFunction/project.info index 37fdd8ef827..e76e0b04eae 100644 --- a/js/js.translator/testData/incremental/invalidationWithPL/removeFunction/project.info +++ b/js/js.translator/testData/incremental/invalidationWithPL/removeFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1, main/test, main/m, main/m.export + dirty js files: lib1/l1, main/test, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromBlock/project.info b/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromBlock/project.info index 1855ee6c037..441f77a21c7 100644 --- a/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromBlock/project.info +++ b/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromBlock/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1a, lib1/l1b, lib1/l1c, main/test, main/m, main/m.export + dirty js files: lib1/l1a, lib1/l1b, lib1/l1c, main/test, main/m, main/m.export, main STEP 1..2: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromChainCall/project.info b/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromChainCall/project.info index efa0cdcbc1e..40b07a11afe 100644 --- a/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromChainCall/project.info +++ b/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromChainCall/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1a, lib1/klass, main/test, main/m, main/m.export + dirty js files: lib1/l1a, lib1/klass, main/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromElvis/project.info b/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromElvis/project.info index 1357a5881d0..6aa4a3bdafc 100644 --- a/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromElvis/project.info +++ b/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromElvis/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1a, lib1/l1b, main/test, main/m, main/m.export + dirty js files: lib1/l1a, lib1/l1b, main/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main diff --git a/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromInline/project.info b/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromInline/project.info index 4e6f7bac037..d0d64019184 100644 --- a/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromInline/project.info +++ b/js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromInline/project.info @@ -3,7 +3,7 @@ MODULES: lib1, lib2, main STEP 0: libs: lib1, lib2, main dirty js modules: lib1, lib2, main - dirty js files: lib1/l1, lib2/l2, main/test, main/m, main/m.export + dirty js files: lib1/l1, lib2/l2, main/test, main/m, main/m.export, main STEP 1..2: libs: lib1, lib2, main dirty js modules: lib1, lib2, main diff --git a/js/js.translator/testData/incremental/invalidationWithPL/removeInlineFunction/project.info b/js/js.translator/testData/incremental/invalidationWithPL/removeInlineFunction/project.info index 8fbee6d46be..9db8b0d3178 100644 --- a/js/js.translator/testData/incremental/invalidationWithPL/removeInlineFunction/project.info +++ b/js/js.translator/testData/incremental/invalidationWithPL/removeInlineFunction/project.info @@ -3,7 +3,7 @@ MODULES: lib1, main STEP 0: libs: lib1, main dirty js modules: lib1, main - dirty js files: lib1/l1a, lib1/l1b, main/test, main/m, main/m.export + dirty js files: lib1/l1a, lib1/l1b, main/test, main/m, main/m.export, main STEP 1: libs: lib1, main dirty js modules: lib1, main