From cdc205cc0773fdde390e954090ae54afe1efe283 Mon Sep 17 00:00:00 2001 From: Pavel Talanov Date: Thu, 8 Dec 2011 18:57:19 +0400 Subject: [PATCH] Added a bunch of tests which were omitted because of using ArrayList. --- .../jetbrains/k2js/translate/context/StandardClasses.java | 1 + .../k2js/translate/reference/PropertyAccessTranslator.java | 7 ++++--- .../org/jetbrains/k2js/test/OperatorOverloadingTest.java | 5 +++++ .../usesJava => cases}/overloadBinaryOperator.jet | 0 .../usesJava => cases}/overloadPlusAssignReturn.jet | 0 .../usesJava => cases}/overloadPlusToPlusAssign.jet | 0 .../usesJava => cases}/overloadUnaryOperator.jet | 5 ++++- .../sortedTests/{usesJava => unsupported}/basicmethod.jet | 0 .../{usesJava => unsupported}/initializerBlockDImpl.jet | 0 .../sortedTests/{usesJava => unsupported}/innerClass.jet | 0 .../sortedTests/usesJava/inheritingFromArrayList.jet | 1 - .../cases/overloadPlusAssignArrayList.kt} | 2 ++ 12 files changed, 16 insertions(+), 5 deletions(-) rename translator/testFiles/examples/{sortedTests/usesJava => cases}/overloadBinaryOperator.jet (100%) rename translator/testFiles/examples/{sortedTests/usesJava => cases}/overloadPlusAssignReturn.jet (100%) rename translator/testFiles/examples/{sortedTests/usesJava => cases}/overloadPlusToPlusAssign.jet (100%) rename translator/testFiles/examples/{sortedTests/usesJava => cases}/overloadUnaryOperator.jet (82%) rename translator/testFiles/examples/sortedTests/{usesJava => unsupported}/basicmethod.jet (100%) rename translator/testFiles/examples/sortedTests/{usesJava => unsupported}/initializerBlockDImpl.jet (100%) rename translator/testFiles/examples/sortedTests/{usesJava => unsupported}/innerClass.jet (100%) delete mode 100644 translator/testFiles/examples/sortedTests/usesJava/inheritingFromArrayList.jet rename translator/testFiles/{examples/sortedTests/usesJava/overloadPlusAssign.jet => operatorOverloading/cases/overloadPlusAssignArrayList.kt} (97%) diff --git a/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java b/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java index cba21608142..6144b910464 100644 --- a/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java +++ b/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java @@ -45,6 +45,7 @@ public final class StandardClasses { standardClasses.declareStandardInnerDeclaration(arrayListFQName, "isEmpty", "isEmpty"); standardClasses.declareStandardInnerDeclaration(arrayListFQName, "set", "set"); standardClasses.declareStandardInnerDeclaration(arrayListFQName, "remove", "remove"); + standardClasses.declareStandardInnerDeclaration(arrayListFQName, "addAll", "addAll"); } //TODO: more generic ways to declare standard classes diff --git a/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java b/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java index d964a7625f6..dfd56f78ca7 100644 --- a/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java +++ b/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java @@ -115,11 +115,12 @@ public final class PropertyAccessTranslator extends AccessTranslator { private final PropertyDescriptor propertyDescriptor; private final boolean isBackingFieldAccess; + //TODO: make one constructor private PropertyAccessTranslator(@NotNull JetSimpleNameExpression simpleName, @NotNull TranslationContext context) { super(context); this.qualifier = null; - this.propertyDescriptor = getPropertyDescriptor(simpleName); + this.propertyDescriptor = getPropertyDescriptor(simpleName).getOriginal(); this.isBackingFieldAccess = isBackingFieldReference(simpleName); } @@ -128,7 +129,7 @@ public final class PropertyAccessTranslator extends AccessTranslator { super(context); this.qualifier = qualifiedExpression.getReceiverExpression(); JetSimpleNameExpression selector = getNotNullSelector(qualifiedExpression); - this.propertyDescriptor = getPropertyDescriptor(selector); + this.propertyDescriptor = getPropertyDescriptor(selector).getOriginal(); this.isBackingFieldAccess = isBackingFieldReference(selector); } @@ -136,7 +137,7 @@ public final class PropertyAccessTranslator extends AccessTranslator { @NotNull TranslationContext context) { super(context); this.qualifier = null; - this.propertyDescriptor = descriptor; + this.propertyDescriptor = descriptor.getOriginal(); this.isBackingFieldAccess = false; } diff --git a/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java b/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java index 68764501724..266ecab24bb 100644 --- a/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java +++ b/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java @@ -94,4 +94,9 @@ public class OperatorOverloadingTest extends TranslationTest { testFooBoxIsTrue("usingModInCaseModAssignNotAvailable.kt"); } + + @Test + public void overloadPlusAssignArrayList() throws Exception { + testFooBoxIsOk("overloadPlusAssignArrayList.kt"); + } } diff --git a/translator/testFiles/examples/sortedTests/usesJava/overloadBinaryOperator.jet b/translator/testFiles/examples/cases/overloadBinaryOperator.jet similarity index 100% rename from translator/testFiles/examples/sortedTests/usesJava/overloadBinaryOperator.jet rename to translator/testFiles/examples/cases/overloadBinaryOperator.jet diff --git a/translator/testFiles/examples/sortedTests/usesJava/overloadPlusAssignReturn.jet b/translator/testFiles/examples/cases/overloadPlusAssignReturn.jet similarity index 100% rename from translator/testFiles/examples/sortedTests/usesJava/overloadPlusAssignReturn.jet rename to translator/testFiles/examples/cases/overloadPlusAssignReturn.jet diff --git a/translator/testFiles/examples/sortedTests/usesJava/overloadPlusToPlusAssign.jet b/translator/testFiles/examples/cases/overloadPlusToPlusAssign.jet similarity index 100% rename from translator/testFiles/examples/sortedTests/usesJava/overloadPlusToPlusAssign.jet rename to translator/testFiles/examples/cases/overloadPlusToPlusAssign.jet diff --git a/translator/testFiles/examples/sortedTests/usesJava/overloadUnaryOperator.jet b/translator/testFiles/examples/cases/overloadUnaryOperator.jet similarity index 82% rename from translator/testFiles/examples/sortedTests/usesJava/overloadUnaryOperator.jet rename to translator/testFiles/examples/cases/overloadUnaryOperator.jet index 120f84a2746..2cbe1a27f3a 100644 --- a/translator/testFiles/examples/sortedTests/usesJava/overloadUnaryOperator.jet +++ b/translator/testFiles/examples/cases/overloadUnaryOperator.jet @@ -10,7 +10,10 @@ class ArrayWrapper() { fun minus(): ArrayWrapper { val result = ArrayWrapper() result.contents.addAll(contents) - Collections.reverse(result.contents) + var i = contents.size(); + for (a in contents) { + result.contents[--i] = a; + } return result } diff --git a/translator/testFiles/examples/sortedTests/usesJava/basicmethod.jet b/translator/testFiles/examples/sortedTests/unsupported/basicmethod.jet similarity index 100% rename from translator/testFiles/examples/sortedTests/usesJava/basicmethod.jet rename to translator/testFiles/examples/sortedTests/unsupported/basicmethod.jet diff --git a/translator/testFiles/examples/sortedTests/usesJava/initializerBlockDImpl.jet b/translator/testFiles/examples/sortedTests/unsupported/initializerBlockDImpl.jet similarity index 100% rename from translator/testFiles/examples/sortedTests/usesJava/initializerBlockDImpl.jet rename to translator/testFiles/examples/sortedTests/unsupported/initializerBlockDImpl.jet diff --git a/translator/testFiles/examples/sortedTests/usesJava/innerClass.jet b/translator/testFiles/examples/sortedTests/unsupported/innerClass.jet similarity index 100% rename from translator/testFiles/examples/sortedTests/usesJava/innerClass.jet rename to translator/testFiles/examples/sortedTests/unsupported/innerClass.jet diff --git a/translator/testFiles/examples/sortedTests/usesJava/inheritingFromArrayList.jet b/translator/testFiles/examples/sortedTests/usesJava/inheritingFromArrayList.jet deleted file mode 100644 index d0ee9df62d0..00000000000 --- a/translator/testFiles/examples/sortedTests/usesJava/inheritingFromArrayList.jet +++ /dev/null @@ -1 +0,0 @@ -class Foo() : java.util.ArrayList() \ No newline at end of file diff --git a/translator/testFiles/examples/sortedTests/usesJava/overloadPlusAssign.jet b/translator/testFiles/operatorOverloading/cases/overloadPlusAssignArrayList.kt similarity index 97% rename from translator/testFiles/examples/sortedTests/usesJava/overloadPlusAssign.jet rename to translator/testFiles/operatorOverloading/cases/overloadPlusAssignArrayList.kt index 5247973e8d6..3f9ebbec67c 100644 --- a/translator/testFiles/examples/sortedTests/usesJava/overloadPlusAssign.jet +++ b/translator/testFiles/operatorOverloading/cases/overloadPlusAssignArrayList.kt @@ -1,3 +1,5 @@ +namespace foo + import java.util.* class ArrayWrapper() {