Refactoring property access translation code.
This commit is contained in:
Generated
+403
-310
@@ -8,15 +8,19 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
|
<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/BinaryOperationTranslator.java" />
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/overloadedCallOnProperty.kt" />
|
||||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/UnaryOperationTranslator.java" />
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/postfixOnProperty.kt" />
|
||||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/kotlinLib/cases/commaExpression.js" />
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/prefixIncReturnsCorrectValue.kt" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.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/BindingUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BindingUtils.java" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" afterPath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BinaryOperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BinaryOperationTranslator.java" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ReferenceTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ReferenceTranslator.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationUtils.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/UnaryOperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/UnaryOperationTranslator.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java" />
|
||||||
</list>
|
</list>
|
||||||
<ignored path="k2js.iws" />
|
<ignored path="k2js.iws" />
|
||||||
<ignored path=".idea/workspace.xml" />
|
<ignored path=".idea/workspace.xml" />
|
||||||
@@ -47,21 +51,6 @@
|
|||||||
<disable_hints />
|
<disable_hints />
|
||||||
</component>
|
</component>
|
||||||
<component name="DebuggerManager">
|
<component name="DebuggerManager">
|
||||||
<line_breakpoints>
|
|
||||||
<breakpoint url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/AbstractInitializerVisitor.java" line="39" class="org.jetbrains.k2js.translate.AbstractInitializerVisitor" 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>
|
|
||||||
</line_breakpoints>
|
|
||||||
<breakpoint_any>
|
<breakpoint_any>
|
||||||
<breakpoint>
|
<breakpoint>
|
||||||
<option name="NOTIFY_CAUGHT" value="true" />
|
<option name="NOTIFY_CAUGHT" value="true" />
|
||||||
@@ -101,94 +90,96 @@
|
|||||||
<favorites_list name="k2js" />
|
<favorites_list name="k2js" />
|
||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<splitter split-orientation="horizontal" split-proportion="0.42956766">
|
<splitter split-orientation="horizontal" split-proportion="0.59483963">
|
||||||
<split-first>
|
<split-first>
|
||||||
<leaf>
|
<leaf>
|
||||||
<file leaf-file-name="OperatorOverloadingTest.java" pinned="false" current="false" current-in-tab="true">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="22" column="16" selection-start="438" selection-end="438" vertical-scroll-proportion="0.6130653">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="OperationTranslator.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="43" column="46" selection-start="1632" selection-end="1632" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="BinaryOperationTranslator.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BinaryOperationTranslator.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="22" column="41" selection-start="833" selection-end="833" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="UnaryOperationTranslator.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="UnaryOperationTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/UnaryOperationTranslator.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/UnaryOperationTranslator.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="49" column="0" selection-start="1924" selection-end="1924" vertical-scroll-proportion="0.0">
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||||
|
<folding>
|
||||||
|
<element signature="imports" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="PropertyAccessTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="103" column="42" selection-start="4424" selection-end="4424" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="TranslationUtils.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$/translator/src/org/jetbrains/k2js/translate/TranslationUtils.java">
|
<entry file="file://$PROJECT_DIR$/js/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="41" column="1" selection-start="1625" selection-end="1625" vertical-scroll-proportion="0.0">
|
<state line="307" column="15" selection-start="10810" selection-end="10810" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="JsVars.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="overloadedCallOnProperty.kt" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsVars.java">
|
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/overloadedCallOnProperty.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="20" column="22" selection-start="630" selection-end="630" vertical-scroll-proportion="0.0">
|
<state line="16" column="40" selection-start="0" selection-end="159" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="BindingUtils.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="overloadedCallOnProperty.js" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BindingUtils.java">
|
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/out/overloadedCallOnProperty.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="178" column="21" selection-start="8380" selection-end="8380" vertical-scroll-proportion="0.0">
|
<state line="26" column="79" selection-start="0" selection-end="621" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="BindingContext.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="postfixOnProperty.kt" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java">
|
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/postfixOnProperty.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="45" column="58" selection-start="2746" selection-end="2746" vertical-scroll-proportion="0.0">
|
<state line="16" column="34" selection-start="204" selection-end="204" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="BasicExpressionTypingVisitor.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="postfixIncOverload.kt" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java">
|
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/postfixIncOverload.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="582" column="69" selection-start="31363" selection-end="31376" vertical-scroll-proportion="0.0">
|
<state line="0" column="0" selection-start="0" selection-end="162" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="ExpressionTypingVisitorForStatements.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="prefixDecOverload.kt" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java">
|
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/prefixDecOverload.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="139" column="110" selection-start="7255" selection-end="7255" vertical-scroll-proportion="0.0">
|
<state line="15" column="78" selection-start="0" selection-end="162" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="OperatorOverloadingTest.java" pinned="false" current="true" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="37" column="83" selection-start="857" selection-end="857" vertical-scroll-proportion="0.589372">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="AbstractInitializerVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/AbstractInitializerVisitor.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="39" column="0" selection-start="1376" selection-end="1376" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -198,64 +189,19 @@
|
|||||||
</split-first>
|
</split-first>
|
||||||
<split-second>
|
<split-second>
|
||||||
<leaf>
|
<leaf>
|
||||||
<file leaf-file-name="JsNode.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="commaExpression.js" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsNode.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="14" column="22" selection-start="638" selection-end="638" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="JsValueLiteral.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsValueLiteral.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="9" column="22" selection-start="340" selection-end="340" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="JsEmpty.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsEmpty.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="9" column="13" selection-start="336" selection-end="336" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="JsDoWhile.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsDoWhile.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="9" column="13" selection-start="336" selection-end="336" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="JsCatchScope.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsCatchScope.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="13" column="13" selection-start="465" selection-end="465" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="JsBinaryOperator.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsBinaryOperator.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="9" column="12" selection-start="348" selection-end="348" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="commaExpression.js" pinned="false" current="true" current-in-tab="true">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlinLib/cases/commaExpression.js">
|
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlinLib/cases/commaExpression.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="1" column="28" selection-start="34" selection-end="34" vertical-scroll-proportion="0.026356589">
|
<state line="1" column="5" selection-start="11" selection-end="11" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="Pair.class" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="jar://C:/Program Files (x86)/JetBrains/IntelliJ IDEA Community Edition 110.283/lib/util.jar!/com/intellij/openapi/util/Pair.class">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="5" column="13" selection-start="163" selection-end="163" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -273,7 +219,52 @@
|
|||||||
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="330" column="71" selection-start="14725" selection-end="14725" vertical-scroll-proportion="-18.423077">
|
<state line="267" column="12" selection-start="11940" selection-end="11940" vertical-scroll-proportion="-9.884615">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="BasicClassTest.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/BasicClassTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="38" column="16" selection-start="933" selection-end="933" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="BinaryOperationTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BinaryOperationTranslator.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="44" column="27" selection-start="1506" selection-end="1506" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="FunctionTest.java" pinned="false" current="false" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="37" column="16" selection-start="833" selection-end="833" vertical-scroll-proportion="0.8342059">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<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/ReferenceTranslator.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="50" column="20" selection-start="1805" selection-end="1805" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="WhileTest.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/WhileTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="21" column="16" selection-start="405" selection-end="405" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -282,7 +273,7 @@
|
|||||||
<file leaf-file-name="Translation.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="Translation.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="60" column="4" selection-start="2241" selection-end="2241" vertical-scroll-proportion="0.0">
|
<state line="18" column="19" selection-start="723" selection-end="723" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -309,22 +300,22 @@
|
|||||||
<component name="IdeDocumentHistory">
|
<component name="IdeDocumentHistory">
|
||||||
<option name="changedFiles">
|
<option name="changedFiles">
|
||||||
<list>
|
<list>
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PatternTranslator.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationContext.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/postfixInc.kt" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/testFiles/operatorOverloading/out/postfixInc.js" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/postfixIncOverload.kt" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/prefixDecOverload.kt" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BindingUtils.java" />
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BindingUtils.java" />
|
||||||
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java" />
|
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java" />
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BinaryOperationTranslator.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java" />
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java" />
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/UnaryOperationTranslator.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationUtils.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/testFiles/kotlinLib/cases/commaExpression.js" />
|
<option value="$PROJECT_DIR$/translator/testFiles/kotlinLib/cases/commaExpression.js" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationUtils.java" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/prefixIncReturnsCorrectValue.kt" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/overloadedCallOnProperty.kt" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/postfixOnProperty.kt" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java" />
|
||||||
|
<option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ReferenceTranslator.java" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BinaryOperationTranslator.java" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/UnaryOperationTranslator.java" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -399,6 +390,50 @@
|
|||||||
<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="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="operatorOverloading" />
|
||||||
|
<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="operatorOverloading" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="cases" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="k2js" />
|
<option name="myItemId" value="k2js" />
|
||||||
@@ -439,6 +474,64 @@
|
|||||||
<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="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="inheritance" />
|
||||||
|
<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="inheritance" />
|
||||||
|
<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>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="k2js" />
|
<option name="myItemId" value="k2js" />
|
||||||
@@ -626,113 +719,6 @@
|
|||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="JUnit.All in translator">
|
<component name="RunManager" selected="JUnit.All in translator">
|
||||||
<configuration default="false" name="PropertyAccessorTest.accessToInstanceProperty" type="JUnit" factoryName="JUnit" temporary="true">
|
|
||||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" />
|
|
||||||
<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.PropertyAccessorTest" />
|
|
||||||
<option name="METHOD_NAME" value="accessToInstanceProperty" />
|
|
||||||
<option name="TEST_OBJECT" value="method" />
|
|
||||||
<option name="VM_PARAMETERS" value="-ea" />
|
|
||||||
<option name="PARAMETERS" value="" />
|
|
||||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/translator" />
|
|
||||||
<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="49383" />
|
|
||||||
<option name="TRANSPORT" value="0" />
|
|
||||||
<option name="LOCAL" value="true" />
|
|
||||||
</RunnerSettings>
|
|
||||||
<ConfigurationWrapper RunnerId="Debug" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="false" name="All in translator" type="JUnit" factoryName="JUnit" temporary="true">
|
|
||||||
<extension name="coverage" enabled="false" merge="false" runner="idea">
|
|
||||||
<pattern>
|
|
||||||
<option name="PATTERN" value="org.jetbrains.k2js.test.*" />
|
|
||||||
<option name="ENABLED" value="false" />
|
|
||||||
</pattern>
|
|
||||||
<pattern>
|
|
||||||
<option name="PATTERN" value="org.jetbrains.k2js.declarations.*" />
|
|
||||||
<option name="ENABLED" value="true" />
|
|
||||||
</pattern>
|
|
||||||
<pattern>
|
|
||||||
<option name="PATTERN" value="org.jetbrains.k2js.generate.*" />
|
|
||||||
<option name="ENABLED" value="true" />
|
|
||||||
</pattern>
|
|
||||||
<pattern>
|
|
||||||
<option name="PATTERN" value="org.jetbrains.k2js.translate.*" />
|
|
||||||
<option name="ENABLED" value="true" />
|
|
||||||
</pattern>
|
|
||||||
<pattern>
|
|
||||||
<option name="PATTERN" value="org.jetbrains.k2js.utils.*" />
|
|
||||||
<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="" />
|
|
||||||
<option name="MAIN_CLASS_NAME" value="" />
|
|
||||||
<option name="METHOD_NAME" value="" />
|
|
||||||
<option name="TEST_OBJECT" value="package" />
|
|
||||||
<option name="VM_PARAMETERS" value="-ea" />
|
|
||||||
<option name="PARAMETERS" value="" />
|
|
||||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/translator" />
|
|
||||||
<option name="ENV_VARIABLES" />
|
|
||||||
<option name="PASS_PARENT_ENVS" value="true" />
|
|
||||||
<option name="TEST_SEARCH_SCOPE">
|
|
||||||
<value defaultName="moduleWithDependencies" />
|
|
||||||
</option>
|
|
||||||
<envs />
|
|
||||||
<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>
|
|
||||||
<configuration default="false" name="KotlinLibTest" 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.KotlinLibTest" />
|
|
||||||
<option name="METHOD_NAME" />
|
|
||||||
<option name="TEST_OBJECT" value="class" />
|
|
||||||
<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="Run" />
|
|
||||||
<ConfigurationWrapper RunnerId="Run" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="false" name="PropertyAccessorTest" type="JUnit" factoryName="JUnit" temporary="true">
|
<configuration default="false" name="PropertyAccessorTest" type="JUnit" factoryName="JUnit" temporary="true">
|
||||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
|
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
|
||||||
<pattern>
|
<pattern>
|
||||||
@@ -809,6 +795,111 @@
|
|||||||
<ConfigurationWrapper RunnerId="Debug" />
|
<ConfigurationWrapper RunnerId="Debug" />
|
||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
|
<configuration default="false" name="OperatorOverloadingTest.prefixIncReturnsCorrectValue" 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>
|
||||||
|
</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.OperatorOverloadingTest" />
|
||||||
|
<option name="METHOD_NAME" value="prefixIncReturnsCorrectValue" />
|
||||||
|
<option name="TEST_OBJECT" value="method" />
|
||||||
|
<option name="VM_PARAMETERS" value="-ea" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/translator" />
|
||||||
|
<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="false" name="FunctionTest.loopClosure" type="JUnit" factoryName="JUnit" temporary="true">
|
||||||
|
<extension name="coverage" enabled="false" merge="false" runner="idea">
|
||||||
|
<pattern>
|
||||||
|
<option name="PATTERN" value="org.jetbrains.k2js.test.*" />
|
||||||
|
<option name="ENABLED" value="false" />
|
||||||
|
</pattern>
|
||||||
|
<pattern>
|
||||||
|
<option name="PATTERN" value="org.jetbrains.k2js.declarations.*" />
|
||||||
|
<option name="ENABLED" value="true" />
|
||||||
|
</pattern>
|
||||||
|
<pattern>
|
||||||
|
<option name="PATTERN" value="org.jetbrains.k2js.generate.*" />
|
||||||
|
<option name="ENABLED" value="true" />
|
||||||
|
</pattern>
|
||||||
|
<pattern>
|
||||||
|
<option name="PATTERN" value="org.jetbrains.k2js.translate.*" />
|
||||||
|
<option name="ENABLED" value="true" />
|
||||||
|
</pattern>
|
||||||
|
<pattern>
|
||||||
|
<option name="PATTERN" value="org.jetbrains.k2js.utils.*" />
|
||||||
|
<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.FunctionTest" />
|
||||||
|
<option name="METHOD_NAME" value="loopClosure" />
|
||||||
|
<option name="TEST_OBJECT" value="method" />
|
||||||
|
<option name="VM_PARAMETERS" value="-ea" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/translator" />
|
||||||
|
<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>
|
||||||
|
<ConfigurationWrapper RunnerId="Debug" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="false" name="All in translator" type="JUnit" factoryName="JUnit" temporary="true">
|
||||||
|
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
||||||
|
<module name="translator" />
|
||||||
|
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||||
|
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||||
|
<option name="PACKAGE_NAME" value="" />
|
||||||
|
<option name="MAIN_CLASS_NAME" value="" />
|
||||||
|
<option name="METHOD_NAME" value="" />
|
||||||
|
<option name="TEST_OBJECT" value="package" />
|
||||||
|
<option name="VM_PARAMETERS" value="-ea" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/translator" />
|
||||||
|
<option name="ENV_VARIABLES" />
|
||||||
|
<option name="PASS_PARENT_ENVS" value="true" />
|
||||||
|
<option name="TEST_SEARCH_SCOPE">
|
||||||
|
<value defaultName="moduleWithDependencies" />
|
||||||
|
</option>
|
||||||
|
<envs />
|
||||||
|
<patterns />
|
||||||
|
<RunnerSettings RunnerId="Run" />
|
||||||
|
<ConfigurationWrapper RunnerId="Run" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
<configuration default="true" type="Remote" factoryName="Remote">
|
<configuration default="true" type="Remote" factoryName="Remote">
|
||||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||||
<option name="SERVER_MODE" value="false" />
|
<option name="SERVER_MODE" value="false" />
|
||||||
@@ -905,11 +996,11 @@
|
|||||||
</method>
|
</method>
|
||||||
</configuration>
|
</configuration>
|
||||||
<list size="5">
|
<list size="5">
|
||||||
<item index="0" class="java.lang.String" itemvalue="JUnit.PropertyAccessorTest.accessToInstanceProperty" />
|
<item index="0" class="java.lang.String" itemvalue="JUnit.PropertyAccessorTest" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="JUnit.All in translator" />
|
<item index="1" class="java.lang.String" itemvalue="JUnit.OperatorOverloadingTest.postfixInc" />
|
||||||
<item index="2" class="java.lang.String" itemvalue="JUnit.KotlinLibTest" />
|
<item index="2" class="java.lang.String" itemvalue="JUnit.OperatorOverloadingTest.prefixIncReturnsCorrectValue" />
|
||||||
<item index="3" class="java.lang.String" itemvalue="JUnit.PropertyAccessorTest" />
|
<item index="3" class="java.lang.String" itemvalue="JUnit.FunctionTest.loopClosure" />
|
||||||
<item index="4" class="java.lang.String" itemvalue="JUnit.OperatorOverloadingTest.postfixInc" />
|
<item index="4" class="java.lang.String" itemvalue="JUnit.All in translator" />
|
||||||
</list>
|
</list>
|
||||||
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
||||||
<Host>localhost</Host>
|
<Host>localhost</Host>
|
||||||
@@ -945,7 +1036,7 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
<frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
|
<frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
|
||||||
<editor active="false" />
|
<editor active="true" />
|
||||||
<layout>
|
<layout>
|
||||||
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32853025" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32853025" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||||
@@ -963,7 +1054,7 @@
|
|||||||
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" 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="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.23356494" sideWeight="0.6666667" 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.23356494" sideWeight="0.6666667" order="0" 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.33333334" 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.33333334" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
<window_info id="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" />
|
||||||
<window_info id="Metrics" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3275862" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
<window_info id="Metrics" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3275862" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
||||||
@@ -1007,7 +1098,7 @@
|
|||||||
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
|
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
|
||||||
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
|
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
|
||||||
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="Operator overloading: simple cases with ++ and --." />
|
<option name="LAST_COMMIT_MESSAGE" value="Refactoring operation translator code." />
|
||||||
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
|
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
|
||||||
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
|
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
|
||||||
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
|
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
|
||||||
@@ -1020,7 +1111,6 @@
|
|||||||
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
|
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
|
||||||
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
|
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
|
||||||
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
|
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
|
||||||
<MESSAGE value="Added support for simple case of safe qualified access." />
|
|
||||||
<MESSAGE value="Added support for returning value from safe qualified expression." />
|
<MESSAGE value="Added support for returning value from safe qualified expression." />
|
||||||
<MESSAGE value="Added support for simple case of when expression." />
|
<MESSAGE value="Added support for simple case of when expression." />
|
||||||
<MESSAGE value="Supported another case of when expression." />
|
<MESSAGE value="Supported another case of when expression." />
|
||||||
@@ -1045,6 +1135,7 @@
|
|||||||
<MESSAGE value="Fixed design flaw which prevented base class from being inherited if it was defined after the derived class." />
|
<MESSAGE value="Fixed design flaw which prevented base class from being inherited if it was defined after the derived class." />
|
||||||
<MESSAGE value="Added test. Refactored test code: got rid of obsolete IncludeLibraryTest class." />
|
<MESSAGE value="Added test. Refactored test code: got rid of obsolete IncludeLibraryTest class." />
|
||||||
<MESSAGE value="Operator overloading: simple cases with ++ and --." />
|
<MESSAGE value="Operator overloading: simple cases with ++ and --." />
|
||||||
|
<MESSAGE value="Refactoring operation translator code." />
|
||||||
</component>
|
</component>
|
||||||
<component name="XDebuggerManager">
|
<component name="XDebuggerManager">
|
||||||
<breakpoint-manager />
|
<breakpoint-manager />
|
||||||
@@ -1054,6 +1145,13 @@
|
|||||||
<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$/js/src/com/google/dart/compiler/util/AstUtil.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="307" column="15" selection-start="10810" selection-end="10810" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsValueLiteral.java">
|
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsValueLiteral.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="9" column="22" selection-start="340" selection-end="340" vertical-scroll-proportion="0.0">
|
<state line="9" column="22" selection-start="340" selection-end="340" vertical-scroll-proportion="0.0">
|
||||||
@@ -1068,6 +1166,20 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/WhileTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="21" column="16" selection-start="405" selection-end="405" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="18" column="19" selection-start="723" selection-end="723" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsDoWhile.java">
|
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsDoWhile.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="9" column="13" selection-start="336" selection-end="336" vertical-scroll-proportion="0.0">
|
<state line="9" column="13" selection-start="336" selection-end="336" vertical-scroll-proportion="0.0">
|
||||||
@@ -1075,6 +1187,27 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ReferenceTranslator.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="50" column="20" selection-start="1805" selection-end="1805" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="267" column="12" selection-start="11940" selection-end="11940" vertical-scroll-proportion="-9.884615">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/BasicClassTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="38" column="16" selection-start="933" selection-end="933" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsCatchScope.java">
|
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsCatchScope.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="13" column="13" selection-start="465" selection-end="465" vertical-scroll-proportion="0.0">
|
<state line="13" column="13" selection-start="465" selection-end="465" vertical-scroll-proportion="0.0">
|
||||||
@@ -1082,6 +1215,13 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BinaryOperationTranslator.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="44" column="27" selection-start="1506" selection-end="1506" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsBinaryOperator.java">
|
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsBinaryOperator.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="9" column="12" selection-start="348" selection-end="348" vertical-scroll-proportion="0.0">
|
<state line="9" column="12" selection-start="348" selection-end="348" vertical-scroll-proportion="0.0">
|
||||||
@@ -1089,79 +1229,32 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BinaryOperationTranslator.java">
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="22" column="41" selection-start="833" selection-end="833" vertical-scroll-proportion="0.0">
|
<state line="37" column="16" selection-start="833" selection-end="833" vertical-scroll-proportion="0.8342059">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Translation.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="60" column="4" selection-start="2241" selection-end="2241" vertical-scroll-proportion="0.0">
|
<state line="103" column="42" selection-start="4424" selection-end="4424" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/UnaryOperationTranslator.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/UnaryOperationTranslator.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="49" column="0" selection-start="1924" selection-end="1924" vertical-scroll-proportion="0.0">
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding>
|
||||||
</state>
|
<element signature="imports" expanded="true" />
|
||||||
</provider>
|
</folding>
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/postfixIncOverload.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="15" column="55" selection-start="162" selection-end="162" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/prefixDecOverload.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="13" column="6" selection-start="135" selection-end="135" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsVars.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="20" column="22" selection-start="630" selection-end="630" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationUtils.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="41" column="1" selection-start="1625" selection-end="1625" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java">
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="22" column="16" selection-start="438" selection-end="438" vertical-scroll-proportion="0.6130653">
|
<state line="37" column="83" selection-start="857" selection-end="857" vertical-scroll-proportion="0.589372">
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="330" column="71" selection-start="14725" selection-end="14725" vertical-scroll-proportion="-18.423077">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="110" column="16" selection-start="3936" selection-end="3936" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlinLib/cases/commaExpression.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="1" column="28" selection-start="34" selection-end="34" vertical-scroll-proportion="0.026356589">
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.google.dart.compiler.InternalCompilerException;
|
|||||||
import com.google.dart.compiler.backend.js.ast.*;
|
import com.google.dart.compiler.backend.js.ast.*;
|
||||||
import com.google.dart.compiler.common.SourceInfo;
|
import com.google.dart.compiler.common.SourceInfo;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -320,4 +321,17 @@ public class AstUtil {
|
|||||||
public static JsExpression equalsTrue(JsExpression expression, JsProgram program) {
|
public static JsExpression equalsTrue(JsExpression expression, JsProgram program) {
|
||||||
return equals(expression, program.getTrueLiteral());
|
return equals(expression, program.getTrueLiteral());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static JsBinaryOperation comma(JsExpression... expressions) {
|
||||||
|
return comma(Arrays.asList(expressions));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JsBinaryOperation comma(List<JsExpression> expressions) {
|
||||||
|
assert expressions.size() >= 2 : "Comma operator applicable to two or more expressions";
|
||||||
|
JsBinaryOperation result = new JsBinaryOperation(JsBinaryOperator.COMMA, expressions.get(0), expressions.get(1));
|
||||||
|
for (int i = 2; i < expressions.size(); ++i) {
|
||||||
|
result = new JsBinaryOperation(JsBinaryOperator.COMMA, result, expressions.get(i));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public final class BinaryOperationTranslator extends OperationTranslator {
|
|||||||
return translateAsBinaryOperation();
|
return translateAsBinaryOperation();
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: think about the ways to improve logic here
|
//TODO: method too long
|
||||||
@Nullable
|
@Nullable
|
||||||
public JsInvocation translateAsSetterCall() {
|
public JsInvocation translateAsSetterCall() {
|
||||||
JetToken jetOperationToken = getOperationToken();
|
JetToken jetOperationToken = getOperationToken();
|
||||||
@@ -50,11 +50,11 @@ public final class BinaryOperationTranslator extends OperationTranslator {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
JetExpression leftExpression = expression.getLeft();
|
JetExpression leftExpression = expression.getLeft();
|
||||||
JsInvocation setterCall = Translation.propertyAccessTranslator(translationContext()).
|
PropertyAccessTranslator propertyAccessTranslator = Translation.propertyAccessTranslator(translationContext());
|
||||||
translateAsPropertySetterCall(leftExpression);
|
if (!propertyAccessTranslator.canBePropertySetterCall(leftExpression)) {
|
||||||
if (setterCall == null) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
JsInvocation setterCall = propertyAccessTranslator.translateAsPropertySetterCall(leftExpression);
|
||||||
JsExpression right = translateRightExpression();
|
JsExpression right = translateRightExpression();
|
||||||
setterCall.setArguments(Arrays.asList(right));
|
setterCall.setArguments(Arrays.asList(right));
|
||||||
return setterCall;
|
return setterCall;
|
||||||
|
|||||||
@@ -19,6 +19,12 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsExpression translateAsExpression(@NotNull JetExpression expression,
|
||||||
|
@NotNull TranslationContext context) {
|
||||||
|
return AstUtil.convertToExpression(expression.accept(this, context));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitConstantExpression(@NotNull JetConstantExpression expression,
|
public JsNode visitConstantExpression(@NotNull JetConstantExpression expression,
|
||||||
@@ -157,7 +163,8 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private JsStatement translateElseAsStatement(JetIfExpression expression, TranslationContext context) {
|
private JsStatement translateElseAsStatement(@NotNull JetIfExpression expression,
|
||||||
|
@NotNull TranslationContext context) {
|
||||||
JetExpression jetElse = expression.getElse();
|
JetExpression jetElse = expression.getElse();
|
||||||
if (jetElse == null) {
|
if (jetElse == null) {
|
||||||
return null;
|
return null;
|
||||||
@@ -203,10 +210,6 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
return translateAsExpression(expression, context);
|
return translateAsExpression(expression, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private JsExpression translateAsExpression(JetExpression expression, TranslationContext context) {
|
|
||||||
return AstUtil.convertToExpression(expression.accept(this, context));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitWhileExpression(@NotNull JetWhileExpression expression, @NotNull TranslationContext context) {
|
public JsNode visitWhileExpression(@NotNull JetWhileExpression expression, @NotNull TranslationContext context) {
|
||||||
@@ -261,19 +264,13 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private JsExpression translateQualifiedExpression(@NotNull JetQualifiedExpression expression,
|
private JsExpression translateQualifiedExpression(@NotNull JetQualifiedExpression expression,
|
||||||
@NotNull TranslationContext context) {
|
@NotNull TranslationContext context) {
|
||||||
JsInvocation getterCall = translateAsGetterCall(expression, context);
|
PropertyAccessTranslator propertyAccessTranslator = Translation.propertyAccessTranslator(context);
|
||||||
if (getterCall != null) {
|
if (propertyAccessTranslator.canBePropertyGetterCall(expression)) {
|
||||||
return getterCall;
|
return propertyAccessTranslator.translateAsPropertyGetterCall(expression);
|
||||||
}
|
}
|
||||||
return translateAsQualifiedAccess(expression, context);
|
return translateAsQualifiedAccess(expression, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private JsInvocation translateAsGetterCall(@NotNull JetQualifiedExpression expression,
|
|
||||||
@NotNull TranslationContext context) {
|
|
||||||
return Translation.propertyAccessTranslator(context).resolveAsPropertyGet(expression);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private JsExpression translateAsQualifiedAccess(@NotNull JetQualifiedExpression expression,
|
private JsExpression translateAsQualifiedAccess(@NotNull JetQualifiedExpression expression,
|
||||||
@NotNull TranslationContext context) {
|
@NotNull TranslationContext context) {
|
||||||
@@ -386,5 +383,12 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
return Translation.functionTranslator(context).translateAsLiteral(expression.getFunctionLiteral());
|
return Translation.functionTranslator(context).translateAsLiteral(expression.getFunctionLiteral());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public JsNode visitThisExpression(@NotNull JetThisExpression expression,
|
||||||
|
@NotNull TranslationContext context) {
|
||||||
|
return new JsThisRef();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package org.jetbrains.k2js.translate;
|
package org.jetbrains.k2js.translate;
|
||||||
|
|
||||||
|
import com.google.dart.compiler.backend.js.ast.JsExpression;
|
||||||
|
import com.google.dart.compiler.backend.js.ast.JsName;
|
||||||
import com.google.dart.compiler.backend.js.ast.JsNameRef;
|
import com.google.dart.compiler.backend.js.ast.JsNameRef;
|
||||||
|
import com.google.dart.compiler.util.AstUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
@@ -43,4 +46,33 @@ public class OperationTranslator extends AbstractTranslator {
|
|||||||
return BindingUtils.getDescriptorForReferenceExpression
|
return BindingUtils.getDescriptorForReferenceExpression
|
||||||
(translationContext().bindingContext(), operationReference);
|
(translationContext().bindingContext(), operationReference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected final class TemporaryVariable {
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private final JsExpression assignmentExpression;
|
||||||
|
@NotNull
|
||||||
|
private final JsName variableName;
|
||||||
|
|
||||||
|
private TemporaryVariable(@NotNull JsExpression initExpression) {
|
||||||
|
this.variableName = translationContext().enclosingScope().declareTemporary();
|
||||||
|
this.assignmentExpression = AstUtil.newAssignment(variableName.makeRef(), initExpression);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public JsNameRef nameReference() {
|
||||||
|
return variableName.makeRef();
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public JsExpression assignmentExpression() {
|
||||||
|
return assignmentExpression;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public TemporaryVariable declareTemporary(@NotNull JsExpression initExpression) {
|
||||||
|
return new TemporaryVariable(initExpression);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ import org.jetbrains.jet.lang.resolve.calls.ResolvedCall;
|
|||||||
//TODO ask for code review. Class has messy code.
|
//TODO ask for code review. Class has messy code.
|
||||||
public final class PropertyAccessTranslator extends AbstractTranslator {
|
public final class PropertyAccessTranslator extends AbstractTranslator {
|
||||||
|
|
||||||
|
private static String MESSAGE = "Cannot be accessor call. Use canBeProperty*Call to ensure this method " +
|
||||||
|
"can be called safely.";
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static PropertyAccessTranslator newInstance(@NotNull TranslationContext context) {
|
public static PropertyAccessTranslator newInstance(@NotNull TranslationContext context) {
|
||||||
return new PropertyAccessTranslator(context);
|
return new PropertyAccessTranslator(context);
|
||||||
@@ -32,28 +35,88 @@ public final class PropertyAccessTranslator extends AbstractTranslator {
|
|||||||
super(context);
|
super(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public JsInvocation resolveAsPropertyGet(@NotNull JetQualifiedExpression expression) {
|
//TODO: ask if these methods can be more clear
|
||||||
JetExpression selectorExpression = expression.getSelectorExpression();
|
public boolean canBePropertyGetterCall(@NotNull JetExpression expression) {
|
||||||
assert selectorExpression != null : "Selector should not be null.";
|
if (expression instanceof JetQualifiedExpression) {
|
||||||
JsName getterName = getPropertyGetterName(selectorExpression);
|
JetSimpleNameExpression selector = getNullableSelector((JetQualifiedExpression) expression);
|
||||||
if (getterName == null) {
|
if (selector == null) {
|
||||||
return null;
|
return false;
|
||||||
|
}
|
||||||
|
return (getNullableGetterName(selector) != null);
|
||||||
}
|
}
|
||||||
|
if (expression instanceof JetSimpleNameExpression) {
|
||||||
|
return (getNullableGetterName((JetSimpleNameExpression) expression) != null);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canBePropertyAccess(@NotNull JetExpression expression) {
|
||||||
|
return canBePropertyGetterCall(expression);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canBePropertySetterCall(@NotNull JetExpression expression) {
|
||||||
|
if (expression instanceof JetQualifiedExpression) {
|
||||||
|
JetSimpleNameExpression selector = getNullableSelector((JetQualifiedExpression) expression);
|
||||||
|
if (selector == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return (getNullableSetterName(selector) != null);
|
||||||
|
}
|
||||||
|
if (expression instanceof JetSimpleNameExpression) {
|
||||||
|
return (getNullableSetterName((JetSimpleNameExpression) expression) != null);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public JsInvocation translateAsPropertyGetterCall(@NotNull JetExpression expression) {
|
||||||
|
if (expression instanceof JetQualifiedExpression) {
|
||||||
|
return resolveAsPropertyGet((JetQualifiedExpression) expression);
|
||||||
|
}
|
||||||
|
if (expression instanceof JetSimpleNameExpression) {
|
||||||
|
return resolveAsPropertyGet((JetSimpleNameExpression) expression);
|
||||||
|
}
|
||||||
|
throw new AssertionError(MESSAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsInvocation resolveAsPropertyGet(@NotNull JetQualifiedExpression expression) {
|
||||||
|
JsName getterName = getNotNullGetterName(getNotNullSelector(expression));
|
||||||
return translateReceiverAndReturnAccessorInvocation(expression, getterName);
|
return translateReceiverAndReturnAccessorInvocation(expression, getterName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@NotNull
|
||||||
JsInvocation resolveAsPropertyGet(@NotNull JetSimpleNameExpression expression) {
|
private JsInvocation resolveAsPropertyGet(@NotNull JetSimpleNameExpression expression) {
|
||||||
JsName getterName = getPropertyGetterName(expression);
|
JsName getterName = getNotNullGetterName(expression);
|
||||||
if (getterName == null) {
|
JsNameRef getterReference = TranslationUtils.getReference(translationContext(), expression, getterName);
|
||||||
return null;
|
|
||||||
}
|
|
||||||
JsNameRef getterReference =
|
|
||||||
TranslationUtils.getReference(translationContext(), expression, getterName);
|
|
||||||
return AstUtil.newInvocation(getterReference);
|
return AstUtil.newInvocation(getterReference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public JsInvocation translateAsPropertySetterCall(@NotNull JetExpression expression) {
|
||||||
|
if (expression instanceof JetDotQualifiedExpression) {
|
||||||
|
return resolveAsPropertySet((JetDotQualifiedExpression) expression);
|
||||||
|
}
|
||||||
|
if (expression instanceof JetSimpleNameExpression) {
|
||||||
|
return resolveAsPropertySet((JetSimpleNameExpression) expression);
|
||||||
|
}
|
||||||
|
throw new AssertionError(MESSAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsInvocation resolveAsPropertySet(@NotNull JetDotQualifiedExpression dotQualifiedExpression) {
|
||||||
|
JsName setterName = getNotNullSetterName(getNotNullSelector(dotQualifiedExpression));
|
||||||
|
return translateReceiverAndReturnAccessorInvocation(dotQualifiedExpression, setterName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsInvocation resolveAsPropertySet(@NotNull JetSimpleNameExpression expression) {
|
||||||
|
JsName setterName = getNotNullSetterName(expression);
|
||||||
|
JsNameRef setterReference = Translation.generateCorrectReference(translationContext(), expression, setterName);
|
||||||
|
return AstUtil.newInvocation(setterReference);
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private JsInvocation translateReceiverAndReturnAccessorInvocation
|
private JsInvocation translateReceiverAndReturnAccessorInvocation
|
||||||
(@NotNull JetQualifiedExpression qualifiedExpression, @NotNull JsName accessorName) {
|
(@NotNull JetQualifiedExpression qualifiedExpression, @NotNull JsName accessorName) {
|
||||||
@@ -65,39 +128,32 @@ public final class PropertyAccessTranslator extends AbstractTranslator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public JsInvocation translateAsPropertySetterCall(@NotNull JetExpression expression) {
|
private JetSimpleNameExpression getNullableSelector(@NotNull JetQualifiedExpression expression) {
|
||||||
if (expression instanceof JetDotQualifiedExpression) {
|
JetExpression selectorExpression = expression.getSelectorExpression();
|
||||||
return resolveAsPropertySet((JetDotQualifiedExpression) expression);
|
|
||||||
}
|
|
||||||
if (expression instanceof JetSimpleNameExpression) {
|
|
||||||
return resolveAsPropertySet((JetSimpleNameExpression) expression);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private JsInvocation resolveAsPropertySet(@NotNull JetDotQualifiedExpression dotQualifiedExpression) {
|
|
||||||
JetExpression selectorExpression = dotQualifiedExpression.getSelectorExpression();
|
|
||||||
assert selectorExpression != null : "Selector should not be null.";
|
assert selectorExpression != null : "Selector should not be null.";
|
||||||
JsName setterName = getPropertySetterName(selectorExpression);
|
if (!(selectorExpression instanceof JetSimpleNameExpression)) {
|
||||||
if (setterName == null) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return translateReceiverAndReturnAccessorInvocation(dotQualifiedExpression, setterName);
|
return (JetSimpleNameExpression) selectorExpression;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JetSimpleNameExpression getNotNullSelector(@NotNull JetQualifiedExpression expression) {
|
||||||
|
JetSimpleNameExpression selectorExpression = getNullableSelector(expression);
|
||||||
|
assert selectorExpression != null : MESSAGE;
|
||||||
|
return selectorExpression;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsName getNotNullGetterName(@NotNull JetSimpleNameExpression selectorExpression) {
|
||||||
|
JsName getterName = getNullableGetterName(selectorExpression);
|
||||||
|
assert getterName != null : MESSAGE;
|
||||||
|
return getterName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
JsInvocation resolveAsPropertySet(@NotNull JetSimpleNameExpression expression) {
|
private JsName getNullableGetterName(@NotNull JetSimpleNameExpression expression) {
|
||||||
JsName setterName = getPropertySetterName(expression);
|
|
||||||
if (setterName == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
JsNameRef setterReference = Translation.generateCorrectReference(translationContext(), expression, setterName);
|
|
||||||
return AstUtil.newInvocation(setterReference);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public JsName getPropertyGetterName(@NotNull JetExpression expression) {
|
|
||||||
PropertyDescriptor property = getPropertyDescriptor(expression);
|
PropertyDescriptor property = getPropertyDescriptor(expression);
|
||||||
if (property == null) {
|
if (property == null) {
|
||||||
return null;
|
return null;
|
||||||
@@ -109,8 +165,16 @@ public final class PropertyAccessTranslator extends AbstractTranslator {
|
|||||||
return translationContext().getNameForDescriptor(getter);
|
return translationContext().getNameForDescriptor(getter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsName getNotNullSetterName(@NotNull JetSimpleNameExpression selectorExpression) {
|
||||||
|
JsName setterName = getNullableSetterName(selectorExpression);
|
||||||
|
assert setterName != null : MESSAGE;
|
||||||
|
return setterName;
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public JsName getPropertySetterName(@NotNull JetExpression expression) {
|
private JsName getNullableSetterName(@NotNull JetSimpleNameExpression expression) {
|
||||||
PropertyDescriptor property = getPropertyDescriptor(expression);
|
PropertyDescriptor property = getPropertyDescriptor(expression);
|
||||||
if (property == null) {
|
if (property == null) {
|
||||||
return null;
|
return null;
|
||||||
@@ -123,7 +187,7 @@ public final class PropertyAccessTranslator extends AbstractTranslator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private PropertyDescriptor getPropertyDescriptor(@NotNull JetExpression expression) {
|
private PropertyDescriptor getPropertyDescriptor(@NotNull JetSimpleNameExpression expression) {
|
||||||
ResolvedCall<?> resolvedCall =
|
ResolvedCall<?> resolvedCall =
|
||||||
BindingUtils.getResolvedCall(translationContext().bindingContext(), expression);
|
BindingUtils.getResolvedCall(translationContext().bindingContext(), expression);
|
||||||
if (resolvedCall != null) {
|
if (resolvedCall != null) {
|
||||||
|
|||||||
@@ -43,7 +43,12 @@ public class ReferenceTranslator extends AbstractTranslator {
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private JsInvocation resolveAsPropertyAccess(@NotNull JetSimpleNameExpression expression) {
|
private JsInvocation resolveAsPropertyAccess(@NotNull JetSimpleNameExpression expression) {
|
||||||
return Translation.propertyAccessTranslator(translationContext()).resolveAsPropertyGet(expression);
|
|
||||||
|
PropertyAccessTranslator propertyAccessTranslator = Translation.propertyAccessTranslator(translationContext());
|
||||||
|
if (propertyAccessTranslator.canBePropertyGetterCall(expression)) {
|
||||||
|
return propertyAccessTranslator.translateAsPropertyGetterCall(expression);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
@@ -38,5 +38,4 @@ public final class TranslationUtils {
|
|||||||
@NotNull String name) {
|
@NotNull String name) {
|
||||||
return context.enclosingScope().findExistingName(name);
|
return context.enclosingScope().findExistingName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,12 @@ import com.google.dart.compiler.backend.js.ast.*;
|
|||||||
import com.google.dart.compiler.util.AstUtil;
|
import com.google.dart.compiler.util.AstUtil;
|
||||||
import com.intellij.psi.tree.IElementType;
|
import com.intellij.psi.tree.IElementType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lexer.JetToken;
|
import org.jetbrains.jet.lexer.JetToken;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
@@ -27,34 +30,120 @@ public final class UnaryOperationTranslator extends OperationTranslator {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private final JetUnaryExpression expression;
|
private final JetUnaryExpression expression;
|
||||||
|
@NotNull
|
||||||
|
private final JsExpression baseExpression;
|
||||||
private final boolean isPrefix;
|
private final boolean isPrefix;
|
||||||
private final boolean isVariableReassignment;
|
private final boolean isVariableReassignment;
|
||||||
|
private final boolean isStatement;
|
||||||
|
private final boolean isPropertyAccess;
|
||||||
|
@Nullable
|
||||||
|
private final JsNameRef operationReference;
|
||||||
|
|
||||||
private UnaryOperationTranslator(@NotNull TranslationContext context, @NotNull JetUnaryExpression expression,
|
private UnaryOperationTranslator(@NotNull TranslationContext context, @NotNull JetUnaryExpression expression,
|
||||||
boolean isPrefix) {
|
boolean isPrefix) {
|
||||||
super(context);
|
super(context);
|
||||||
this.expression = expression;
|
this.expression = expression;
|
||||||
this.isPrefix = isPrefix;
|
this.isPrefix = isPrefix;
|
||||||
this.isVariableReassignment = BindingUtils.isVariableReassignment
|
this.isVariableReassignment = isVariableReassignment(expression);
|
||||||
|
this.isStatement = BindingUtils.isStatement(translationContext().bindingContext(), expression);
|
||||||
|
this.baseExpression = translateBaseExpression();
|
||||||
|
this.isPropertyAccess = isPropertyAccess();
|
||||||
|
this.operationReference = getOverloadedOperationReference(expression);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isPropertyAccess() {
|
||||||
|
return Translation.propertyAccessTranslator(translationContext()).canBePropertyAccess(getBaseExpression());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isVariableReassignment(JetUnaryExpression expression) {
|
||||||
|
return BindingUtils.isVariableReassignment
|
||||||
(translationContext().bindingContext(), expression);
|
(translationContext().bindingContext(), expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
JsExpression translate() {
|
JsExpression translate() {
|
||||||
JsExpression baseExpression = translateBaseExpression();
|
|
||||||
JsNameRef operationReference = getOverloadedOperationReference(expression);
|
|
||||||
if (operationReference != null) {
|
if (operationReference != null) {
|
||||||
if (isPrefix && !isVariableReassignment) {
|
return translateOverload();
|
||||||
return overloadedMethodInvocation(baseExpression, operationReference);
|
|
||||||
} else if (isPrefix) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return jsUnaryExpression(baseExpression);
|
return jsUnaryExpression();
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private JsExpression jsUnaryExpression(@NotNull JsExpression baseExpression) {
|
private JsExpression translateOverload() {
|
||||||
|
if (isStatement || isPrefix) {
|
||||||
|
return asPrefix();
|
||||||
|
}
|
||||||
|
if (isVariableReassignment) {
|
||||||
|
return asPostfixWithReassignment();
|
||||||
|
} else {
|
||||||
|
return asPostfixWithNoReassignment();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsExpression asPrefix() {
|
||||||
|
if (isVariableReassignment) {
|
||||||
|
return variableReassignment();
|
||||||
|
}
|
||||||
|
return overloadedMethodInvocation(baseExpression);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsExpression asPostfixWithReassignment() {
|
||||||
|
// code fragment: expr(a++)
|
||||||
|
// generate: expr( (t = a, a = a.inc(), t) )
|
||||||
|
TemporaryVariable t = declareTemporary(baseExpression);
|
||||||
|
JsExpression variableReassignment = variableReassignment();
|
||||||
|
return AstUtil.comma(t.assignmentExpression(), variableReassignment, t.nameReference());
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsExpression asPostfixWithNoReassignment() {
|
||||||
|
// code fragment: expr(a++)
|
||||||
|
// generate: expr( (t1 = a, t2 = t1, t2.inc(), t1) )
|
||||||
|
assert operationReference != null;
|
||||||
|
TemporaryVariable t1 = declareTemporary(baseExpression);
|
||||||
|
TemporaryVariable t2 = declareTemporary(t1.nameReference());
|
||||||
|
JsExpression methodCall = overloadedMethodInvocation(t2.nameReference());
|
||||||
|
JsExpression returnedValue = t1.nameReference();
|
||||||
|
return AstUtil.comma(t1.assignmentExpression(), t2.assignmentExpression(), methodCall, returnedValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//TODO: should modify this for properties
|
||||||
|
@NotNull
|
||||||
|
private JsExpression variableReassignment() {
|
||||||
|
if (isPropertyAccess) {
|
||||||
|
return propertyReassignment();
|
||||||
|
}
|
||||||
|
return localVariableReassignment();
|
||||||
|
}
|
||||||
|
|
||||||
|
private JsExpression localVariableReassignment() {
|
||||||
|
assert baseExpression instanceof JsNameRef : "Base expression should be an l-value";
|
||||||
|
return AstUtil.newAssignment((JsNameRef) baseExpression, overloadedMethodInvocation(baseExpression));
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsExpression propertyReassignment() {
|
||||||
|
JetExpression jetBaseExpression = getBaseExpression();
|
||||||
|
PropertyAccessTranslator propertyAccessTranslator = Translation.propertyAccessTranslator(translationContext());
|
||||||
|
JsInvocation setterCall = propertyAccessTranslator.translateAsPropertySetterCall(jetBaseExpression);
|
||||||
|
assert propertyAccessTranslator.canBePropertyGetterCall(jetBaseExpression) : "Should be a getter call";
|
||||||
|
JsExpression overloadedMethodCallOnPropertyGetter = overloadedMethodInvocation(baseExpression);
|
||||||
|
setterCall.setArguments(Arrays.asList(overloadedMethodCallOnPropertyGetter));
|
||||||
|
return setterCall;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsExpression overloadedMethodInvocation(@NotNull JsExpression receiver) {
|
||||||
|
AstUtil.setQualifier(operationReference, receiver);
|
||||||
|
return AstUtil.newInvocation(operationReference);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsExpression jsUnaryExpression() {
|
||||||
JsUnaryOperator operator = OperatorTable.getUnaryOperator(getOperationToken());
|
JsUnaryOperator operator = OperatorTable.getUnaryOperator(getOperationToken());
|
||||||
if (isPrefix) {
|
if (isPrefix) {
|
||||||
return new JsPrefixOperation(operator, baseExpression);
|
return new JsPrefixOperation(operator, baseExpression);
|
||||||
@@ -65,16 +154,14 @@ public final class UnaryOperationTranslator extends OperationTranslator {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private JsExpression translateBaseExpression() {
|
private JsExpression translateBaseExpression() {
|
||||||
JetExpression baseExpression = expression.getBaseExpression();
|
JetExpression baseExpression = getBaseExpression();
|
||||||
assert baseExpression != null : "Unary expression should have a base expression";
|
|
||||||
return Translation.translateAsExpression(baseExpression, translationContext());
|
return Translation.translateAsExpression(baseExpression, translationContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
private JetExpression getBaseExpression() {
|
||||||
private JsExpression overloadedMethodInvocation(@NotNull JsExpression receiver,
|
JetExpression baseExpression = expression.getBaseExpression();
|
||||||
@NotNull JsNameRef operationReference) {
|
assert baseExpression != null : "Unary expression should have a base expression";
|
||||||
AstUtil.setQualifier(operationReference, receiver);
|
return baseExpression;
|
||||||
return AstUtil.newInvocation(operationReference);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -28,4 +28,19 @@ public class OperatorOverloadingTest extends TranslationTest {
|
|||||||
public void prefixInc() throws Exception {
|
public void prefixInc() throws Exception {
|
||||||
testFooBoxIsTrue("prefixDecOverload.kt");
|
testFooBoxIsTrue("prefixDecOverload.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void prefixIncReturnsCorrectValue() throws Exception {
|
||||||
|
testFooBoxIsTrue("prefixIncReturnsCorrectValue.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void overloadedCallOnProperty() throws Exception {
|
||||||
|
testFooBoxIsTrue("overloadedCallOnProperty.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void postfixOnProperty() throws Exception {
|
||||||
|
testFooBoxIsTrue("postfixOnProperty.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
namespace foo
|
||||||
|
|
||||||
|
var a = MyInt()
|
||||||
|
|
||||||
|
class MyInt() {
|
||||||
|
var b = 0
|
||||||
|
|
||||||
|
fun inc() {
|
||||||
|
b = b + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun box() : Boolean {
|
||||||
|
a++;
|
||||||
|
return (a.b == 1);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
namespace foo
|
||||||
|
|
||||||
|
var a = MyInt()
|
||||||
|
|
||||||
|
class MyInt() {
|
||||||
|
var b = 0
|
||||||
|
|
||||||
|
fun inc() : MyInt {
|
||||||
|
b = b + 1;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun box() : Boolean {
|
||||||
|
val d = a++;
|
||||||
|
return (a.b == 1) && (d.b == 1);
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
namespace foo
|
||||||
|
|
||||||
|
class MyInt() {
|
||||||
|
var b = 0
|
||||||
|
|
||||||
|
fun dec() : MyInt {
|
||||||
|
b = b + 1;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun box() : Boolean {
|
||||||
|
var c = MyInt()
|
||||||
|
val d = --c;
|
||||||
|
return (c.b == 1);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user