[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) reachabilityInfo.forEach(::println)
} }
return result return result + context.additionalExportedDeclarations
} }
private fun Collection<IrClass>.filterDescendantsOf(bases: Collection<IrClass>): Collection<IrClass> { 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.JsAnnotations
import org.jetbrains.kotlin.ir.backend.js.utils.hasStableJsName import org.jetbrains.kotlin.ir.backend.js.utils.hasStableJsName
import org.jetbrains.kotlin.ir.builders.* 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.builders.declarations.buildFun
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
@@ -104,6 +105,8 @@ class ExportedDefaultParameterStub(val context: JsIrBackendContext) : Declaratio
origin = JsIrBuilder.SYNTHESIZED_DECLARATION origin = JsIrBuilder.SYNTHESIZED_DECLARATION
} }
context.additionalExportedDeclarations.add(exportedDefaultStubFun)
exportedDefaultStubFun.returnType = declaration.returnType.remapTypeParameters(declaration, exportedDefaultStubFun) exportedDefaultStubFun.returnType = declaration.returnType.remapTypeParameters(declaration, exportedDefaultStubFun)
exportedDefaultStubFun.parent = declaration.parent exportedDefaultStubFun.parent = declaration.parent
exportedDefaultStubFun.copyParameterDeclarationsFrom(declaration) exportedDefaultStubFun.copyParameterDeclarationsFrom(declaration)