added test for complex expression with when

This commit is contained in:
Pavel Talanov
2012-01-30 20:31:19 +04:00
parent 746714bb5e
commit ed0d5a8b06
3 changed files with 222 additions and 135 deletions
+198 -135
View File
@@ -13,12 +13,9 @@
</component>
<component name="ChangeListManager">
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/config.txt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenWithIf.kt" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" afterPath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/config/Config.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/config/Config.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java" />
</list>
<ignored path="k2js.iws" />
<ignored path=".idea/workspace.xml" />
@@ -118,7 +115,7 @@
<favorites_list name="k2js" />
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.4459084">
<splitter split-orientation="horizontal" split-proportion="0.44590843">
<split-first>
<leaf>
<file leaf-file-name="common.kt" pinned="false" current="false" current-in-tab="false">
@@ -191,7 +188,7 @@
<file leaf-file-name="KotlinDeclarationVisitor.java" pinned="false" current="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/KotlinDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="46" column="67" selection-start="1781" selection-end="1781" vertical-scroll-proportion="1.3639922">
<state line="46" column="67" selection-start="1781" selection-end="1781" vertical-scroll-proportion="1.4925053">
<folding />
</state>
</provider>
@@ -201,37 +198,46 @@
</split-first>
<split-second>
<leaf>
<file leaf-file-name="WhenTranslator.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java">
<file leaf-file-name="multipleCases.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/multipleCases.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="38" column="15" selection-start="1283" selection-end="1283" vertical-scroll-proportion="0.6354962">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JsBlock.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsBlock.java">
<file leaf-file-name="whenAsExpression.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/whenAsExpression.js">
<provider selected="true" editor-type-id="text-editor">
<state line="27" column="16" selection-start="691" selection-end="691" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="WebDemoExamples2Test.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/WebDemoExamples2Test.java">
<file leaf-file-name="whenWithIf.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenWithIf.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="49" selection-start="218" selection-end="218" vertical-scroll-proportion="0.0">
<state line="17" column="15" selection-start="262" selection-end="262" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="TranslationContext.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java">
<file leaf-file-name="whenWithIf.js" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/whenWithIf.js">
<provider selected="true" editor-type-id="text-editor">
<state line="191" column="29" selection-start="6849" selection-end="6849" vertical-scroll-proportion="0.0">
<state line="20" column="29" selection-start="392" selection-end="392" vertical-scroll-proportion="0.648855">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PatternTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/PatternTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="19" column="19" selection-start="823" selection-end="823" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -240,52 +246,43 @@
<file leaf-file-name="PatternMatchingTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="16" selection-start="324" selection-end="324" vertical-scroll-proportion="0.0">
<state line="49" column="36" selection-start="1117" selection-end="1117" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="config.txt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config.txt">
<file leaf-file-name="multipleCases.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/multipleCases.js">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="42" selection-start="42" selection-end="42" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PsiUtils.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java">
<file leaf-file-name="matchNullableType.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/matchNullableType.js">
<provider selected="true" editor-type-id="text-editor">
<state line="103" column="5" selection-start="4074" selection-end="4074" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="AstUtil.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java">
<file leaf-file-name="matchNullableType.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/matchNullableType.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="331" column="72" selection-start="11824" selection-end="11824" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JsStatement.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsStatement.java">
<file leaf-file-name="whenAsExpression.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenAsExpression.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="27" selection-start="359" selection-end="359" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="K2JSTranslatorApplet.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/facade/K2JSTranslatorApplet.java">
<provider selected="true" editor-type-id="text-editor">
<state line="14" column="19" selection-start="349" selection-end="349" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -316,8 +313,6 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/AbstractDeclarationVisitor.java" />
<option value="$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnnotationResolver.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/DeclarationFacade.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/KotlinDeclarationVisitor.java" />
@@ -332,6 +327,8 @@
<option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java" />
<option value="$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenWithIf.kt" />
</list>
</option>
</component>
@@ -564,6 +561,74 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</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>
<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>
<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="patternMatching" />
<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="patternMatching" />
<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>
</subPane>
</pane>
<pane id="Favorites" />
@@ -606,35 +671,7 @@
<recent name="org.jetbrains.k2js.test.examples" />
</key>
</component>
<component name="RunManager" selected="JUnit.All in jetTests">
<configuration default="false" name="WebDemoExamples1Test" 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="jetTests" />
<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.WebDemoExamples1Test" />
<option name="METHOD_NAME" value="isCheck" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<component name="RunManager" selected="JUnit.PatternMatchingTest.whenWithIf">
<configuration default="false" name="StringTest.stringConstant" type="JUnit" factoryName="JUnit" temporary="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
@@ -763,6 +800,34 @@
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="PatternMatchingTest.whenWithIf" 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="jetTests" />
<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.PatternMatchingTest" />
<option name="METHOD_NAME" value="whenWithIf" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
@@ -949,11 +1014,11 @@
<item index="0" class="java.lang.String" itemvalue="Applet.Applet" />
<item index="1" class="java.lang.String" itemvalue="JUnit.tests" />
<item index="2" class="java.lang.String" itemvalue="JUnit.All in jetTests" />
<item index="3" class="java.lang.String" itemvalue="JUnit.WebDemoExamples1Test" />
<item index="4" class="java.lang.String" itemvalue="JUnit.StringTest.stringConstant" />
<item index="5" class="java.lang.String" itemvalue="JUnit.MiscTest.namespaceProperties" />
<item index="6" class="java.lang.String" itemvalue="JUnit.FunctionTest.functionWithTwoParametersCall" />
<item index="7" class="java.lang.String" itemvalue="JUnit.PatternMatchingTest.whenType" />
<item index="3" class="java.lang.String" itemvalue="JUnit.StringTest.stringConstant" />
<item index="4" class="java.lang.String" itemvalue="JUnit.MiscTest.namespaceProperties" />
<item index="5" class="java.lang.String" itemvalue="JUnit.FunctionTest.functionWithTwoParametersCall" />
<item index="6" class="java.lang.String" itemvalue="JUnit.PatternMatchingTest.whenType" />
<item index="7" class="java.lang.String" itemvalue="JUnit.PatternMatchingTest.whenWithIf" />
</list>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host>
@@ -1041,7 +1106,7 @@
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.20363443" sideWeight="0.7588857" order="1" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32977018" sideWeight="0.6570605" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3997862" sideWeight="0.6705998" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.20096205" sideWeight="0.55043226" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.20096205" sideWeight="0.55043226" order="0" side_tool="false" content_ui="combo" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24692678" sideWeight="0.55043226" order="2" side_tool="false" content_ui="combo" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.44956774" sideWeight="0.8530198" order="2" side_tool="false" content_ui="tabs" />
<window_info id="CodeWindow" 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" />
@@ -1089,7 +1154,7 @@
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
<option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="LAST_COMMIT_MESSAGE" value="supported NativeClass() and NativeFun(String) annotations" />
<option name="LAST_COMMIT_MESSAGE" value="solving when problem" />
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
@@ -1102,7 +1167,6 @@
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
<MESSAGE value="refactor access translator logic" />
<MESSAGE value="refactor qualified expression translation" />
<MESSAGE value="builder example working" />
<MESSAGE value="lots of minore refactorings" />
@@ -1127,6 +1191,7 @@
<MESSAGE value="refactoring declaration visitor" />
<MESSAGE value="adding annotations checks" />
<MESSAGE value="supported NativeClass() and NativeFun(String) annotations" />
<MESSAGE value="solving when problem" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
@@ -1136,20 +1201,6 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="103" column="5" selection-start="4074" selection-end="4074" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="126" column="10" selection-start="6013" selection-end="6013" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsStatement.java">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="27" selection-start="359" selection-end="359" vertical-scroll-proportion="0.0">
@@ -1157,51 +1208,30 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/KotlinDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="46" column="67" selection-start="1781" selection-end="1781" vertical-scroll-proportion="1.3639922">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state line="331" column="72" selection-start="11824" selection-end="11824" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.xml">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenAsExpression.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/multipleCases.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="16" selection-start="324" selection-end="324" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java">
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state line="281" column="59" selection-start="12614" selection-end="12614" vertical-scroll-proportion="0.0">
<state line="331" column="72" selection-start="11820" selection-end="11820" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config.txt">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/multipleCases.js">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="42" selection-start="42" selection-end="42" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="21" column="66" selection-start="587" selection-end="587" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -1213,12 +1243,17 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/config/Config.java">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/matchNullableType.js">
<provider selected="true" editor-type-id="text-editor">
<state line="46" column="0" selection-start="1341" selection-end="1341" vertical-scroll-proportion="0.0">
<folding>
<element signature="e#1387#1396#0" expanded="true" />
</folding>
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/whenAsExpression.js">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
@@ -1229,13 +1264,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="62" column="28" selection-start="2837" selection-end="2847" vertical-scroll-proportion="-6.1923075">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsBlock.java">
<provider selected="true" editor-type-id="text-editor">
<state line="27" column="16" selection-start="691" selection-end="691" vertical-scroll-proportion="0.0">
@@ -1243,9 +1271,44 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/PatternTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="19" column="19" selection-start="823" selection-end="823" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="38" column="15" selection-start="1283" selection-end="1283" vertical-scroll-proportion="0.6354962">
<state line="38" column="15" selection-start="1283" selection-end="1283" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="49" column="36" selection-start="1117" selection-end="1117" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenWithIf.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="15" selection-start="262" selection-end="262" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config.txt">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="42" selection-start="42" selection-end="42" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/whenWithIf.js">
<provider selected="true" editor-type-id="text-editor">
<state line="20" column="29" selection-start="392" selection-end="392" vertical-scroll-proportion="0.648855">
<folding />
</state>
</provider>
@@ -45,6 +45,11 @@ public final class PatternMatchingTest extends TranslationTest {
// testFooBoxIsTrue("whenValueOrType.kt");
// }
@Test
public void whenWithIf() throws Exception {
testFooBoxIsTrue("whenWithIf.kt");
}
@Test
public void multipleCases() throws Exception {
testFunctionOutput("multipleCases.kt", "foo", "box", 2.0);
@@ -0,0 +1,19 @@
package foo
fun box() : Boolean {
var c = when(3) {
3 -> 1
2 -> 100
else -> 100
} + when (2) {
1 -> 100
else -> 1
} + when (0) {
1 -> if (true) 100 else 100
0 -> if (false) {100} else {1}
else -> 100
}
return c == 3
}