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() {