From 26a5ff3a2f701791d09a7aa17e7bbd7d21d1a89a Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 9 Mar 2012 19:20:19 +0400 Subject: [PATCH] Add disabled test. Depends on KT-1198 --- .../k2js/test/semantics/MiscTest.java | 8 +++- .../KotlinPropertyAccessTranslator.java | 2 +- .../expression/misc/cases/KT-740-3.kt | 41 +++++++++++++++++++ 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 js/js.translator/testFiles/expression/misc/cases/KT-740-3.kt diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/MiscTest.java b/js/js.tests/test/org/jetbrains/k2js/test/semantics/MiscTest.java index fcdc000978d..2aa01d656d3 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/semantics/MiscTest.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/MiscTest.java @@ -61,11 +61,17 @@ public final class MiscTest extends AbstractExpressionTest { } - public void testKt740() throws Exception { + public void testKt740_1() throws Exception { checkFooBoxIsTrue("KT-740.kt"); } public void testKt740_2() throws Exception { checkFooBoxIsOk("KT-740-2.kt"); } + + //TODO: depends on KT-1198 + //TODO: look into BindingContext.VARIABLE_REASSIGNMENT +// public void testKt740_3() throws Exception { +// checkFooBoxIsOk("KT-740-3.kt"); +// } } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/reference/KotlinPropertyAccessTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/reference/KotlinPropertyAccessTranslator.java index 5a5cae701d0..dc33dc9b0fc 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/reference/KotlinPropertyAccessTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/reference/KotlinPropertyAccessTranslator.java @@ -76,7 +76,7 @@ public final class KotlinPropertyAccessTranslator extends PropertyAccessTranslat @NotNull public JsExpression translateAsSet(@Nullable JsExpression receiver, @NotNull JsExpression toSetTo) { PropertySetterDescriptor setter = propertyDescriptor.getSetter(); - assert setter != null : "Getter for kotlin properties should bot be null."; + assert setter != null : "Setter for kotlin properties should bot be null."; return callBuilderForAccessor(receiver) .args(toSetTo) .descriptor(setter) diff --git a/js/js.translator/testFiles/expression/misc/cases/KT-740-3.kt b/js/js.translator/testFiles/expression/misc/cases/KT-740-3.kt new file mode 100644 index 00000000000..46ccd854d64 --- /dev/null +++ b/js/js.translator/testFiles/expression/misc/cases/KT-740-3.kt @@ -0,0 +1,41 @@ +package foo + +var c0 = 0 +var c1 = 0 +var c2 = 0 + +class A() { + var p = 0 + fun divAssign(a : Int) { + c1++; + } + fun times(a : Int) { + c2++; + } +} + +val a : A = A() +get() { + c0++ + return $a +} + +fun box() : String { + + a /= 3 + if (c0 != 1) { + return "1" + } + if (c1 != 1) { + return "2" + } + a *= 3 + if (c0 != 1) { + return "3" + } + if (c2 != 1) { + return "4" + } + return "OK" + +} \ No newline at end of file