Added Translation class for better instance creation control over the code.
This commit is contained in:
Generated
+180
-128
@@ -6,13 +6,23 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/class/cases/incrementProperty.kt" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/function/cases/functionWithTwoParametersCall.kt" />
|
||||
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\src\org\jetbrains\k2js\translate\OperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" afterPath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/DeclarationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/DeclarationTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/DeclarationVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/DeclarationVisitor.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/BasicClassTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/BasicClassTest.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslatorVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslatorVisitor.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java" />
|
||||
</list>
|
||||
<ignored path="k2js.iws" />
|
||||
<ignored path=".idea/workspace.xml" />
|
||||
@@ -37,7 +47,7 @@
|
||||
</component>
|
||||
<component name="DebuggerManager">
|
||||
<line_breakpoints>
|
||||
<breakpoint url="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" line="28" class="com.google.dart.compiler.util.AstUtil" package="com.google.dart.compiler.util">
|
||||
<breakpoint url="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" line="29" class="com.google.dart.compiler.util.AstUtil" package="com.google.dart.compiler.util">
|
||||
<option name="ENABLED" value="true" />
|
||||
<option name="LOG_ENABLED" value="false" />
|
||||
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||
@@ -93,15 +103,6 @@
|
||||
<splitter split-orientation="horizontal" split-proportion="0.37207702">
|
||||
<split-first>
|
||||
<leaf>
|
||||
<file leaf-file-name="PropertyAccessorTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PropertyAccessorTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="22" column="16" selection-start="462" selection-end="462" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="twoClassesWithProperties.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/twoClassesWithProperties.kt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
@@ -134,7 +135,7 @@
|
||||
<file leaf-file-name="incrementProperty.js" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/class/out/incrementProperty.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="10" column="45" selection-start="224" selection-end="224" vertical-scroll-proportion="0.0">
|
||||
<state line="10" column="45" selection-start="233" selection-end="233" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@@ -149,10 +150,10 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="AstUtil.java" pinned="false" current="false" current-in-tab="true">
|
||||
<file leaf-file-name="AstUtil.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="261" column="22" selection-start="9087" selection-end="9087" vertical-scroll-proportion="0.74067795">
|
||||
<state line="262" column="22" selection-start="9090" selection-end="9090" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@@ -176,10 +177,10 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="FunctionTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<file leaf-file-name="FunctionTest.java" pinned="false" current="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="29" column="16" selection-start="685" selection-end="685" vertical-scroll-proportion="0.0">
|
||||
<state line="80" column="58" selection-start="1974" selection-end="1974" vertical-scroll-proportion="1.1868852">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@@ -189,92 +190,96 @@
|
||||
</split-first>
|
||||
<split-second>
|
||||
<leaf>
|
||||
<file leaf-file-name="K2JSTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
|
||||
<file leaf-file-name="GenerationState.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="95" column="61" selection-start="3724" selection-end="3724" vertical-scroll-proportion="0.0">
|
||||
<state line="34" column="78" selection-start="1150" selection-end="1150" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
||||
<file leaf-file-name="Namer.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Namer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="103" column="49" selection-start="4452" selection-end="4452" vertical-scroll-proportion="-18.576923">
|
||||
<state line="12" column="19" selection-start="262" selection-end="262" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="FunctionTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java">
|
||||
<file leaf-file-name="NamespaceTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="42" column="8" selection-start="1801" selection-end="1801" vertical-scroll-proportion="0.0">
|
||||
<state line="39" column="69" selection-start="1420" selection-end="1420" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="JetSimpleNameExpression.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetSimpleNameExpression.java">
|
||||
<file leaf-file-name="OperatorTable.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="63" column="0" selection-start="2183" selection-end="2183" vertical-scroll-proportion="0.0">
|
||||
<state line="13" column="32" selection-start="361" selection-end="361" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="PropertyAccessTranslator.java" pinned="false" current="true" current-in-tab="true">
|
||||
<file leaf-file-name="PropertyAccessTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="96" column="74" selection-start="4133" selection-end="4133" vertical-scroll-proportion="0.5730337">
|
||||
<state line="56" column="103" selection-start="2377" selection-end="2377" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ReflectiveCallable.class" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://$PROJECT_DIR$/translator/lib/junit-4.10.jar!/org/junit/internal/runners/model/ReflectiveCallable.class">
|
||||
<file leaf-file-name="TranslationContext.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationContext.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="11" column="40" selection-start="397" selection-end="397" vertical-scroll-proportion="-6.8">
|
||||
<state line="17" column="19" selection-start="647" selection-end="647" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ParentRunner.class" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://$PROJECT_DIR$/translator/lib/junit-4.10.jar!/org/junit/runners/ParentRunner.class">
|
||||
<file leaf-file-name="Translation.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="43" column="25" selection-start="2461" selection-end="2461" vertical-scroll-proportion="-8.52">
|
||||
<state line="35" column="20" selection-start="1156" selection-end="1156" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="TranslatorVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslatorVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="43" column="59" selection-start="1667" selection-end="1667" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="JUnitCore.class" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://$PROJECT_DIR$/translator/lib/junit-4.10.jar!/org/junit/runner/JUnitCore.class">
|
||||
<file leaf-file-name="K2JSTranslator.java" pinned="false" current="true" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="30" column="35" selection-start="1439" selection-end="1439" vertical-scroll-proportion="-18.52">
|
||||
<state line="39" column="13" selection-start="1468" selection-end="1468" vertical-scroll-proportion="0.21587302">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="BlockJUnit4ClassRunner.class" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://$PROJECT_DIR$/translator/lib/junit-4.10.jar!/org/junit/runners/BlockJUnit4ClassRunner.class">
|
||||
<file leaf-file-name="InitializerVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ClassInheritanceTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassInheritanceTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="17" column="16" selection-start="323" selection-end="323" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
<state line="75" column="91" selection-start="2938" selection-end="2938" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -300,22 +305,22 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="changedFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BindingUtils.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslatorVisitor.java" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/function/cases/functionWithTwoParametersCall.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/inheritance/cases/creationSequence.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/DeclarationTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/DeclarationVisitor.java" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/namespaceCustomAccessors.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PropertyAccessorTest.java" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/twoClassesWithProperties.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/class/cases/Slot.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/BasicClassTest.java" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/class/cases/incrementProperty.kt" />
|
||||
<option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslatorVisitor.java" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -494,6 +499,50 @@
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="k2js" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="translator" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="testFiles" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="function" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="out" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="k2js" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="translator" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="testFiles" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="function" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cases" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="k2js" />
|
||||
@@ -909,7 +958,7 @@
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
|
||||
<editor active="true" />
|
||||
<editor active="false" />
|
||||
<layout>
|
||||
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32907662" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
@@ -925,7 +974,7 @@
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3997862" sideWeight="0.6705998" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2224599" sideWeight="0.66283524" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.33716476" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.33716476" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
@@ -963,7 +1012,7 @@
|
||||
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
|
||||
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
|
||||
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Added syntactic checks to main." />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Added support for unqualified property reference inside method body." />
|
||||
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
|
||||
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
|
||||
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
|
||||
@@ -990,6 +1039,7 @@
|
||||
<MESSAGE value="Added default getter/setter support and initializer support." />
|
||||
<MESSAGE value="Added class inheritance support and reorganised test classes. Minor impovements include: 1. Support for functions with no body 2. Not equals operator 3. Refactorings." />
|
||||
<MESSAGE value="Added syntactic checks to main." />
|
||||
<MESSAGE value="Added support for unqualified property reference inside method body." />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager />
|
||||
@@ -999,116 +1049,118 @@
|
||||
<option name="FILTER_TARGETS" value="false" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="jar://$PROJECT_DIR$/translator/lib/junit-4.10.jar!/org/junit/runners/ParentRunner.class">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="43" column="25" selection-start="2461" selection-end="2461" vertical-scroll-proportion="-8.52">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://$PROJECT_DIR$/translator/lib/junit-4.10.jar!/org/junit/runners/BlockJUnit4ClassRunner.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://$PROJECT_DIR$/translator/lib/junit-4.10.jar!/org/junit/internal/runners/model/ReflectiveCallable.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="11" column="40" selection-start="397" selection-end="397" vertical-scroll-proportion="-6.8">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="14" column="2" selection-start="368" selection-end="368" vertical-scroll-proportion="0.0">
|
||||
<state line="30" column="52" selection-start="1026" selection-end="1026" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/DeclarationTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="9" column="19" selection-start="244" selection-end="244" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="42" column="8" selection-start="1801" selection-end="1801" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsIf.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="9" column="19" selection-start="335" selection-end="335" vertical-scroll-proportion="0.0">
|
||||
<state line="11" column="4" selection-start="300" selection-end="300" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/DeclarationVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="20" column="108" selection-start="774" selection-end="774" vertical-scroll-proportion="0.0">
|
||||
<state line="15" column="24" selection-start="562" selection-end="562" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="9" column="19" selection-start="238" selection-end="238" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="103" column="49" selection-start="4452" selection-end="4452" vertical-scroll-proportion="-18.576923">
|
||||
<state line="318" column="94" selection-start="14400" selection-end="14400" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/namespaceCustomAccessors.kt">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="3" column="41" selection-start="34" selection-end="34" vertical-scroll-proportion="0.0">
|
||||
<state line="65" column="0" selection-start="2768" selection-end="2768" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/class/out/classInstantiation.js">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<state line="34" column="78" selection-start="1150" selection-end="1150" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/class/out/incrementProperty.js">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Namer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="10" column="45" selection-start="224" selection-end="224" vertical-scroll-proportion="0.0">
|
||||
<state line="12" column="19" selection-start="262" selection-end="262" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/class/cases/incrementProperty.kt">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="13" selection-start="13" selection-end="13" vertical-scroll-proportion="0.0">
|
||||
<state line="39" column="69" selection-start="1420" selection-end="1420" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/BasicClassTest.java">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="43" column="16" selection-start="1085" selection-end="1085" vertical-scroll-proportion="-15.64">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="261" column="22" selection-start="9087" selection-end="9087" vertical-scroll-proportion="0.74067795">
|
||||
<state line="13" column="32" selection-start="361" selection-end="361" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="96" column="74" selection-start="4133" selection-end="4133" vertical-scroll-proportion="0.5730337">
|
||||
<state line="56" column="103" selection-start="2377" selection-end="2377" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationContext.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="17" column="19" selection-start="647" selection-end="647" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="35" column="20" selection-start="1156" selection-end="1156" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="75" column="91" selection-start="2938" selection-end="2938" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslatorVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="43" column="59" selection-start="1667" selection-end="1667" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="39" column="13" selection-start="1468" selection-end="1468" vertical-scroll-proportion="0.21587302">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
||||
@@ -31,7 +31,7 @@ public final class ClassBodyVisitor extends TranslatorVisitor<List<JsPropertyIni
|
||||
// method declaration
|
||||
public List<JsPropertyInitializer> visitNamedFunction(@NotNull JetNamedFunction expression, @NotNull TranslationContext context) {
|
||||
List<JsPropertyInitializer> properties = new ArrayList<JsPropertyInitializer>();
|
||||
properties.add((new FunctionTranslator(context)).translateAsMethod(expression));
|
||||
properties.add(Translation.functionTranslator(context).translateAsMethod(expression));
|
||||
return properties;
|
||||
}
|
||||
|
||||
@@ -138,11 +138,10 @@ public final class ClassBodyVisitor extends TranslatorVisitor<List<JsPropertyIni
|
||||
private JsFunction translateAccessorBody(@NotNull JetPropertyAccessor expression,
|
||||
@NotNull TranslationContext context) {
|
||||
JsFunction methodBody = JsFunction.getAnonymousFunctionWithScope(context.getScopeForElement(expression));
|
||||
ExpressionTranslator expressionTranslator =
|
||||
new ExpressionTranslator(context.newPropertyAccess(expression));
|
||||
JetExpression bodyExpression = expression.getBodyExpression();
|
||||
assert bodyExpression != null : "Custom accessor should have a body.";
|
||||
JsBlock methodBodyBlock = AstUtil.convertToBlock(expressionTranslator.translate(bodyExpression));
|
||||
JsBlock methodBodyBlock = AstUtil.convertToBlock(
|
||||
Translation.translateExpression(bodyExpression, context.newPropertyAccess(expression)));
|
||||
methodBody.setBody(methodBodyBlock);
|
||||
return methodBody;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,12 @@ public final class ClassTranslator extends AbstractTranslator {
|
||||
@NotNull
|
||||
private final ClassBodyVisitor classBodyVisitor = new ClassBodyVisitor();
|
||||
|
||||
public ClassTranslator(TranslationContext context) {
|
||||
@NotNull
|
||||
public static ClassTranslator newInstance(@NotNull TranslationContext context) {
|
||||
return new ClassTranslator(context);
|
||||
}
|
||||
|
||||
private ClassTranslator(TranslationContext context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,12 @@ public final class DeclarationTranslator extends AbstractTranslator {
|
||||
|
||||
private DeclarationVisitor visitor = new DeclarationVisitor();
|
||||
|
||||
public DeclarationTranslator(TranslationContext context) {
|
||||
@NotNull
|
||||
public static DeclarationTranslator newInstance(@NotNull TranslationContext context) {
|
||||
return new DeclarationTranslator(context);
|
||||
}
|
||||
|
||||
private DeclarationTranslator(TranslationContext context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.jetbrains.jet.lang.psi.JetProperty;
|
||||
/**
|
||||
* @author Talanov Pavel
|
||||
*/
|
||||
//TODO: rework the class
|
||||
public class DeclarationVisitor extends TranslatorVisitor<JsStatement> {
|
||||
|
||||
@NotNull
|
||||
@@ -21,7 +22,7 @@ public class DeclarationVisitor extends TranslatorVisitor<JsStatement> {
|
||||
public JsStatement visitProperty(@NotNull JetProperty expression, @NotNull TranslationContext context) {
|
||||
JsName propertyName = context.declareLocalName(getPropertyName(expression));
|
||||
JsNameRef jsPropertyNameReference = context.getNamespaceQualifiedReference(propertyName);
|
||||
JsExpression jsInitExpression = translateInitializer(expression, context);
|
||||
JsExpression jsInitExpression = translateInitializerForProperty(expression, context);
|
||||
JsExpression result;
|
||||
if (jsInitExpression != null) {
|
||||
result = AstUtil.newAssignment(jsPropertyNameReference, jsInitExpression);
|
||||
@@ -34,15 +35,13 @@ public class DeclarationVisitor extends TranslatorVisitor<JsStatement> {
|
||||
@NotNull
|
||||
@Override
|
||||
public JsStatement visitClass(@NotNull JetClass expression, @NotNull TranslationContext context) {
|
||||
ClassTranslator translator = new ClassTranslator(context);
|
||||
return translator.translateClass(expression);
|
||||
return Translation.classTranslator(context).translateClass(expression);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public JsStatement visitNamedFunction(@NotNull JetNamedFunction expression, @NotNull TranslationContext context) {
|
||||
FunctionTranslator functionTranslator = new FunctionTranslator(context);
|
||||
return AstUtil.convertToStatement(functionTranslator.translateAsFunction(expression));
|
||||
return AstUtil.convertToStatement(Translation.functionTranslator(context).translateAsFunction(expression));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,7 +11,12 @@ public final class ExpressionTranslator extends AbstractTranslator {
|
||||
|
||||
final private ExpressionVisitor visitor = new ExpressionVisitor();
|
||||
|
||||
public ExpressionTranslator(@NotNull TranslationContext context) {
|
||||
@NotNull
|
||||
public static ExpressionTranslator newInstance(@NotNull TranslationContext context) {
|
||||
return new ExpressionTranslator(context);
|
||||
}
|
||||
|
||||
private ExpressionTranslator(@NotNull TranslationContext context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
|
||||
@@ -93,12 +93,11 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
public JsInvocation translateAsSetterCall(@NotNull JetBinaryExpression expression,
|
||||
@NotNull TranslationContext context) {
|
||||
JetToken jetOperationToken = (JetToken) expression.getOperationToken();
|
||||
if (!OperationTranslator.isAssignment(jetOperationToken)) {
|
||||
if (!OperatorTable.isAssignment(jetOperationToken)) {
|
||||
return null;
|
||||
}
|
||||
PropertyAccessTranslator translator = new PropertyAccessTranslator(context);
|
||||
JetExpression leftExpression = expression.getLeft();
|
||||
JsInvocation setterCall = translator.resolveAsPropertySet(leftExpression);
|
||||
JsInvocation setterCall = Translation.propertyAccessTranslator(context).resolveAsPropertySet(leftExpression);
|
||||
if (setterCall == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -116,7 +115,7 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
assert rightExpression != null : "Binary expression should have a right expression";
|
||||
JsExpression right = AstUtil.convertToExpression(rightExpression.accept(this, context));
|
||||
JetToken jetOperationToken = (JetToken) expression.getOperationToken();
|
||||
return new JsBinaryOperation(OperationTranslator.getBinaryOperator(jetOperationToken), left, right);
|
||||
return new JsBinaryOperation(OperatorTable.getBinaryOperator(jetOperationToken), left, right);
|
||||
}
|
||||
|
||||
//TODO support other cases
|
||||
@@ -140,8 +139,7 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
return nameRef;
|
||||
}
|
||||
|
||||
PropertyAccessTranslator propertyAccessTranslator = new PropertyAccessTranslator(context);
|
||||
JsInvocation getterCall = propertyAccessTranslator.resolveAsPropertyGet(expression);
|
||||
JsInvocation getterCall = Translation.propertyAccessTranslator(context).resolveAsPropertyGet(expression);
|
||||
if (getterCall != null) {
|
||||
return getterCall;
|
||||
}
|
||||
@@ -159,7 +157,7 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
// assume it is a local variable declaration
|
||||
public JsNode visitProperty(@NotNull JetProperty expression, @NotNull TranslationContext context) {
|
||||
JsName jsPropertyName = context.declareLocalName(getPropertyName(expression));
|
||||
JsExpression jsInitExpression = translateInitializer(expression, context);
|
||||
JsExpression jsInitExpression = translateInitializerForProperty(expression, context);
|
||||
return AstUtil.newVar(jsPropertyName, jsInitExpression);
|
||||
}
|
||||
|
||||
@@ -318,10 +316,7 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
@Nullable
|
||||
private JsInvocation translateAsGetterCall(@NotNull JetDotQualifiedExpression expression,
|
||||
@NotNull TranslationContext context) {
|
||||
JsInvocation result;
|
||||
PropertyAccessTranslator translator = new PropertyAccessTranslator(context);
|
||||
result = translator.resolveAsPropertyGet(expression);
|
||||
return result;
|
||||
return Translation.propertyAccessTranslator(context).resolveAsPropertyGet(expression);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -354,5 +349,15 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
return selector;
|
||||
}
|
||||
|
||||
//TODO: implement unary operations
|
||||
// @Override
|
||||
// @NotNull
|
||||
// public JsNode visitPrefixExpression(@NotNull JetUnaryExpression expression,
|
||||
// @NotNull TranslationContext context) {
|
||||
// JsExpression baseExpression = AstUtil.convertToExpression(expression.accept(this, context));
|
||||
// expression
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.jetbrains.k2js.translate;
|
||||
import com.google.dart.compiler.backend.js.ast.*;
|
||||
import com.google.dart.compiler.util.AstUtil;
|
||||
import com.sun.istack.internal.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||
import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
||||
import org.jetbrains.jet.lang.psi.JetParameter;
|
||||
@@ -16,7 +15,12 @@ import java.util.List;
|
||||
*/
|
||||
public final class FunctionTranslator extends AbstractTranslator {
|
||||
|
||||
public FunctionTranslator(@NotNull TranslationContext context) {
|
||||
@NotNull
|
||||
public static FunctionTranslator newInstance(@NotNull TranslationContext context) {
|
||||
return new FunctionTranslator(context);
|
||||
}
|
||||
|
||||
private FunctionTranslator(@NotNull TranslationContext context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@@ -51,20 +55,14 @@ public final class FunctionTranslator extends AbstractTranslator {
|
||||
JetExpression jetBodyExpression = jetFunction.getBodyExpression();
|
||||
//TODO support them ffs
|
||||
assert jetBodyExpression != null : "Function without body not supported at the moment";
|
||||
JsNode body = (new ExpressionTranslator(functionContext(jetFunction))).translate(jetBodyExpression);
|
||||
JsNode body = Translation.expressionTranslator
|
||||
(translationContext().newFunction(jetFunction)).translate(jetBodyExpression);
|
||||
if (jetFunction.hasBlockBody()) {
|
||||
return AstUtil.convertToBlock(body);
|
||||
}
|
||||
return AstUtil.convertToBlock(new JsReturn(AstUtil.convertToExpression((body))));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private TranslationContext functionContext(@NotNull JetNamedFunction jetFunction) {
|
||||
FunctionDescriptor descriptor =
|
||||
BindingUtils.getFunctionDescriptor(translationContext().bindingContext(), jetFunction);
|
||||
return translationContext().newFunction(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<JsParameter> translateParameters(@NotNull List<JetParameter> jetParameters,
|
||||
@NotNull JsScope functionScope) {
|
||||
|
||||
@@ -25,7 +25,7 @@ public final class GenerationState {
|
||||
NamespaceDescriptor descriptor = BindingUtils.getNamespaceDescriptor(bindingContext, namespace);
|
||||
DeclarationExtractor extractor = new DeclarationExtractor();
|
||||
extractor.extractDeclarations(descriptor, result.getRootScope());
|
||||
(new NamespaceTranslator(TranslationContext.rootContext(result, bindingContext, extractor)))
|
||||
Translation.namespaceTranslator(TranslationContext.rootContext(result, bindingContext, extractor))
|
||||
.generateAst(namespace);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -77,8 +77,8 @@ public class InitializerVisitor extends TranslatorVisitor<List<JsStatement>> {
|
||||
@NotNull
|
||||
private JsStatement translateInitializer(@NotNull JetProperty property, @NotNull TranslationContext context,
|
||||
@NotNull JetExpression initializer) {
|
||||
ExpressionTranslator translator = new ExpressionTranslator(context);
|
||||
JsExpression initExpression = AstUtil.convertToExpression(translator.translate(initializer));
|
||||
JsExpression initExpression = AstUtil.convertToExpression(Translation.expressionTranslator(context)
|
||||
.translate(initializer));
|
||||
return assignmentToBackingField(property, initExpression, context);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,12 @@ import java.util.List;
|
||||
*/
|
||||
public final class NamespaceTranslator extends AbstractTranslator {
|
||||
|
||||
public NamespaceTranslator(@NotNull TranslationContext context) {
|
||||
@NotNull
|
||||
public static NamespaceTranslator newInstance(@NotNull TranslationContext context) {
|
||||
return new NamespaceTranslator(context);
|
||||
}
|
||||
|
||||
private NamespaceTranslator(@NotNull TranslationContext context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@@ -40,7 +45,7 @@ public final class NamespaceTranslator extends AbstractTranslator {
|
||||
|
||||
@NotNull
|
||||
private JsBlock translateDeclarations(@NotNull JetNamespace namespace, @NotNull TranslationContext newContext) {
|
||||
DeclarationTranslator declarationTranslator = new DeclarationTranslator(newContext);
|
||||
DeclarationTranslator declarationTranslator = Translation.declarationTranslator(newContext);
|
||||
JsBlock namespaceDeclarations = new JsBlock();
|
||||
for (JetDeclaration declaration : namespace.getDeclarations()) {
|
||||
namespaceDeclarations.addStatement(declarationTranslator.translateDeclaration(declaration));
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import java.util.Map;
|
||||
/**
|
||||
* @author Talanov Pavel
|
||||
*/
|
||||
public final class OperationTranslator {
|
||||
public final class OperatorTable {
|
||||
|
||||
|
||||
private static Map<JetToken, JsOperator> map = new HashMap<JetToken, JsOperator>();
|
||||
@@ -23,7 +23,12 @@ import org.jetbrains.jet.lang.resolve.calls.ResolvedCall;
|
||||
//TODO ask for code review. Class has messy code.
|
||||
public final class PropertyAccessTranslator extends AbstractTranslator {
|
||||
|
||||
public PropertyAccessTranslator(@NotNull TranslationContext context) {
|
||||
@NotNull
|
||||
public static PropertyAccessTranslator newInstance(@NotNull TranslationContext context) {
|
||||
return new PropertyAccessTranslator(context);
|
||||
}
|
||||
|
||||
private PropertyAccessTranslator(@NotNull TranslationContext context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@@ -50,8 +55,8 @@ public final class PropertyAccessTranslator extends AbstractTranslator {
|
||||
@NotNull
|
||||
private JsInvocation translateReceiverAndReturnAccessorInvocation
|
||||
(@NotNull JetDotQualifiedExpression dotQualifiedExpression, @NotNull JsName accessorName) {
|
||||
ExpressionTranslator translator = new ExpressionTranslator(translationContext());
|
||||
JsNode node = translator.translate(dotQualifiedExpression.getReceiverExpression());
|
||||
JsNode node = Translation.expressionTranslator(translationContext())
|
||||
.translate(dotQualifiedExpression.getReceiverExpression());
|
||||
JsNameRef result = accessorName.makeRef();
|
||||
result.setQualifier(AstUtil.convertToExpression(node));
|
||||
return AstUtil.newInvocation(result);
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package org.jetbrains.k2js.translate;
|
||||
|
||||
import com.google.dart.compiler.backend.js.ast.JsNode;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||
|
||||
/**
|
||||
* @author Talanov Pavel
|
||||
* <p/>
|
||||
* This class is a factory for obtaining instances of translators.
|
||||
*/
|
||||
public final class Translation {
|
||||
|
||||
@NotNull
|
||||
static public ExpressionTranslator expressionTranslator(@NotNull TranslationContext context) {
|
||||
return ExpressionTranslator.newInstance(context);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static public FunctionTranslator functionTranslator(@NotNull TranslationContext context) {
|
||||
return FunctionTranslator.newInstance(context);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static public PropertyAccessTranslator propertyAccessTranslator(@NotNull TranslationContext context) {
|
||||
return PropertyAccessTranslator.newInstance(context);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static public NamespaceTranslator namespaceTranslator(@NotNull TranslationContext context) {
|
||||
return NamespaceTranslator.newInstance(context);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static public ClassTranslator classTranslator(@NotNull TranslationContext context) {
|
||||
return ClassTranslator.newInstance(context);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static public DeclarationTranslator declarationTranslator(@NotNull TranslationContext context) {
|
||||
return DeclarationTranslator.newInstance(context);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static public JsNode translateExpression(@NotNull JetExpression expression, @NotNull TranslationContext context) {
|
||||
return expressionTranslator(context).translate(expression);
|
||||
}
|
||||
}
|
||||
@@ -40,12 +40,13 @@ public class TranslatorVisitor<T> extends JetVisitor<T, TranslationContext> {
|
||||
|
||||
|
||||
@Nullable
|
||||
protected JsExpression translateInitializer(@NotNull JetProperty declaration, @NotNull TranslationContext context) {
|
||||
protected JsExpression translateInitializerForProperty(@NotNull JetProperty declaration,
|
||||
@NotNull TranslationContext context) {
|
||||
JsExpression jsInitExpression = null;
|
||||
JetExpression initializer = declaration.getInitializer();
|
||||
if (initializer != null) {
|
||||
jsInitExpression = AstUtil.convertToExpression(
|
||||
(new ExpressionTranslator(context)).translate(initializer));
|
||||
jsInitExpression = AstUtil.convertToExpression(Translation.expressionTranslator(context)
|
||||
.translate(initializer));
|
||||
}
|
||||
return jsInitExpression;
|
||||
}
|
||||
|
||||
@@ -80,4 +80,9 @@ public final class FunctionTest extends TranslationTest {
|
||||
public void functionUsedBeforeDeclaration() throws Exception {
|
||||
testFooBoxIsTrue("functionUsedBeforeDeclaration.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void functionWithTwoParametersCall() throws Exception {
|
||||
testFooBoxIsTrue("functionWithTwoParametersCall.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace foo
|
||||
|
||||
fun sum(param1 : Int, param2 : Int) : Int {
|
||||
return param1 + param2;
|
||||
}
|
||||
|
||||
fun box() : Boolean {
|
||||
return (sum(1, 5) == 6)
|
||||
}
|
||||
Reference in New Issue
Block a user