KT-11030 Fix translation of FQN of native companion objects
This commit is contained in:
@@ -49,6 +49,7 @@ import static org.jetbrains.kotlin.js.translate.utils.JsAstUtils.fqnWithoutSideE
|
||||
import static org.jetbrains.kotlin.js.translate.utils.JsDescriptorUtils.*;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getMangledName;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getSuggestedName;
|
||||
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isCompanionObject;
|
||||
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isExtension;
|
||||
import static org.jetbrains.kotlin.resolve.calls.tasks.DynamicCallsKt.isDynamic;
|
||||
|
||||
@@ -310,7 +311,8 @@ public final class StaticContext {
|
||||
Rule<JsName> constructorOrCompanionObjectHasTheSameNameAsTheClass = new Rule<JsName>() {
|
||||
@Override
|
||||
public JsName apply(@NotNull DeclarationDescriptor descriptor) {
|
||||
if (descriptor instanceof ConstructorDescriptor && ((ConstructorDescriptor) descriptor).isPrimary()) {
|
||||
if (descriptor instanceof ConstructorDescriptor && ((ConstructorDescriptor) descriptor).isPrimary() ||
|
||||
DescriptorUtils.isCompanionObject(descriptor) && isNativeObject(descriptor)) {
|
||||
//noinspection ConstantConditions
|
||||
return getNameForDescriptor(descriptor.getContainingDeclaration());
|
||||
}
|
||||
@@ -537,7 +539,8 @@ public final class StaticContext {
|
||||
Rule<JsExpression> constructorOrCompanionObjectHasTheSameQualifierAsTheClass = new Rule<JsExpression>() {
|
||||
@Override
|
||||
public JsExpression apply(@NotNull DeclarationDescriptor descriptor) {
|
||||
if (descriptor instanceof ConstructorDescriptor || DescriptorUtils.isCompanionObject(descriptor)) {
|
||||
if (descriptor instanceof ConstructorDescriptor ||
|
||||
isNativeObject(descriptor) && DescriptorUtils.isCompanionObject(descriptor)) {
|
||||
//noinspection ConstantConditions
|
||||
return getQualifierForDescriptor(descriptor.getContainingDeclaration());
|
||||
}
|
||||
@@ -560,7 +563,8 @@ public final class StaticContext {
|
||||
|
||||
DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration();
|
||||
if (containingDeclaration != null && isNativeObject(containingDeclaration)) {
|
||||
return getQualifiedReference(containingDeclaration);
|
||||
return isCompanionObject(descriptor) ? getQualifierForDescriptor(containingDeclaration) :
|
||||
getQualifiedReference(containingDeclaration);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user