fix(KT-39423): add support of optional parameters to constructor + fix bug with optional parameters inside functions.

This commit is contained in:
Artem Kobzar
2022-05-13 10:46:32 +00:00
committed by Space
parent 0c24d0ec9f
commit 4e06ff26d4
6 changed files with 36 additions and 10 deletions
@@ -66,7 +66,6 @@ class ExportedDefaultParameterStub(val context: JsIrBackendContext) : Declaratio
variables[valueParameter] = it
}
}
}
if (variables.isNotEmpty()) {
@@ -79,7 +78,13 @@ class ExportedDefaultParameterStub(val context: JsIrBackendContext) : Declaratio
}
return this
return also {
valueParameters.forEach {
if (it.defaultValue != null) {
it.origin = JsLoweredDeclarationOrigin.JS_SHADOWED_DEFAULT_PARAMETER
}
}
}
}
override fun transformFlat(declaration: IrDeclaration): List<IrDeclaration>? {
@@ -113,8 +118,12 @@ class ExportedDefaultParameterStub(val context: JsIrBackendContext) : Declaratio
exportedDefaultStubFun.copyParameterDeclarationsFrom(declaration)
exportedDefaultStubFun.returnType = declaration.returnType.remapTypeParameters(declaration, exportedDefaultStubFun)
exportedDefaultStubFun.valueParameters.forEach {
if (it.defaultValue != null) {
it.origin = JsLoweredDeclarationOrigin.JS_SHADOWED_DEFAULT_PARAMETER
}
it.defaultValue = null
it.origin = JsLoweredDeclarationOrigin.JS_SHADOWED_DEFAULT_PARAMETER
}
declaration.origin = JsLoweredDeclarationOrigin.JS_SHADOWED_EXPORT