[JS IR] Add additional exported declarations with exported stub to dce

^KT-44469 fixed
This commit is contained in:
Ilya Goncharov
2021-01-22 17:20:15 +03:00
parent 6e98b81f3a
commit f186047101
2 changed files with 4 additions and 1 deletions
@@ -413,7 +413,7 @@ fun usefulDeclarations(roots: Iterable<IrDeclaration>, context: JsIrBackendConte
reachabilityInfo.forEach(::println)
}
return result
return result + context.additionalExportedDeclarations
}
private fun Collection<IrClass>.filterDescendantsOf(bases: Collection<IrClass>): Collection<IrClass> {
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.ir.backend.js.ir.JsIrBuilder
import org.jetbrains.kotlin.ir.backend.js.utils.JsAnnotations
import org.jetbrains.kotlin.ir.backend.js.utils.hasStableJsName
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.builders.declarations.addFunction
import org.jetbrains.kotlin.ir.builders.declarations.buildFun
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
@@ -104,6 +105,8 @@ class ExportedDefaultParameterStub(val context: JsIrBackendContext) : Declaratio
origin = JsIrBuilder.SYNTHESIZED_DECLARATION
}
context.additionalExportedDeclarations.add(exportedDefaultStubFun)
exportedDefaultStubFun.returnType = declaration.returnType.remapTypeParameters(declaration, exportedDefaultStubFun)
exportedDefaultStubFun.parent = declaration.parent
exportedDefaultStubFun.copyParameterDeclarationsFrom(declaration)