Added custom getter, setter, class support. Not complete.

This commit is contained in:
Pavel Talanov
2011-11-02 19:34:55 +04:00
parent eca501966a
commit 26b8424d37
19 changed files with 371 additions and 263 deletions
+247 -162
View File
@@ -29,20 +29,7 @@
</component> </component>
<component name="DebuggerManager"> <component name="DebuggerManager">
<line_breakpoints> <line_breakpoints>
<breakpoint url="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/TranslationContext.java" line="70" class="org.jetbrains.k2js.translate.TranslationContext" package="org.jetbrains.k2js.translate"> <breakpoint url="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationTranslator.java" line="27" class="org.jetbrains.k2js.translate.DeclarationTranslator" package="org.jetbrains.k2js.translate">
<option name="ENABLED" value="true" />
<option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
<option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="COUNT_FILTER_ENABLED" value="false" />
<option name="COUNT_FILTER" value="0" />
<option name="CONDITION_ENABLED" value="false" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</breakpoint>
<breakpoint url="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationTranslator.java" line="80" class="org.jetbrains.k2js.translate.DeclarationTranslator.NamespacePropertyDeclaration" package="org.jetbrains.k2js.translate">
<option name="ENABLED" value="true" /> <option name="ENABLED" value="true" />
<option name="LOG_ENABLED" value="false" /> <option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" /> <option name="LOG_EXPRESSION_ENABLED" value="false" />
@@ -95,31 +82,22 @@
<favorites_list name="k2js" /> <favorites_list name="k2js" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.4299611"> <splitter split-orientation="horizontal" split-proportion="0.61738">
<split-first> <split-first>
<leaf> <leaf>
<file leaf-file-name="DeclarationTranslator.java" pinned="false" current="true" current-in-tab="true"> <file leaf-file-name="BindingContext.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationTranslator.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="75" column="30" selection-start="2696" selection-end="2696" vertical-scroll-proportion="1.5930233"> <state line="49" column="30" selection-start="3469" selection-end="3469" vertical-scroll-proportion="-5.923077">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="FunctionTranslator.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="ClassTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/FunctionTranslator.java"> <entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ClassTranslator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="38" column="15" selection-start="1475" selection-end="1475" vertical-scroll-proportion="0.0"> <state line="29" column="10" selection-start="1105" selection-end="1105" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="K2JsVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/K2JsVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="18" column="52" selection-start="550" selection-end="550" vertical-scroll-proportion="0.0">
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
@@ -127,64 +105,77 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="JetVisitor.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="MutableClassDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MutableClassDescriptor.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="39" column="35" selection-start="1120" selection-end="1120" vertical-scroll-proportion="-8.692307"> <state line="272" column="0" selection-start="10394" selection-end="10394" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="JetNamespaceBody.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="JetClass.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetNamespaceBody.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClass.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="11" column="13" selection-start="216" selection-end="216" vertical-scroll-proportion="0.0"> <state line="14" column="13" selection-start="328" selection-end="328" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="AbstractTranslator.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="ClassDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/AbstractTranslator.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="38" column="0" selection-start="977" selection-end="1087" vertical-scroll-proportion="0.0"> <state line="25" column="8" selection-start="784" selection-end="784" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="TranslationContext.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="JetType.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/TranslationContext.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/JetType.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="6" column="36" selection-start="273" selection-end="274" vertical-scroll-proportion="-0.65384614"> <state line="11" column="17" selection-start="271" selection-end="271" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="JsFunction.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="DeclarationDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/google/dart/compiler/backend/js/ast/JsFunction.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptor.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="78" column="45" selection-start="2249" selection-end="2249" vertical-scroll-proportion="0.0"> <state line="10" column="17" selection-start="294" selection-end="294" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="Lists.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="ClassBodyVisitor.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/com/google/dart/compiler/util/Lists.java"> <entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="103" column="11" selection-start="3043" selection-end="3043" vertical-scroll-proportion="0.0"> <state line="60" column="78" selection-start="2341" selection-end="2341" vertical-scroll-proportion="0.8633441">
<folding /> <folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="JsSourceGenerationVisitor.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="Namer.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/google/dart/compiler/backend/js/JsSourceGenerationVisitor.java"> <entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/Namer.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="24" column="0" selection-start="837" selection-end="837" vertical-scroll-proportion="0.0"> <state line="24" column="54" selection-start="641" selection-end="641" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DeclarationTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="16" column="13" selection-start="404" selection-end="404" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -194,11 +185,14 @@
</split-first> </split-first>
<split-second> <split-second>
<leaf> <leaf>
<file leaf-file-name="ExpressionTranslator.java" pinned="false" current="false" current-in-tab="true"> <file leaf-file-name="ExpressionTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ExpressionTranslator.java"> <entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ExpressionTranslator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="29" column="5" selection-start="876" selection-end="876" vertical-scroll-proportion="0.53543305"> <state line="14" column="11" selection-start="460" selection-end="460" vertical-scroll-proportion="0.0">
<folding /> <folding>
<element signature="method#ExpressionTranslator#0;class#ExpressionTranslator#0" expanded="false" />
<element signature="method#translate#0;class#ExpressionTranslator#0" expanded="false" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -217,7 +211,7 @@
<file leaf-file-name="K2JSTranslator.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="K2JSTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/K2JSTranslator.java"> <entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/K2JSTranslator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="86" column="89" selection-start="3329" selection-end="3329" vertical-scroll-proportion="0.0"> <state line="48" column="28" selection-start="1886" selection-end="1886" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -235,21 +229,32 @@
<file leaf-file-name="NamespaceTranslator.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="NamespaceTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/NamespaceTranslator.java"> <entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/NamespaceTranslator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="38" column="69" selection-start="1402" selection-end="1402" vertical-scroll-proportion="0.0"> <state line="38" column="0" selection-start="1333" selection-end="1333" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="test.kt" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="test.kt" pinned="false" current="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/test_files/test.kt"> <entry file="file://$PROJECT_DIR$/test_files/test.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="17" column="42" selection-start="269" selection-end="269" vertical-scroll-proportion="0.0"> <state line="13" column="6" selection-start="151" selection-end="151" vertical-scroll-proportion="0.35934958">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="K2JsVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/K2JsVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="18" column="52" selection-start="550" selection-end="550" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ContextType.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="ContextType.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ContextType.java"> <entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ContextType.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
@@ -262,7 +267,7 @@
<file leaf-file-name="AstUtil.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="AstUtil.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/google/dart/compiler/util/AstUtil.java"> <entry file="file://$PROJECT_DIR$/src/com/google/dart/compiler/util/AstUtil.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="126" column="20" selection-start="4197" selection-end="4197" vertical-scroll-proportion="0.0"> <state line="30" column="28" selection-start="1015" selection-end="1015" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -294,22 +299,22 @@
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="changedFiles"> <option name="changedFiles">
<list> <list>
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/OperationTranslator.java" />
<option value="$PROJECT_DIR$/src/com/google/dart/compiler/backend/js/ast/JsFunction.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/AbstractTranslator.java" />
<option value="$PROJECT_DIR$/src/com/google/dart/compiler/util/AstUtil.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ContextType.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationTranslator.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/NamespaceTranslator.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/FunctionTranslator.java" /> <option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/FunctionTranslator.java" />
<option value="$PROJECT_DIR$/test_files/test.kt" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/K2JSTranslator.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/TranslationContext.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ExpressionTranslator.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/K2JsVisitor.java" /> <option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/K2JsVisitor.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" /> <option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationVisitor.java" /> <option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationVisitor.java" />
<option value="$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java" /> <option value="$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ExpressionTranslator.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/AbstractTranslator.java" />
<option value="$PROJECT_DIR$/src/com/google/dart/compiler/backend/js/ast/JsInvocation.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationTranslator.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/K2JSTranslator.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/TranslationContext.java" />
<option value="$PROJECT_DIR$/src/com/google/dart/compiler/backend/js/ast/JsObjectLiteral.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/Namer.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
<option value="$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java" />
<option value="$PROJECT_DIR$/test_files/test.kt" />
</list> </list>
</option> </option>
</component> </component>
@@ -386,6 +391,20 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </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="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="test_files" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="k2js" /> <option name="myItemId" value="k2js" />
@@ -440,6 +459,70 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </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="frontend" />
<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="frontend" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="jet" />
<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="frontend" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="jet" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="lang" />
<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="frontend" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane> </subPane>
</pane> </pane>
</panes> </panes>
@@ -646,7 +729,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="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.17540108" sideWeight="0.6719057" 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.17540108" sideWeight="0.6719057" 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="7" 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="7" 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.3280943" sideWeight="0.5" order="2" 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.3280943" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="JsTestDriver Server" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="JsTestDriver Server" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" 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="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="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" />
@@ -706,122 +789,124 @@
<option name="FILTER_TARGETS" value="false" /> <option name="FILTER_TARGETS" value="false" />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/NamespaceTranslator.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClassBody.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="38" column="69" selection-start="1402" selection-end="1402" vertical-scroll-proportion="0.0"> <state line="42" column="35" selection-start="1162" selection-end="1162" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/test/com/google/dart/compiler/backend/js/Test.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetDelegationSpecifierList.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="6" column="13" selection-start="215" selection-end="215" vertical-scroll-proportion="0.0"> <state line="26" column="26" selection-start="670" selection-end="670" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetNamespaceBody.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetDelegationSpecifier.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="11" column="13" selection-start="216" selection-end="216" vertical-scroll-proportion="0.0"> <state line="10" column="13" selection-start="232" selection-end="232" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/OperationTranslator.java"> <entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetDeclaration.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="14" column="19" selection-start="414" selection-end="414" vertical-scroll-proportion="0.0"> <state line="11" column="22" selection-start="282" selection-end="282" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/K2JSTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="86" column="89" selection-start="3329" selection-end="3329" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="6" column="36" selection-start="273" selection-end="274" vertical-scroll-proportion="-0.65384614">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/AbstractTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="38" column="0" selection-start="977" selection-end="1087" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_files/test.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="42" selection-start="269" selection-end="269" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/K2JsVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="18" column="52" selection-start="550" selection-end="550" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/google/dart/compiler/backend/js/ast/JsNameRef.java">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="25" selection-start="362" selection-end="362" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="39" column="35" selection-start="1120" selection-end="1120" vertical-scroll-proportion="-8.692307">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/google/dart/compiler/backend/js/JsToStringGenerationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="665" column="0" selection-start="17342" selection-end="17342" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/FunctionTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="38" column="15" selection-start="1475" selection-end="1475" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="57" selection-start="493" selection-end="493" vertical-scroll-proportion="-10.2">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ExpressionTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="29" column="5" selection-start="876" selection-end="876" vertical-scroll-proportion="0.53543305">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationTranslator.java"> <entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/DeclarationTranslator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="75" column="30" selection-start="2696" selection-end="2696" vertical-scroll-proportion="1.5930233"> <state line="16" column="13" selection-start="404" selection-end="404" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="17" selection-start="294" selection-end="294" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="25" column="8" selection-start="784" selection-end="784" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/JetType.java">
<provider selected="true" editor-type-id="text-editor">
<state line="11" column="17" selection-start="271" selection-end="271" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="49" column="30" selection-start="3469" selection-end="3469" vertical-scroll-proportion="-5.923077">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/Namer.java">
<provider selected="true" editor-type-id="text-editor">
<state line="24" column="54" selection-start="641" selection-end="641" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/K2JSTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="48" column="28" selection-start="1886" selection-end="1886" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClass.java">
<provider selected="true" editor-type-id="text-editor">
<state line="14" column="13" selection-start="328" selection-end="328" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MutableClassDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="272" column="0" selection-start="10394" selection-end="10394" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ClassTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="29" column="10" selection-start="1105" selection-end="1105" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_files/test.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="6" selection-start="151" selection-end="151" vertical-scroll-proportion="0.35934958">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="60" column="78" selection-start="2341" selection-end="2341" vertical-scroll-proportion="0.8633441">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component> </component>
<component name="masterDetails"> <component name="masterDetails">
<states> <states>
@@ -12,51 +12,51 @@ import java.util.List;
*/ */
public final class JsInvocation extends JsExpression implements HasArguments { public final class JsInvocation extends JsExpression implements HasArguments {
private final List<JsExpression> args = new ArrayList<JsExpression>(); private final List<JsExpression> args = new ArrayList<JsExpression>();
private JsExpression qualifier; private JsExpression qualifier;
public JsInvocation() { public JsInvocation() {
}
@Override
public List<JsExpression> getArguments() {
return args;
}
public JsExpression getQualifier() {
return qualifier;
}
@Override
public boolean hasSideEffects() {
return true;
}
@Override
public boolean isDefinitelyNotNull() {
return false;
}
@Override
public boolean isDefinitelyNull() {
return false;
}
public void setQualifier(JsExpression qualifier) {
this.qualifier = qualifier;
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
qualifier = v.accept(qualifier);
v.acceptList(args);
} }
v.endVisit(this, ctx);
}
@Override @Override
public NodeKind getKind() { public List<JsExpression> getArguments() {
return NodeKind.INVOKE; return args;
} }
public JsExpression getQualifier() {
return qualifier;
}
@Override
public boolean hasSideEffects() {
return true;
}
@Override
public boolean isDefinitelyNotNull() {
return false;
}
@Override
public boolean isDefinitelyNull() {
return false;
}
public void setQualifier(JsExpression qualifier) {
this.qualifier = qualifier;
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
qualifier = v.accept(qualifier);
v.acceptList(args);
}
v.endVisit(this, ctx);
}
@Override
public NodeKind getKind() {
return NodeKind.INVOKE;
}
} }
@@ -12,55 +12,61 @@ import java.util.List;
*/ */
public final class JsObjectLiteral extends JsLiteral { public final class JsObjectLiteral extends JsLiteral {
private final List<JsPropertyInitializer> props = new ArrayList<JsPropertyInitializer>(); private final List<JsPropertyInitializer> props;
public JsObjectLiteral() { public JsObjectLiteral() {
} props = new ArrayList<JsPropertyInitializer>();
}
public List<JsPropertyInitializer> getPropertyInitializers() { public JsObjectLiteral(List<JsPropertyInitializer> props) {
return props; assert props != null;
} this.props = props;
}
@Override public List<JsPropertyInitializer> getPropertyInitializers() {
public boolean hasSideEffects() { return props;
for (JsPropertyInitializer prop : props) { }
if (prop.hasSideEffects()) {
@Override
public boolean hasSideEffects() {
for (JsPropertyInitializer prop : props) {
if (prop.hasSideEffects()) {
return true;
}
}
return false;
}
@Override
public boolean isBooleanFalse() {
return false;
}
@Override
public boolean isBooleanTrue() {
return true; return true;
}
} }
return false;
}
@Override @Override
public boolean isBooleanFalse() { public boolean isDefinitelyNotNull() {
return false; return true;
}
@Override
public boolean isBooleanTrue() {
return true;
}
@Override
public boolean isDefinitelyNotNull() {
return true;
}
@Override
public boolean isDefinitelyNull() {
return false;
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
v.acceptWithInsertRemove(props);
} }
v.endVisit(this, ctx);
}
@Override @Override
public NodeKind getKind() { public boolean isDefinitelyNull() {
return NodeKind.OBJECT; return false;
} }
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
v.acceptWithInsertRemove(props);
}
v.endVisit(this, ctx);
}
@Override
public NodeKind getKind() {
return NodeKind.OBJECT;
}
} }
+1 -1
View File
@@ -45,7 +45,7 @@ public class K2JSTranslator {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("java.awt.headless", "true"); System.setProperty("java.awt.headless", "true");
Arguments arguments = new Arguments(); Arguments arguments = new Arguments();
arguments.src = "C:\\Dev\\Projects\\k2js\\test_files\\test.kt"; arguments.src = "C:\\Dev\\Projects\\jet-contrib\\k2js\\test_files\\test.kt";
Disposable root = new Disposable() { Disposable root = new Disposable() {
@Override @Override
@@ -36,8 +36,7 @@ public abstract class AbstractTranslator {
@NotNull @NotNull
protected JsName getJSName(String jetName) { protected JsName getJSName(String jetName) {
//TODO dummy implemetation return context.getJSName(jetName);
return new JsName(program().getScope(), jetName, jetName, jetName);
} }
@NotNull @NotNull
@@ -32,8 +32,9 @@ public class DeclarationTranslator extends AbstractTranslator {
return AstUtil.convertToStatement((new FunctionTranslator(translationContext())) return AstUtil.convertToStatement((new FunctionTranslator(translationContext()))
.translateFunction((JetNamedFunction) declaration)); .translateFunction((JetNamedFunction) declaration));
} }
else if (declaration instanceof JetClassOrObject) { else if (declaration instanceof JetClass) {
//classCodegen.translate(context, (JetClassOrObject) declaration); ClassTranslator classTranslator = new ClassTranslator(translationContext());
return classTranslator.translateClass((JetClass)declaration);
} }
else if (declaration instanceof JetNamespace) { else if (declaration instanceof JetNamespace) {
// JetNamespace childNamespace = (JetNamespace) declaration; // JetNamespace childNamespace = (JetNamespace) declaration;
@@ -12,7 +12,7 @@ import org.jetbrains.jet.lexer.JetToken;
import java.util.List; import java.util.List;
/** /**
* Talanov Pavel * @author Talanov Pavel
*/ */
class ExpressionTranslator extends AbstractTranslator { class ExpressionTranslator extends AbstractTranslator {
@@ -17,6 +17,8 @@ public class TranslationContext {
private final BindingContext context; private final BindingContext context;
private final JsScope enclosingScope; private final JsScope enclosingScope;
private final ContextType type; private final ContextType type;
private final JsNameRef classObjectReference;
private final JsNameRef classCreationMethodReference;
private TranslationContext(JsNameRef namespace, JsBlock block, JsProgram program, private TranslationContext(JsNameRef namespace, JsBlock block, JsProgram program,
@@ -32,6 +34,8 @@ public class TranslationContext {
this.context = bindingContext; this.context = bindingContext;
this.enclosingScope = enclosingScope; this.enclosingScope = enclosingScope;
this.type = type; this.type = type;
this.classObjectReference = new JsNameRef(getJSName("Class"));
this.classCreationMethodReference = AstUtil.newQualifiedNameRef("Class.create");
} }
@NotNull @NotNull
@@ -84,6 +88,11 @@ public class TranslationContext {
return context; return context;
} }
@NotNull
public JsNameRef classObjectReference() {
return classObjectReference;
}
@NotNull @NotNull
public JsProgram program() { public JsProgram program() {
return program; return program;
@@ -104,5 +113,10 @@ public class TranslationContext {
return type; return type;
} }
@NotNull
JsNameRef classCreationMethodReference() {
return classCreationMethodReference;
}
} }
+11 -8
View File
@@ -5,15 +5,18 @@ val b : Int = 235456
var c : Int = 1324 var c : Int = 1324
var myFavouriteName : Int = 1245 var myFavouriteName : Int = 1245
fun main() : Int {
return 5 open class B() {
} }
fun eval(x : Int, y : String) : Int { class A() : B() {
return (1456 - 34) * 5 var a : Int
} get() : Int {
return 4
}
fun olol(abab : Int) : Int { set() {
var a : Int = 5
return a }
} }