fix(KT-43191): add static qualifier for Companion and non-inner objects.

This commit is contained in:
Artem Kobzar
2021-10-13 11:09:59 +00:00
committed by Space
parent 90dd0c6150
commit f645c89ebf
4 changed files with 6 additions and 5 deletions
@@ -226,7 +226,7 @@ class ExportModelGenerator(
type = t,
mutable = false,
isMember = klass.parent is IrClass,
isStatic = true,
isStatic = !klass.isInner,
isAbstract = false,
isProtected = klass.visibility == DescriptorVisibilities.PROTECTED,
irGetter = context.mapping.objectToGetInstanceFunction[klass]!!,
@@ -76,7 +76,8 @@ fun ExportedDeclaration.toTypeScript(indent: String, prefix: String = ""): Strin
isMember -> (if (isAbstract) "abstract " else "") + (if (!mutable) "readonly " else "")
else -> if (mutable) "let " else "const "
}
"$prefix$visibility$keyword$name: ${type.toTypeScript(indent)};"
val possibleStatic = if (isMember && isStatic) "static " else ""
"$prefix$visibility$possibleStatic$keyword$name: ${type.toTypeScript(indent)};"
}
is ExportedClass -> {
@@ -51,7 +51,7 @@ declare namespace JS_TESTS {
function takesO(o: typeof foo.O): number;
class KT_37829 {
constructor();
readonly Companion: {
static readonly Companion: {
readonly x: number;
};
}
@@ -11,9 +11,9 @@ declare namespace JS_TESTS {
constructor();
protected readonly protectedVal: number;
protected protectedFun(): number;
protected readonly protectedNestedObject: {
protected static readonly protectedNestedObject: {
};
protected readonly Companion: {
protected static readonly Companion: {
readonly companionObjectProp: number;
};
readonly publicVal: number;