diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 293c1122b75..172f0053031 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -9,7 +9,13 @@ - + + + + + + + @@ -189,42 +195,13 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -275,10 +252,37 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -288,96 +292,91 @@ - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -404,14 +403,6 @@ @@ -509,6 +508,7 @@ + @@ -733,6 +733,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -874,40 +1029,7 @@ - - - - - - - - - - - - - - - - + @@ -945,7 +1067,7 @@ - @@ -1012,6 +1134,29 @@ + + + + + + + + + + - @@ -1133,11 +1278,11 @@ - - - - - + + + + + localhost @@ -1197,7 +1342,6 @@ - @@ -1210,10 +1354,11 @@ - - + + + @@ -1255,7 +1400,7 @@ @@ -1302,111 +1447,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1416,7 +1456,105 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/translator/src/org/jetbrains/k2js/translate/context/Aliaser.java b/translator/src/org/jetbrains/k2js/translate/context/Aliaser.java index 11c90d80d10..57e44a94e03 100644 --- a/translator/src/org/jetbrains/k2js/translate/context/Aliaser.java +++ b/translator/src/org/jetbrains/k2js/translate/context/Aliaser.java @@ -10,13 +10,13 @@ import org.jetbrains.jet.lang.types.JetStandardLibrary; import java.util.HashMap; import java.util.Map; +//TODO: implement aliases stack for this public class Aliaser { static public Aliaser aliasesForStandardClasses(@NotNull JetStandardLibrary standardLibrary, @NotNull Namer namer) { - Aliaser result = new Aliaser(); - // result.setAliasForDescriptor(standardLibrary.getArray(), namer.declareStandardClass("Array")); - return result; + //TODO: decide if this aliases are needed + return new Aliaser(); } @NotNull diff --git a/translator/src/org/jetbrains/k2js/translate/context/Namer.java b/translator/src/org/jetbrains/k2js/translate/context/Namer.java index ba56538db1e..b93886d59c0 100644 --- a/translator/src/org/jetbrains/k2js/translate/context/Namer.java +++ b/translator/src/org/jetbrains/k2js/translate/context/Namer.java @@ -24,8 +24,7 @@ public final class Namer { private static final String SETTER_PREFIX = "set_"; private static final String GETTER_PREFIX = "get_"; private static final String BACKING_FIELD_PREFIX = "$"; - // TODO: work on the unified approach to string constants - public static final String SUPER_METHOD_NAME = "super_init"; + private static final String SUPER_METHOD_NAME = "super_init"; private static final String KOTLIN_OBJECT_NAME = "Kotlin"; @NotNull @@ -33,9 +32,14 @@ public final class Namer { return AstUtil.newQualifiedNameRef(INITIALIZE_METHOD_NAME); } +// @NotNull +// public static JsNameRef superMethodReference() { +// return AstUtil.newQualifiedNameRef(SUPER_METHOD_NAME); +// } + @NotNull - public static JsNameRef superMethodReference() { - return AstUtil.newQualifiedNameRef(SUPER_METHOD_NAME); + public static String superMethodName() { + return SUPER_METHOD_NAME; } @NotNull diff --git a/translator/src/org/jetbrains/k2js/translate/general/AbstractTranslator.java b/translator/src/org/jetbrains/k2js/translate/general/AbstractTranslator.java index 1713b14bacb..226050ce6d0 100644 --- a/translator/src/org/jetbrains/k2js/translate/general/AbstractTranslator.java +++ b/translator/src/org/jetbrains/k2js/translate/general/AbstractTranslator.java @@ -7,6 +7,7 @@ import org.jetbrains.k2js.translate.context.TranslationContext; /** * @author Talanov Pavel */ +//TODO: provide helper methods for different parts of context public abstract class AbstractTranslator { @NotNull diff --git a/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java b/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java index eed06e3d8ba..93e0bb352f8 100644 --- a/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java +++ b/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java @@ -60,7 +60,7 @@ public final class ClassInitializerTranslator extends AbstractInitializerTransla } private void addCallToSuperMethod(@NotNull JetDelegatorToSuperCall superCall) { - JsName superMethodName = initializerMethodScope.declareName(Namer.SUPER_METHOD_NAME); + JsName superMethodName = initializerMethodScope.declareName(Namer.superMethodName()); List arguments = translateArguments(superCall); initializerStatements.add(AstUtil.convertToStatement (AstUtil.newInvocation(AstUtil.thisQualifiedReference(superMethodName), arguments))); diff --git a/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java b/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java index 88b4c5850c1..a3b1f7b1cc0 100644 --- a/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java +++ b/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java @@ -15,6 +15,7 @@ import java.util.Map; /** * @author Talanov Pavel */ +//TODO: different maps for different kinds of intrinsics public final class Intrinsics { @NotNull @@ -33,7 +34,6 @@ public final class Intrinsics { } /*package*/ void declareIntrinsic(@NotNull FunctionDescriptor descriptor) { - //TODO: HACK! addCompareToIntrinsics(descriptor); addEqualsIntrinsics(descriptor); addUnaryIntrinsics(descriptor); diff --git a/translator/src/org/jetbrains/k2js/translate/intrinsic/PrimitiveEqualsIntrinsic.java b/translator/src/org/jetbrains/k2js/translate/intrinsic/PrimitiveEqualsIntrinsic.java index 36cc7eb69d1..af550f8bce4 100644 --- a/translator/src/org/jetbrains/k2js/translate/intrinsic/PrimitiveEqualsIntrinsic.java +++ b/translator/src/org/jetbrains/k2js/translate/intrinsic/PrimitiveEqualsIntrinsic.java @@ -12,7 +12,6 @@ import java.util.List; */ public final class PrimitiveEqualsIntrinsic extends EqualsIntrinsic { - @NotNull /*package*/ static PrimitiveEqualsIntrinsic newInstance() { return new PrimitiveEqualsIntrinsic(); diff --git a/translator/src/org/jetbrains/k2js/translate/intrinsic/UnaryOperationIntrinsic.java b/translator/src/org/jetbrains/k2js/translate/intrinsic/UnaryOperationIntrinsic.java index 03bf3360070..fd092c00873 100644 --- a/translator/src/org/jetbrains/k2js/translate/intrinsic/UnaryOperationIntrinsic.java +++ b/translator/src/org/jetbrains/k2js/translate/intrinsic/UnaryOperationIntrinsic.java @@ -33,7 +33,7 @@ public class UnaryOperationIntrinsic implements Intrinsic { public JsExpression apply(@NotNull JsExpression receiver, @NotNull List arguments, @NotNull TranslationContext context) { assert arguments.size() == 0 : "Unary operator should not have arguments."; - //TODO: note that we cannot use this for increment/decrement + //NOTE: cannot use this for increment/decrement return new JsPrefixOperation(operator, receiver); } }