KT-1359 Cannot declare object inheriting from a trait or class.

This commit is contained in:
pTalanov
2012-03-13 15:48:38 +04:00
parent 43e42657f2
commit df2d9769fa
3 changed files with 21 additions and 1 deletions
@@ -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()
}