diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 08af16cc207..5c787868c6d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -6,23 +6,11 @@ - - - + - - - - - - - - - - - + @@ -60,6 +48,32 @@ - + - - - - - - - - - @@ -124,10 +129,26 @@ - - - - + + + + + + + + + + + + + + + + + + + + @@ -177,10 +198,10 @@ - + - + @@ -190,42 +211,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -247,10 +232,8 @@ - - - - + + @@ -258,16 +241,34 @@ - + - + + + + + + + + + + + + + + + + + + + - + @@ -276,10 +277,26 @@ - - - - + + + + + + + + + + + + + + + + + + + + @@ -305,12 +322,9 @@ @@ -363,22 +380,6 @@ - - - - - - - - - - - - @@ -689,6 +690,22 @@ + + + + + + + + + + + + @@ -704,9 +721,9 @@ - - + + @@ -721,32 +738,6 @@ - - - - - - - - - - + + + + + + + + + + - - - - - + + + + + localhost @@ -962,7 +979,6 @@ - @@ -972,13 +988,14 @@ - + - + - + + @@ -1012,7 +1029,7 @@ @@ -1049,69 +1067,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1135,32 +1090,91 @@ - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java b/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java index 03653c393e8..750ac52aecc 100644 --- a/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java +++ b/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java @@ -146,6 +146,14 @@ public final class ClassBodyVisitor extends TranslatorVisitor visitAnonymousInitializer(@NotNull JetClassInitializer expression, + @NotNull TranslationContext context) { + // parsed it in initializer visitor => no additional actions are needed + return new ArrayList(); + } + // @NotNull // JsName getNameForGetter(@NotNull String propertyName, @NotNull TranslationContext context) { // return getNameForAccessor(propertyName, true, context); diff --git a/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java b/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java index 6f20520fe9b..48ec23c8ff8 100644 --- a/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java +++ b/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java @@ -63,10 +63,10 @@ public class InitializerVisitor extends TranslatorVisitor> { @NotNull public List visitProperty(@NotNull JetProperty expression, @NotNull TranslationContext context) { JetExpression initializer = expression.getInitializer(); + declareBackingFieldName(expression); if (initializer == null) { return new ArrayList(); } - declareBackingFieldName(expression); return Arrays.asList(translateInitializer(expression, context, initializer)); } @@ -93,12 +93,12 @@ public class InitializerVisitor extends TranslatorVisitor> { return AstUtil.convertToStatement(AstUtil.newAssignment(backingFieldRef, initExpression)); } - //TODO : implement @Override @NotNull public List visitAnonymousInitializer(@NotNull JetClassInitializer initializer, @NotNull TranslationContext context) { - return new ArrayList(); + return Arrays.asList(AstUtil.convertToStatement + (Translation.expressionTranslator(context).translate(initializer.getBody()))); } @Override diff --git a/translator/test/org/jetbrains/k2js/test/BasicClassTest.java b/translator/test/org/jetbrains/k2js/test/BasicClassTest.java index 4c58ffa2dd3..e0724aabbc9 100644 --- a/translator/test/org/jetbrains/k2js/test/BasicClassTest.java +++ b/translator/test/org/jetbrains/k2js/test/BasicClassTest.java @@ -42,7 +42,13 @@ public class BasicClassTest extends AbstractClassTest { @Test public void incrementProperty() throws Exception { - //testFooBoxIsTrue("incrementProperty.kt"); performTest("incrementProperty.kt", "foo", "box", "OK"); } + + @Test + public void SimpleInitializer() throws Exception { + testFooBoxIsTrue("simpleInitializer.kt"); + } + + } diff --git a/translator/testFiles/class/cases/simpleInitializer.kt b/translator/testFiles/class/cases/simpleInitializer.kt new file mode 100644 index 00000000000..84e958a5a3d --- /dev/null +++ b/translator/testFiles/class/cases/simpleInitializer.kt @@ -0,0 +1,13 @@ +namespace foo + +class Test() { +var a : Int +{ + $a = 3 +} +} + +fun box() : Boolean +{ + return (Test().a == 3); +}