KT-1359 Cannot declare object inheriting from a trait or class.
This commit is contained in:
@@ -40,4 +40,10 @@ public final class ObjectTest extends SingleFileTranslationTest {
|
||||
public void testObjectInMethod() throws Exception {
|
||||
checkFooBoxIsTrue("objectInMethod.kt");
|
||||
}
|
||||
|
||||
|
||||
public void testObjectInheritingFromATrait() throws Exception {
|
||||
checkFooBoxIsTrue("objectInheritingFromATrait.kt");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -40,6 +40,7 @@ import static org.jetbrains.k2js.translate.utils.BindingUtils.getClassDescriptor
|
||||
import static org.jetbrains.k2js.translate.utils.BindingUtils.getPropertyDescriptorForConstructorParameter;
|
||||
import static org.jetbrains.k2js.translate.utils.DescriptorUtils.*;
|
||||
import static org.jetbrains.k2js.translate.utils.PsiUtils.getPrimaryConstructorParameters;
|
||||
import static org.jetbrains.k2js.translate.utils.TranslationUtils.getQualifiedReference;
|
||||
import static org.jetbrains.k2js.translate.utils.TranslationUtils.getThisObject;
|
||||
|
||||
/**
|
||||
@@ -175,7 +176,7 @@ public final class ClassTranslator extends AbstractTranslator {
|
||||
if (aliaser().hasAliasForDeclaration(superClassDescriptor)) {
|
||||
return aliaser().getAliasForDeclaration(superClassDescriptor).makeRef();
|
||||
}
|
||||
return context().getNameForDescriptor(superClassDescriptor).makeRef();
|
||||
return getQualifiedReference(context(), superClassDescriptor);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package foo
|
||||
|
||||
trait Foo {
|
||||
fun f() : Boolean
|
||||
}
|
||||
|
||||
object foo : Foo {
|
||||
override fun f() = true
|
||||
}
|
||||
|
||||
fun box() : Boolean {
|
||||
return foo.f()
|
||||
}
|
||||
Reference in New Issue
Block a user