refactor propertyAccessTranslator

This commit is contained in:
Pavel Talanov
2011-12-05 17:42:11 +04:00
parent d3eaff5d76
commit 677c1a5ad3
5 changed files with 344 additions and 362 deletions
+287 -295
View File
@@ -5,33 +5,12 @@
</component>
<component name="ChangeListManager">
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/DynamicContext.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/NamingScope.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TemporaryVariable.java" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\src\org\jetbrains\k2js\declarations\DeclarationContext.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/DeclarationContext.java" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\src\org\jetbrains\k2js\declarations\DeclarationVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/DeclarationVisitor.java" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\src\org\jetbrains\k2js\declarations\Declarations.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/Declarations.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/../WebView/.idea/misc.xml" afterPath="$PROJECT_DIR$/../WebView/.idea/misc.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/function/cases/enclosingThis.jet" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/../WebView/.idea/workspace.xml" afterPath="$PROJECT_DIR$/../WebView/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/../java-compatibility/.idea/misc.xml" afterPath="$PROJECT_DIR$/../java-compatibility/.idea/misc.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/PropertyTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/PropertyTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/AbstractInitializerTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/AbstractInitializerTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/NamespaceInitializerTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/NamespaceInitializerTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/IncrementTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/IncrementTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ArrayAccessTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ArrayAccessTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.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" />
@@ -74,8 +53,8 @@
<option name="CONDITION_ENABLED" value="false" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="JAVA" />
<option name="LOG_MESSAGE" value="JAVA" />
<option name="CONDITION" value="JAVA&#13;&#13;JAVA" />
<option name="LOG_MESSAGE" value="JAVA&#13;&#13;JAVA" />
</breakpoint>
<breakpoint url="file://$PROJECT_DIR$/examples/test/JetTestCaseBuilder.java" line="41" class="JetTestCaseBuilder" package="">
<option name="ENABLED" value="true" />
@@ -129,6 +108,19 @@
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</breakpoint>
<breakpoint url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" line="225" class="org.jetbrains.k2js.translate.utils.BindingUtils" package="org.jetbrains.k2js.translate.utils">
<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$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" line="40" class="org.jetbrains.k2js.translate.reference.ReferenceTranslator" package="org.jetbrains.k2js.translate.reference">
<option name="ENABLED" value="true" />
<option name="LOG_ENABLED" value="false" />
@@ -136,26 +128,13 @@
<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="CONDITION_ENABLED" value="true" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
<option name="CONDITION" value="simpleName.getReferencedName().equals(&quot;m&quot;)&#13;&#13;JAVA" />
<option name="LOG_MESSAGE" value="&#13;&#13;JAVA" />
</breakpoint>
<breakpoint url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" line="56" class="org.jetbrains.k2js.translate.reference.ReferenceTranslator" package="org.jetbrains.k2js.translate.reference">
<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$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" line="107" class="org.jetbrains.k2js.translate.context.TranslationContext" package="org.jetbrains.k2js.translate.context">
<breakpoint url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java" line="163" class="org.jetbrains.k2js.translate.utils.TranslationUtils" package="org.jetbrains.k2js.translate.utils">
<option name="ENABLED" value="true" />
<option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
@@ -182,8 +161,8 @@
<option name="CONDITION_ENABLED" value="false" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="JAVA" />
<option name="LOG_MESSAGE" value="JAVA" />
<option name="CONDITION" value="JAVA&#13;&#13;JAVA" />
<option name="LOG_MESSAGE" value="JAVA&#13;&#13;JAVA" />
</breakpoint>
<breakpoint>
<option name="NOTIFY_CAUGHT" value="true" />
@@ -197,8 +176,8 @@
<option name="CONDITION_ENABLED" value="false" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="JAVA" />
<option name="LOG_MESSAGE" value="JAVA" />
<option name="CONDITION" value="JAVA&#13;&#13;JAVA" />
<option name="LOG_MESSAGE" value="JAVA&#13;&#13;JAVA" />
</breakpoint>
</breakpoint_any>
<breakpoint_rules />
@@ -225,13 +204,13 @@
<favorites_list name="k2js" />
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.38007116">
<splitter split-orientation="horizontal" split-proportion="0.27758008">
<split-first>
<leaf>
<file leaf-file-name="TranslationContext.java" pinned="false" current="false" current-in-tab="false">
<file leaf-file-name="TranslationContext.java" pinned="false" current="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="100" column="63" selection-start="3755" selection-end="3755" vertical-scroll-proportion="0.0">
<state line="79" column="27" selection-start="3132" selection-end="3132" vertical-scroll-proportion="0.3859649">
<folding />
</state>
</provider>
@@ -246,19 +225,10 @@
</provider>
</entry>
</file>
<file leaf-file-name="TranslationTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TranslationTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="2" column="25" selection-start="59" selection-end="59" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="TemporaryVariable.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TemporaryVariable.java">
<provider selected="true" editor-type-id="text-editor">
<state line="29" column="13" selection-start="880" selection-end="880" vertical-scroll-proportion="0.0">
<state line="29" column="17" selection-start="884" selection-end="884" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -309,10 +279,10 @@
</provider>
</entry>
</file>
<file leaf-file-name="DescriptorUtils.java" pinned="false" current="true" current-in-tab="true">
<file leaf-file-name="DescriptorUtils.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="52" selection-start="492" selection-end="492" vertical-scroll-proportion="0.110032365">
<state line="13" column="52" selection-start="492" selection-end="492" vertical-scroll-proportion="0.0">
<folding>
<element signature="e#2087#2110#0" expanded="true" />
</folding>
@@ -320,95 +290,106 @@
</provider>
</entry>
</file>
<file leaf-file-name="enclosingThis.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/cases/enclosingThis.jet">
<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>
</leaf>
</split-first>
<split-second>
<leaf>
<file leaf-file-name="DeclarationVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/DeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="62" column="53" selection-start="2604" selection-end="2604" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ReferenceTranslator.java" pinned="false" current="false" current-in-tab="true">
<file leaf-file-name="ReferenceTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="40" column="0" selection-start="1492" selection-end="1492" vertical-scroll-proportion="0.33333334">
<state line="40" column="0" selection-start="1492" selection-end="1492" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JetType.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/JetType.java">
<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/expression/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="9" selection-start="445" selection-end="445" vertical-scroll-proportion="0.0">
<state line="115" column="21" selection-start="5098" selection-end="5098" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="CallTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="117" column="24" selection-start="5841" selection-end="5841" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ClassDescriptorImpl.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptorImpl.java">
<file leaf-file-name="FunctionTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="112" column="54" selection-start="4625" selection-end="4625" vertical-scroll-proportion="-18.307692">
<state line="57" column="16" selection-start="1355" selection-end="1355" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JetScope.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java">
<file leaf-file-name="PropertyAccessorDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyAccessorDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="25" column="21" selection-start="738" selection-end="738" vertical-scroll-proportion="0.0">
<state line="15" column="22" selection-start="457" selection-end="457" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DescriptorUtils.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java">
<file leaf-file-name="TranslationUtils.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="13" selection-start="504" selection-end="504" vertical-scroll-proportion="0.0">
<state line="163" column="0" selection-start="7301" selection-end="7301" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="NamespaceDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/NamespaceDescriptor.java">
<file leaf-file-name="PropertyAccessTranslator.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="72" selection-start="359" selection-end="359" vertical-scroll-proportion="0.0">
<state line="152" column="83" selection-start="6581" selection-end="6581" vertical-scroll-proportion="0.28424153">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DeclarationDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptor.java">
<file leaf-file-name="BindingUtils.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="59" selection-start="336" selection-end="336" vertical-scroll-proportion="0.0">
<state line="225" column="0" selection-start="10552" selection-end="10552" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Named.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Named.java">
<file leaf-file-name="VariableAsFunctionDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/VariableAsFunctionDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="17" selection-start="133" selection-end="133" vertical-scroll-proportion="0.0">
<state line="11" column="40" selection-start="308" selection-end="308" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Annotated.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/annotations/Annotated.java">
<file leaf-file-name="PropertyDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="17" selection-start="126" selection-end="126" vertical-scroll-proportion="0.0">
<state line="33" column="12" selection-start="1331" selection-end="1331" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -435,9 +416,6 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/DeclarationContext.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/Declarations.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/PropertyTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/AbstractInitializerTranslator.java" />
@@ -451,6 +429,9 @@
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/DynamicContext.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/DeclarationVisitor.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java" />
</list>
</option>
</component>
@@ -659,7 +640,55 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="operatorOverloading" />
<option name="myItemId" value="expression" />
<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="expression" />
<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="expression" />
<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>
@@ -681,7 +710,51 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="expression" />
<option name="myItemId" value="examples" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="sortedTests" />
<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="examples" />
<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="examples" />
<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>
@@ -717,80 +790,6 @@
<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="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</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="translate" />
<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="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</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="translate" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="declaration" />
<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="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</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="translate" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="context" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
@@ -873,58 +872,17 @@
<recent name="org.jetbrains.k2js.backend" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\expression\function\cases" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\javascript\cases" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\examples\new" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\js\cases" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\examples\cases" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\examples" />
</key>
<key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
<recent name="org.jetbrains.k2js.test.examples" />
</key>
</component>
<component name="RunManager" selected="JUnit.All in jetTests">
<configuration default="false" name="IntrinsicTest.intrinsicPlusAssign" type="JUnit" factoryName="JUnit" temporary="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="org.jetbrains.k2js.test.*" />
<option name="ENABLED" value="true" />
</pattern>
<pattern>
<option name="PATTERN" value="org.jetbrains.k2js.translate.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="translator" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.IntrinsicTest" />
<option name="METHOD_NAME" value="intrinsicPlusAssign" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<dir value="$PROJECT_DIR$/translator" />
<patterns />
<RunnerSettings RunnerId="Cover" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Cover" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<component name="RunManager" selected="JUnit.tests">
<configuration default="false" name="compareTo.js" type="JavascriptDebugSession" factoryName="Local" temporary="true">
<JSDebuggerConfigurationSettings>
<option name="engineId" value="embedded" />
@@ -1021,6 +979,40 @@
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="FunctionTest.enclosingThis" type="JUnit" factoryName="JUnit" temporary="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true">
<pattern>
<option name="PATTERN" value="org.jetbrains.k2js.test.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="translator" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.FunctionTest" />
<option name="METHOD_NAME" value="enclosingThis" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
@@ -1142,11 +1134,11 @@
</configuration>
<list size="6">
<item index="0" class="java.lang.String" itemvalue="JUnit.tests" />
<item index="1" class="java.lang.String" itemvalue="JUnit.IntrinsicTest.intrinsicPlusAssign" />
<item index="2" class="java.lang.String" itemvalue="JavaScript Debug.compareTo.js" />
<item index="3" class="java.lang.String" itemvalue="JUnit.TraitTest.traitAddsFunctionsToClass" />
<item index="4" class="java.lang.String" itemvalue="JUnit.TraitTest.classDerivesFromClassAndTrait" />
<item index="5" class="java.lang.String" itemvalue="JUnit.All in jetTests" />
<item index="1" class="java.lang.String" itemvalue="JavaScript Debug.compareTo.js" />
<item index="2" class="java.lang.String" itemvalue="JUnit.TraitTest.traitAddsFunctionsToClass" />
<item index="3" class="java.lang.String" itemvalue="JUnit.TraitTest.classDerivesFromClassAndTrait" />
<item index="4" class="java.lang.String" itemvalue="JUnit.All in jetTests" />
<item index="5" class="java.lang.String" itemvalue="JUnit.FunctionTest.enclosingThis" />
</list>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host>
@@ -1221,7 +1213,7 @@
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32977018" sideWeight="0.728146" order="4" 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.24906467" sideWeight="0.6993276" order="0" 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.30067244" sideWeight="0.64190274" 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.30067244" sideWeight="0.64190274" 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="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
@@ -1264,7 +1256,7 @@
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="LAST_COMMIT_MESSAGE" value="intrinsics refactor" />
<option name="LAST_COMMIT_MESSAGE" value="Reorganise context structure, refactor" />
<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" />
@@ -1277,7 +1269,6 @@
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
<MESSAGE value="Fixed a bug where class could not access namespace properties." />
<MESSAGE value="Corrected class declaration logic." />
<MESSAGE value="Supported single file without namespace." />
<MESSAGE value="Added array basic class." />
@@ -1302,6 +1293,7 @@
<MESSAGE value="refactoring" />
<MESSAGE value="refactor and fix assignment operator on property bug" />
<MESSAGE value="intrinsics refactor" />
<MESSAGE value="Reorganise context structure, refactor" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
@@ -1311,120 +1303,120 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptorImpl.java">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/cases/enclosingThis.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="16" selection-start="397" selection-end="397" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/AbstractTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="100" column="63" selection-start="3755" selection-end="3755" vertical-scroll-proportion="0.0">
<state line="26" column="0" selection-start="670" selection-end="670" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/function/cases/enclosingThis.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="25" column="105" selection-start="1428" selection-end="1428" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/DeclarationBodyVisitor.java">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/VariableDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="19" column="19" selection-start="662" selection-end="662" vertical-scroll-proportion="0.0">
<state line="10" column="17" selection-start="274" selection-end="274" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptorImpl.java">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/function/out/enclosingThis.js">
<provider selected="true" editor-type-id="text-editor">
<state line="112" column="54" selection-start="4625" selection-end="4625" vertical-scroll-proportion="-18.307692">
<state line="11" column="37" selection-start="237" selection-end="237" 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">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/VariableAsFunctionDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="9" selection-start="445" selection-end="445" vertical-scroll-proportion="0.0">
<state line="11" column="40" selection-start="308" selection-end="308" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="25" column="21" selection-start="738" selection-end="738" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="13" selection-start="504" selection-end="504" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/annotations/Annotated.java">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="17" selection-start="126" selection-end="126" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Named.java">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="17" selection-start="133" selection-end="133" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</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="59" selection-start="336" selection-end="336" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/NamespaceDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="72" selection-start="359" selection-end="359" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsProgram.java">
<provider selected="true" editor-type-id="text-editor">
<state line="82" column="17" selection-start="2414" selection-end="2414" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/DeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="62" column="53" selection-start="2604" selection-end="2604" vertical-scroll-proportion="0.0">
<state line="225" column="0" selection-start="10552" selection-end="10552" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="40" column="0" selection-start="1492" selection-end="1492" vertical-scroll-proportion="0.33333334">
<state line="40" column="0" selection-start="1492" selection-end="1492" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="52" selection-start="492" selection-end="492" vertical-scroll-proportion="0.110032365">
<state line="115" column="21" selection-start="5098" selection-end="5098" vertical-scroll-proportion="0.0">
<folding>
<element signature="e#2087#2110#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="163" column="0" selection-start="7301" selection-end="7301" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="79" column="27" selection-start="3132" selection-end="3132" vertical-scroll-proportion="0.3859649">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyAccessorDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="22" selection-start="457" selection-end="457" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="57" column="16" selection-start="1355" selection-end="1355" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="117" column="24" selection-start="5841" selection-end="5841" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="33" column="12" selection-start="1331" selection-end="1331" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="152" column="83" selection-start="6581" selection-end="6581" vertical-scroll-proportion="0.28424153">
<folding />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
@@ -7,14 +7,14 @@ import com.google.dart.compiler.backend.js.ast.JsNew;
import com.google.dart.compiler.util.AstUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.k2js.translate.context.TranslationContext;
import org.jetbrains.k2js.translate.general.AbstractTranslator;
import org.jetbrains.k2js.translate.intrinsic.FunctionIntrinsic;
import org.jetbrains.k2js.translate.utils.TranslationUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -29,12 +29,15 @@ import static org.jetbrains.k2js.translate.utils.TranslationUtils.*;
*/
public final class CallTranslator extends AbstractTranslator {
public static boolean isFunctionCall(@NotNull JetOperationExpression expression,
@NotNull TranslationContext context) {
DeclarationDescriptor descriptor = getDescriptorForReferenceExpression
(context.bindingContext(), expression.getOperation());
return (descriptor instanceof FunctionDescriptor);
}
//TODO: remove?
// public static boolean isFunctionCall(@NotNull JetOperationExpression expression,
// @NotNull TranslationContext context) {
// DeclarationDescriptor descriptor = getDescriptorForReferenceExpression
// (context.bindingContext(), expression.getOperation());
// return (descriptor instanceof FunctionDescriptor);
// }
public static JsExpression translate(@NotNull JetUnaryExpression unaryExpression,
@NotNull TranslationContext context) {
@@ -111,7 +114,16 @@ public final class CallTranslator extends AbstractTranslator {
}
@NotNull
private JsNameRef calleeReference() {
private JsExpression calleeReference() {
//TODO: refactor
if (descriptor instanceof VariableAsFunctionDescriptor) {
VariableDescriptor variableDescriptor = ((VariableAsFunctionDescriptor) descriptor).getVariableDescriptor();
if (variableDescriptor instanceof PropertyDescriptor) {
PropertyGetterDescriptor getter = ((PropertyDescriptor) variableDescriptor).getGetter();
assert getter != null;
return (new CallTranslator(null, new ArrayList<JsExpression>(), getter, context())).translate();
}
}
if (context().isDeclared(descriptor)) {
return qualifiedMethodReference();
}
@@ -16,7 +16,8 @@ import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
import org.jetbrains.k2js.translate.context.TranslationContext;
import org.jetbrains.k2js.translate.general.Translation;
import org.jetbrains.k2js.translate.utils.BindingUtils;
import org.jetbrains.k2js.translate.utils.PsiUtils;
import static org.jetbrains.k2js.translate.utils.PsiUtils.getSelectorAsSimpleName;
/**
* @author Talanov Pavel
@@ -67,7 +68,7 @@ public final class PropertyAccessTranslator extends AccessTranslator {
public static boolean canBePropertyGetterCall(@NotNull JetQualifiedExpression expression,
@NotNull TranslationContext context) {
JetSimpleNameExpression selector = PsiUtils.getSelectorAsSimpleName(expression);
JetSimpleNameExpression selector = getSelectorAsSimpleName(expression);
if (selector == null) {
return false;
}
@@ -95,9 +96,6 @@ public final class PropertyAccessTranslator extends AccessTranslator {
return canBePropertyGetterCall(expression, context);
}
@NotNull
private final JetSimpleNameExpression expression;
@Nullable
private final JetExpression qualifier;
@NotNull
@@ -106,30 +104,28 @@ public final class PropertyAccessTranslator extends AccessTranslator {
private PropertyAccessTranslator(@NotNull JetSimpleNameExpression simpleName,
@NotNull TranslationContext context) {
super(context);
this.expression = simpleName;
this.qualifier = null;
this.propertyDescriptor = getNotNullPropertyDescriptor();
this.propertyDescriptor = getPropertyDescriptor(simpleName);
}
private PropertyAccessTranslator(@NotNull JetQualifiedExpression qualifiedExpression,
@NotNull TranslationContext context) {
super(context);
this.expression = getNotNullSelector(qualifiedExpression);
this.qualifier = qualifiedExpression.getReceiverExpression();
this.propertyDescriptor = getNotNullPropertyDescriptor();
this.propertyDescriptor = getPropertyDescriptor(getNotNullSelector(qualifiedExpression));
}
@Override
@NotNull
public JsExpression translateAsGet() {
JsName getterName = getNotNullGetterName();
JsName getterName = getGetterName();
return qualifiedAccessorInvocation(getterName);
}
@Override
@NotNull
public JsExpression translateAsSet(@NotNull JsExpression toSetTo) {
JsName setterName = getNotNullSetterName();
JsName setterName = getSetterName();
JsInvocation setterCall = qualifiedAccessorInvocation(setterName);
setterCall.getArguments().add(toSetTo);
return setterCall;
@@ -155,77 +151,42 @@ public final class PropertyAccessTranslator extends AccessTranslator {
@NotNull
private static JetSimpleNameExpression getNotNullSelector(@NotNull JetQualifiedExpression qualifiedExpression) {
JetSimpleNameExpression selectorExpression = PsiUtils.getSelectorAsSimpleName(qualifiedExpression);
JetSimpleNameExpression selectorExpression = getSelectorAsSimpleName(qualifiedExpression);
assert selectorExpression != null : MESSAGE;
return selectorExpression;
}
@NotNull
private JsName getNotNullGetterName() {
JsName getterName = getNullableGetterName();
assert getterName != null : MESSAGE;
return getterName;
}
@Nullable
private JsName getNullableGetterName() {
private JsName getGetterName() {
PropertyGetterDescriptor getter = getGetterDescriptor();
if (getter == null) return null;
return context().getNameForDescriptor(getter);
}
@Nullable
@NotNull
private PropertyGetterDescriptor getGetterDescriptor() {
PropertyDescriptor property = getNullablePropertyDescriptor();
if (property == null) {
return null;
}
PropertyGetterDescriptor getter = property.getGetter();
if (getter == null) {
return null;
}
PropertyGetterDescriptor getter = propertyDescriptor.getGetter();
assert getter != null;
return getter;
}
@NotNull
private JsName getNotNullSetterName() {
JsName setterName = getNullableSetterName();
assert setterName != null : MESSAGE;
return setterName;
}
@Nullable
private JsName getNullableSetterName() {
private JsName getSetterName() {
PropertySetterDescriptor setter = getSetterDescriptor();
if (setter == null) return null;
return context().getNameForDescriptor(setter);
}
@Nullable
@NotNull
private PropertySetterDescriptor getSetterDescriptor() {
PropertyDescriptor property = getNullablePropertyDescriptor();
if (property == null) {
return null;
}
PropertySetterDescriptor setter = property.getSetter();
if (setter == null) {
return null;
}
PropertySetterDescriptor setter = propertyDescriptor.getSetter();
assert setter != null;
return setter;
}
@Nullable
private PropertyDescriptor getNullablePropertyDescriptor() {
return BindingUtils.getPropertyDescriptorForSimpleName(context().bindingContext(), expression);
}
@NotNull
private PropertyDescriptor getNotNullPropertyDescriptor() {
PropertyDescriptor propertyDescriptor = getNullablePropertyDescriptor();
private PropertyDescriptor getPropertyDescriptor(@NotNull JetSimpleNameExpression expression) {
PropertyDescriptor propertyDescriptor =
BindingUtils.getPropertyDescriptorForSimpleName(context().bindingContext(), expression);
assert propertyDescriptor != null;
return propertyDescriptor;
}
@@ -54,5 +54,10 @@ public class FunctionTest extends AbstractExpressionTest {
testFooBoxIsOk("closureWithParameterAndBoxing.jet");
}
@Test
public void enclosingThis() throws Exception {
testFunctionOutput("enclosingThis.jet", "Anonymous", "box", "OK");
}
}
@@ -0,0 +1,12 @@
class Point(val x:Int, val y:Int) {
fun mul() : fun (scalar:Int):Point {
return { (scalar:Int):Point => Point(x * scalar, y * scalar) }
}
}
val m = Point(2, 3).mul() : fun (scalar:Int):Point
fun box() : String {
val answer = m(5)
return if (answer.x == 10 && answer.y == 15) "OK" else "FAIL"
}