bug fixes:

1. Range standard implementation size property fixed, iteration order fixed
2. System.println() without parameters fixed.
This commit is contained in:
Pavel Talanov
2011-12-13 20:45:34 +04:00
parent 936e3f0d84
commit 9f66d644df
15 changed files with 503 additions and 381 deletions
+344 -354
View File
@@ -4,38 +4,22 @@
<bookmark url="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/safeCallReturnsNullIfFails.kt" line="3" /> <bookmark url="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/safeCallReturnsNullIfFails.kt" line="3" />
</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="string templates with primitive values.">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/StringTemplateTranslator.java" /> <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/system/cases/ranges.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/string/cases/intInTemplate.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/string/cases/multipleExpressionsInTemplate.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/string/cases/stringInTemplate.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/arrayList/out/access.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/arrayList/out/arrayAccess.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/arrayList/out/emptyList.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/arrayList/out/indexOOB.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/arrayList/out/isEmpty.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/arrayList/out/iterate.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/arrayList/out/remove.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/system/cases/ifAsExpression.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/system/cases/multiLanguageHello.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/system/cases/printArg.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/java/system/cases/whileLoop.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenAsExpression.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$/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$/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/context/StandardClasses.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/intrinsic/primitive/PrimitiveRangeToIntrinsic.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/intrinsic/primitive/PrimitiveRangeToIntrinsic.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/IncrementTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/IncrementTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/testFiles/java/system/cases/systemPrint.kt" afterPath="$PROJECT_DIR$/translator/testFiles/java/system/cases/systemPrint.kt" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/testFiles/expression/misc/cases/intRange.kt" afterPath="$PROJECT_DIR$/translator/testFiles/expression/misc/cases/intRange.kt" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/testFiles/kotlin_lib.js" afterPath="$PROJECT_DIR$/translator/testFiles/kotlin_lib.js" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/testFiles/kotlin_lib.js" afterPath="$PROJECT_DIR$/translator/testFiles/kotlin_lib.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ConditionalTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ConditionalTest.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/testFiles/range/cases/explicitRange.kt" afterPath="$PROJECT_DIR$/translator/testFiles/range/cases/explicitRange.kt" />
<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" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/testFiles/range/cases/intInRange.kt" afterPath="$PROJECT_DIR$/translator/testFiles/range/cases/intInRange.kt" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RhinoSystemOutputChecker.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RhinoSystemOutputChecker.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/testFiles/range/cases/rangeSugarSyntax.kt" afterPath="$PROJECT_DIR$/translator/testFiles/range/cases/rangeSugarSyntax.kt" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StringTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StringTest.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/SystemTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/SystemTest.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/SystemTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/SystemTest.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TranslationTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TranslationTest.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/translator.iml" afterPath="$PROJECT_DIR$/translator/translator.iml" />
</list> </list>
<ignored path="k2js.iws" /> <ignored path="k2js.iws" />
<ignored path=".idea/workspace.xml" /> <ignored path=".idea/workspace.xml" />
@@ -55,6 +39,9 @@
<SUITE FILE_PATH="coverage/k2js$All_in_translator.ic" NAME="All in translator Coverage Results" MODIFIED="1322842646613" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false"> <SUITE FILE_PATH="coverage/k2js$All_in_translator.ic" NAME="All in translator Coverage Results" MODIFIED="1322842646613" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">
<FILTER>org.jetbrains.k2js.translate.*</FILTER> <FILTER>org.jetbrains.k2js.translate.*</FILTER>
</SUITE> </SUITE>
<SUITE FILE_PATH="coverage/k2js$All_in_jetTests.ic" NAME="All in jetTests Coverage Results" MODIFIED="1323784159712" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">
<FILTER>org.jetbrains.k2js.translate.*</FILTER>
</SUITE>
<SUITE FILE_PATH="coverage/k2js$IntrinsicTest_intrinsicPlusAssign.ic" NAME="IntrinsicTest.intrinsicPlusAssign Coverage Results" MODIFIED="1322843588173" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false"> <SUITE FILE_PATH="coverage/k2js$IntrinsicTest_intrinsicPlusAssign.ic" NAME="IntrinsicTest.intrinsicPlusAssign Coverage Results" MODIFIED="1322843588173" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">
<FILTER>org.jetbrains.k2js.test.*</FILTER> <FILTER>org.jetbrains.k2js.test.*</FILTER>
<FILTER>org.jetbrains.k2js.translate.*</FILTER> <FILTER>org.jetbrains.k2js.translate.*</FILTER>
@@ -159,7 +146,7 @@
<option name="CONDITION" value="" /> <option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" /> <option name="LOG_MESSAGE" value="" />
</breakpoint> </breakpoint>
<breakpoint url="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RhinoSystemOutputChecker.java" line="47" class="org.jetbrains.k2js.test.RhinoSystemOutputChecker" package="org.jetbrains.k2js.test"> <breakpoint url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" line="131" class="org.jetbrains.k2js.translate.expression.WhenTranslator" package="org.jetbrains.k2js.translate.expression">
<option name="ENABLED" value="true" /> <option name="ENABLED" value="true" />
<option name="LOG_ENABLED" value="false" /> <option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" /> <option name="LOG_EXPRESSION_ENABLED" value="false" />
@@ -172,7 +159,7 @@
<option name="CONDITION" value="" /> <option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" /> <option name="LOG_MESSAGE" value="" />
</breakpoint> </breakpoint>
<breakpoint url="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RhinoFunctionResultChecker.java" line="29" class="org.jetbrains.k2js.test.RhinoFunctionResultChecker" package="org.jetbrains.k2js.test"> <breakpoint url="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RhinoSystemOutputChecker.java" line="32" class="org.jetbrains.k2js.test.RhinoSystemOutputChecker" package="org.jetbrains.k2js.test">
<option name="ENABLED" value="true" /> <option name="ENABLED" value="true" />
<option name="LOG_ENABLED" value="false" /> <option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" /> <option name="LOG_EXPRESSION_ENABLED" value="false" />
@@ -242,38 +229,20 @@
<favorites_list name="k2js" /> <favorites_list name="k2js" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.6696901"> <splitter split-orientation="horizontal" split-proportion="0.84954405">
<split-first> <split-first>
<leaf> <leaf>
<file leaf-file-name="PatternMatchingTest.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="RangeTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java"> <entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RangeTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="14" column="34" selection-start="296" selection-end="296" vertical-scroll-proportion="0.0"> <state line="17" column="16" selection-start="304" selection-end="304" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="WhenTranslator.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="explicitRange.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java"> <entry file="file://$PROJECT_DIR$/translator/testFiles/range/cases/explicitRange.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="40" column="63" selection-start="1464" selection-end="1464" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="StringTest.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StringTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="19" column="28" selection-start="395" selection-end="395" vertical-scroll-proportion="0.24564184">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="intInTemplate.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/out/intInTemplate.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
@@ -281,8 +250,8 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="multipleExpressionsInTemplate.js" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="intInRange.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/out/multipleExpressionsInTemplate.js"> <entry file="file://$PROJECT_DIR$/translator/testFiles/range/out/intInRange.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
@@ -290,37 +259,8 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="StringTemplateTranslator.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="explicitRange.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/StringTemplateTranslator.java"> <entry file="file://$PROJECT_DIR$/translator/testFiles/range/out/explicitRange.js">
<provider selected="true" editor-type-id="text-editor">
<state line="74" column="105" selection-start="2986" selection-end="2986" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="multipleExpressionsInTemplate.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/cases/multipleExpressionsInTemplate.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="5" column="66" selection-start="137" selection-end="137" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="stringInTemplate.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/cases/stringInTemplate.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="3" selection-start="88" selection-end="88" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="stringAssignment.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/cases/stringAssignment.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
@@ -328,10 +268,55 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="RhinoFunctionResultChecker.java" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="kotlin_lib.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RhinoFunctionResultChecker.java"> <entry file="file://$PROJECT_DIR$/translator/testFiles/kotlin_lib.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="29" column="0" selection-start="902" selection-end="902" vertical-scroll-proportion="0.0"> <state line="583" column="24" selection-start="15248" selection-end="15248" vertical-scroll-proportion="-11.653846">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ranges.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/java/system/cases/ranges.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="3" column="3" selection-start="65" selection-end="65" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="intRange.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/misc/out/intRange.js">
<provider selected="true" editor-type-id="text-editor">
<state line="30" column="7" selection-start="946" selection-end="946" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="intInRange.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/range/cases/intInRange.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>
</file>
<file leaf-file-name="rangeSugarSyntax.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/range/cases/rangeSugarSyntax.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>
</file>
<file leaf-file-name="SystemTest.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/SystemTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="56" column="28" selection-start="1478" selection-end="1478" vertical-scroll-proportion="0.67547727">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -341,51 +326,6 @@
</split-first> </split-first>
<split-second> <split-second>
<leaf> <leaf>
<file leaf-file-name="overloadPlusAssignArrayList.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/overloadPlusAssignArrayList.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>
</file>
<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="98" column="16" selection-start="2413" selection-end="2413" vertical-scroll-proportion="1.4118774">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="whenNotType.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/whenNotType.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>
</file>
<file leaf-file-name="extensionLiteralPassedToFunction.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/extensionFunction/cases/extensionLiteralPassedToFunction.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="137" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="plusAndMinusAsAnExpression.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/plusAndMinusAsAnExpression.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>
</file>
<file leaf-file-name="plusAssignNoReassign.kt" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="plusAssignNoReassign.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/plusAssignNoReassign.kt"> <entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/plusAssignNoReassign.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
@@ -426,9 +366,52 @@
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/utils/JetTestUtils.java"> <entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/utils/JetTestUtils.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="129" column="33" selection-start="4335" selection-end="4335" vertical-scroll-proportion="0.0"> <state line="129" column="33" selection-start="4335" selection-end="4335" vertical-scroll-proportion="0.0">
<folding> <folding />
<element signature="imports" expanded="false" /> </state>
</folding> </provider>
</entry>
</file>
<file leaf-file-name="Library.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Library.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="332" column="37" selection-start="7805" selection-end="7808" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Intrinsics.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java">
<provider selected="true" editor-type-id="text-editor">
<state line="61" column="14" selection-start="2336" selection-end="2336" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="OperatorConventions.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/OperatorConventions.java">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="53" selection-start="587" selection-end="587" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="SharedVar.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/src/jet/runtime/SharedVar.java">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="30" selection-start="298" selection-end="298" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="IntRange.java" pinned="false" current="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/src/jet/IntRange.java">
<provider selected="true" editor-type-id="text-editor">
<state line="4" column="19" selection-start="64" selection-end="64" vertical-scroll-proportion="-2.5336134">
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -457,22 +440,22 @@
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="changedFiles"> <option name="changedFiles">
<list> <list>
<option value="$PROJECT_DIR$/translator/testFiles/kotlin_lib.js" /> <option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/conditional/cases/ifAsExpression.kt" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" />
<option value="$PROJECT_DIR$/translator/testFiles/java/system/cases/multiLanguageHello.kt" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/SystemTest.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" />
<option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" /> <option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" /> <option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java" /> <option value="$PROJECT_DIR$/translator/testFiles/java/system/out/ranges.js" />
<option value="$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenAsExpression.kt" /> <option value="$PROJECT_DIR$/translator/testFiles/java/system/out/ifAsExpression.js" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" /> <option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/intrinsic/primitive/PrimitiveRangeToIntrinsic.java" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/string/cases/stringInTemplate.kt" /> <option value="$PROJECT_DIR$/translator/testFiles/expression/misc/cases/intRange.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/string/cases/intInTemplate.kt" /> <option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/IncrementTranslator.java" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/string/cases/multipleExpressionsInTemplate.kt" /> <option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RangeTest.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/StringTemplateTranslator.java" /> <option value="$PROJECT_DIR$/translator/testFiles/range/cases/explicitRange.kt" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StringTest.java" /> <option value="$PROJECT_DIR$/translator/testFiles/range/cases/intInRange.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/range/cases/rangeSugarSyntax.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/misc/out/intRange.js" />
<option value="$PROJECT_DIR$/translator/testFiles/java/system/cases/ranges.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/kotlin_lib.js" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/SystemTest.java" />
</list> </list>
</option> </option>
</component> </component>
@@ -563,6 +546,20 @@
</navigator> </navigator>
<panes> <panes>
<pane id="Scope" /> <pane id="Scope" />
<pane id="PackagesPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<PATH> <PATH>
@@ -609,7 +606,7 @@
<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_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="patternMatching" /> <option name="myItemId" value="range" />
<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_ELEMENT> <PATH_ELEMENT>
@@ -631,7 +628,7 @@
<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_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="patternMatching" /> <option name="myItemId" value="range" />
<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_ELEMENT> <PATH_ELEMENT>
@@ -661,6 +658,32 @@
<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="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="system" />
<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" />
@@ -715,7 +738,7 @@
<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_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="string" /> <option name="myItemId" value="misc" />
<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_ELEMENT> <PATH_ELEMENT>
@@ -741,7 +764,7 @@
<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_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="string" /> <option name="myItemId" value="misc" />
<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_ELEMENT> <PATH_ELEMENT>
@@ -759,45 +782,7 @@
<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_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="testFiles" /> <option name="myItemId" value="test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="expression" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="conditional" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="out" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="testFiles" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="expression" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="conditional" />
<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" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
@@ -819,6 +804,32 @@
<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="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translate" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="utils" />
<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" />
@@ -863,7 +874,7 @@
<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_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="expression" /> <option name="myItemId" value="intrinsic" />
<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>
@@ -931,20 +942,6 @@
</PATH> </PATH>
</subPane> </subPane>
</pane> </pane>
<pane id="PackagesPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Favorites" /> <pane id="Favorites" />
</panes> </panes>
</component> </component>
@@ -984,8 +981,8 @@
<recent name="org.jetbrains.k2js.test.examples" /> <recent name="org.jetbrains.k2js.test.examples" />
</key> </key>
</component> </component>
<component name="RunManager" selected="JUnit.StringTest"> <component name="RunManager" selected="JUnit.tests">
<configuration default="false" name="ConditionalTest.ifElseIf" type="JUnit" factoryName="JUnit" temporary="true"> <configuration default="false" name="SystemTest.ranges" type="JUnit" factoryName="JUnit" temporary="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true">
<pattern> <pattern>
<option name="PATTERN" value="org.jetbrains.k2js.test.*" /> <option name="PATTERN" value="org.jetbrains.k2js.test.*" />
@@ -996,64 +993,8 @@
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" /> <option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" /> <option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.ConditionalTest" />
<option name="METHOD_NAME" value="ifElseIf" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="SystemTest.multiLanguageHello" 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.SystemTest" /> <option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.SystemTest" />
<option name="METHOD_NAME" value="multiLanguageHello" /> <option name="METHOD_NAME" value="ranges" />
<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="false" name="PatternMatchingTest.whenValueOrType" 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.PatternMatchingTest" />
<option name="METHOD_NAME" value="whenValueOrType" />
<option name="TEST_OBJECT" value="method" /> <option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" /> <option name="VM_PARAMETERS" />
<option name="PARAMETERS" /> <option name="PARAMETERS" />
@@ -1069,7 +1010,7 @@
<ConfigurationWrapper RunnerId="Run" /> <ConfigurationWrapper RunnerId="Run" />
<method /> <method />
</configuration> </configuration>
<configuration default="false" name="StringTest.intInTemplate" type="JUnit" factoryName="JUnit" temporary="true"> <configuration default="false" name="RangeTest.intInRange" 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>
<option name="PATTERN" value="org.jetbrains.k2js.test.*" /> <option name="PATTERN" value="org.jetbrains.k2js.test.*" />
@@ -1080,8 +1021,8 @@
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" /> <option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" /> <option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.StringTest" /> <option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.RangeTest" />
<option name="METHOD_NAME" value="intInTemplate" /> <option name="METHOD_NAME" value="intInRange" />
<option name="TEST_OBJECT" value="method" /> <option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" value="-ea" /> <option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" /> <option name="PARAMETERS" value="" />
@@ -1094,17 +1035,11 @@
<envs /> <envs />
<dir value="$PROJECT_DIR$/translator" /> <dir value="$PROJECT_DIR$/translator" />
<patterns /> <patterns />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<RunnerSettings RunnerId="Run" /> <RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" /> <ConfigurationWrapper RunnerId="Run" />
<method /> <method />
</configuration> </configuration>
<configuration default="false" name="StringTest" type="JUnit" factoryName="JUnit" temporary="true"> <configuration default="false" name="RangeTest" 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>
<option name="PATTERN" value="org.jetbrains.k2js.test.*" /> <option name="PATTERN" value="org.jetbrains.k2js.test.*" />
@@ -1115,8 +1050,8 @@
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" /> <option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" /> <option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.StringTest" /> <option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.RangeTest" />
<option name="METHOD_NAME" value="intInTemplate" /> <option name="METHOD_NAME" value="intInRange" />
<option name="TEST_OBJECT" value="class" /> <option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" /> <option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" /> <option name="PARAMETERS" value="" />
@@ -1133,6 +1068,63 @@
<ConfigurationWrapper RunnerId="Run" /> <ConfigurationWrapper RunnerId="Run" />
<method /> <method />
</configuration> </configuration>
<configuration default="false" name="MiscTest" 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.MiscTest" />
<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="RangeTest.rangeSugarSyntax" 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.RangeTest" />
<option name="METHOD_NAME" value="rangeSugarSyntax" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<dir value="$PROJECT_DIR$/translator" />
<patterns />
<RunnerSettings RunnerId="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" />
@@ -1260,11 +1252,11 @@
</configuration> </configuration>
<list size="6"> <list size="6">
<item index="0" class="java.lang.String" itemvalue="JUnit.tests" /> <item index="0" class="java.lang.String" itemvalue="JUnit.tests" />
<item index="1" class="java.lang.String" itemvalue="JUnit.ConditionalTest.ifElseIf" /> <item index="1" class="java.lang.String" itemvalue="JUnit.SystemTest.ranges" />
<item index="2" class="java.lang.String" itemvalue="JUnit.SystemTest.multiLanguageHello" /> <item index="2" class="java.lang.String" itemvalue="JUnit.RangeTest.intInRange" />
<item index="3" class="java.lang.String" itemvalue="JUnit.PatternMatchingTest.whenValueOrType" /> <item index="3" class="java.lang.String" itemvalue="JUnit.RangeTest" />
<item index="4" class="java.lang.String" itemvalue="JUnit.StringTest.intInTemplate" /> <item index="4" class="java.lang.String" itemvalue="JUnit.MiscTest" />
<item index="5" class="java.lang.String" itemvalue="JUnit.StringTest" /> <item index="5" class="java.lang.String" itemvalue="JUnit.RangeTest.rangeSugarSyntax" />
</list> </list>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false"> <configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host> <Host>localhost</Host>
@@ -1325,7 +1317,6 @@
<window_info id="Data Sources" 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="Data Sources" 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="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32853025" sideWeight="0.49812934" 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.49812934" 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" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32756963" sideWeight="0.4216996" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24973261" sideWeight="0.7183908" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24973261" sideWeight="0.7183908" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.28530258" sideWeight="0.7733832" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.28530258" sideWeight="0.7733832" order="3" side_tool="false" content_ui="tabs" />
<window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32949087" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> <window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32949087" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
@@ -1339,11 +1330,12 @@
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.20363443" sideWeight="0.284342" order="1" side_tool="true" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.20363443" sideWeight="0.284342" 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.7002882" 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.32977018" sideWeight="0.7002882" 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.2928915" sideWeight="0.6993276" 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.2928915" sideWeight="0.7012488" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.30067244" sideWeight="0.8530198" 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.2987512" sideWeight="0.8530198" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.0908605" sideWeight="0.7146974" order="2" 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.0908605" sideWeight="0.7146974" order="2" side_tool="false" content_ui="combo" />
<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="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32756963" sideWeight="0.4216996" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" /> <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3994253" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3994253" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="JsTestDriver Server" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32907662" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" /> <window_info id="JsTestDriver Server" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32907662" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
@@ -1383,7 +1375,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="rewrite K2JSTranslator class" /> <option name="LAST_COMMIT_MESSAGE" value="range standard implementation added. tests added." />
<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" />
@@ -1396,10 +1388,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="refactor ReferenceTranslator" />
<MESSAGE value="simple array tests pass" />
<MESSAGE value="work on array size property" />
<MESSAGE value="move aliasing into context. array size works." />
<MESSAGE value="Array throws indexOutOfBoundsExceptions" /> <MESSAGE value="Array throws indexOutOfBoundsExceptions" />
<MESSAGE value="Array iterator object support." /> <MESSAGE value="Array iterator object support." />
<MESSAGE value="simple for support" /> <MESSAGE value="simple for support" />
@@ -1421,6 +1409,10 @@
<MESSAGE value="extension literal support and tests." /> <MESSAGE value="extension literal support and tests." />
<MESSAGE value="temporary commit." /> <MESSAGE value="temporary commit." />
<MESSAGE value="rewrite K2JSTranslator class" /> <MESSAGE value="rewrite K2JSTranslator class" />
<MESSAGE value="string templates with primitive values." />
<MESSAGE value="removed accidentally commited files." />
<MESSAGE value="very simple try/catch/finally support." />
<MESSAGE value="range standard implementation added. tests added." />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager /> <breakpoint-manager />
@@ -1430,116 +1422,114 @@
<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$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java"> <entry file="file://$PROJECT_DIR$/translator/testFiles/range/out/rangeSugarSyntax.js">
<provider selected="true" editor-type-id="text-editor">
<state line="31" column="19" selection-start="1507" selection-end="1507" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenExecutesOnlyOnce.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/out/whenExecutesOnlyOnce.js"> <entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/MiscTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="24" column="16" selection-start="616" selection-end="616" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/misc/cases/intRange.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="72" column="38" selection-start="1680" selection-end="1680" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/IncrementTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="68" column="16" selection-start="2812" selection-end="2812" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/misc/out/localProperty.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenAsExpression.kt"> <entry file="file://$PROJECT_DIR$/translator/testFiles/java/system/out/ranges.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="39" selection-start="13" selection-end="13" vertical-scroll-proportion="0.0"> <state line="13" column="59" selection-start="418" selection-end="418" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/cases/stringConstant.kt"> <entry file="file://$PROJECT_DIR$/translator/testFiles/range/cases/intInRange.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="80" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/cases/intInTemplate.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="4" column="23" selection-start="0" selection-end="92" 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="14" column="34" selection-start="296" selection-end="296" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RhinoFunctionResultChecker.java">
<provider selected="true" editor-type-id="text-editor">
<state line="29" column="0" selection-start="902" selection-end="902" 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="40" column="63" selection-start="1464" selection-end="1464" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/out/intInTemplate.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/out/multipleExpressionsInTemplate.js"> <entry file="file://$PROJECT_DIR$/translator/testFiles/range/cases/rangeSugarSyntax.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/cases/stringAssignment.kt"> <entry file="file://$PROJECT_DIR$/translator/testFiles/range/cases/explicitRange.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/cases/multipleExpressionsInTemplate.kt"> <entry file="file://$PROJECT_DIR$/translator/testFiles/range/out/intInRange.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="5" column="66" selection-start="137" selection-end="137" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/cases/stringInTemplate.kt"> <entry file="file://$PROJECT_DIR$/translator/testFiles/range/out/explicitRange.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="7" column="3" selection-start="88" selection-end="88" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/StringTemplateTranslator.java"> <entry file="file://$PROJECT_DIR$/translator/testFiles/expression/misc/out/intRange.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="74" column="105" selection-start="2986" selection-end="2986" vertical-scroll-proportion="0.0"> <state line="30" column="7" selection-start="946" selection-end="946" vertical-scroll-proportion="0.0">
<folding> <folding />
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StringTest.java"> <entry file="file://$PROJECT_DIR$/translator/testFiles/java/system/cases/ranges.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="19" column="28" selection-start="395" selection-end="395" vertical-scroll-proportion="0.24564184"> <state line="3" column="3" selection-start="65" selection-end="65" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlin_lib.js">
<provider selected="true" editor-type-id="text-editor">
<state line="583" column="24" selection-start="15248" selection-end="15248" vertical-scroll-proportion="-11.653846">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RangeTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="16" selection-start="304" selection-end="304" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/SystemTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="56" column="28" selection-start="1478" selection-end="1478" vertical-scroll-proportion="0.67547727">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -335,4 +335,8 @@ public class AstUtil {
public static JsBinaryOperation subtract(JsExpression left, JsExpression right) { public static JsBinaryOperation subtract(JsExpression left, JsExpression right) {
return new JsBinaryOperation(JsBinaryOperator.SUB, left, right); return new JsBinaryOperation(JsBinaryOperator.SUB, left, right);
} }
public static JsPrefixOperation not(JsExpression expression) {
return new JsPrefixOperation(JsUnaryOperator.NOT, expression);
}
} }
@@ -65,7 +65,7 @@ public final class StandardClasses {
standardClasses.declareStandardTopLevelObject(arrayListFQName, "ArrayList"); standardClasses.declareStandardTopLevelObject(arrayListFQName, "ArrayList");
standardClasses.declareStandardInnerDeclaration(arrayListFQName, "<init>", "ArrayList"); standardClasses.declareStandardInnerDeclaration(arrayListFQName, "<init>", "ArrayList");
declareMethods(standardClasses, arrayListFQName, "size", "add", "get", declareMethods(standardClasses, arrayListFQName, "size", "add", "get",
"isEmpty", "set", "remove", "addAll"); "isEmpty", "set", "remove", "addAll", "contains");
} }
private static void declareIterator(@NotNull StandardClasses standardClasses, private static void declareIterator(@NotNull StandardClasses standardClasses,
@@ -57,6 +57,7 @@ public final class Intrinsics {
} }
} }
//TODO: delete or include
private void declareArrayIntrinsics() { private void declareArrayIntrinsics() {
FunctionDescriptor constructorFunction = getFunctionByName(library.getLibraryScope(), "Array"); FunctionDescriptor constructorFunction = getFunctionByName(library.getLibraryScope(), "Array");
functionIntrinsics.put(constructorFunction, ArrayNullConstructorIntrinsic.INSTANCE); functionIntrinsics.put(constructorFunction, ArrayNullConstructorIntrinsic.INSTANCE);
@@ -1,6 +1,7 @@
package org.jetbrains.k2js.translate.intrinsic.primitive; package org.jetbrains.k2js.translate.intrinsic.primitive;
import com.google.dart.compiler.backend.js.ast.JsBinaryOperation; import com.google.dart.compiler.backend.js.ast.JsBinaryOperation;
import com.google.dart.compiler.backend.js.ast.JsBooleanLiteral;
import com.google.dart.compiler.backend.js.ast.JsExpression; import com.google.dart.compiler.backend.js.ast.JsExpression;
import com.google.dart.compiler.backend.js.ast.JsNew; import com.google.dart.compiler.backend.js.ast.JsNew;
import com.google.dart.compiler.util.AstUtil; import com.google.dart.compiler.util.AstUtil;
@@ -30,11 +31,14 @@ public final class PrimitiveRangeToIntrinsic implements FunctionIntrinsic {
@NotNull TranslationContext context) { @NotNull TranslationContext context) {
assert arguments.size() == 1 : "RangeTo must have one argument."; assert arguments.size() == 1 : "RangeTo must have one argument.";
JsExpression rangeEnd = arguments.get(0); JsExpression rangeEnd = arguments.get(0);
JsBinaryOperation rangeSize = AstUtil.subtract(rangeEnd, rangeStart); JsBinaryOperation rangeSize = AstUtil.sum(AstUtil.subtract(rangeEnd, rangeStart),
context.program().getNumberLiteral(1));
//TODO: provide a way not to hard code this value //TODO: provide a way not to hard code this value
JsNew numberRangeConstructorInvocation JsNew numberRangeConstructorInvocation
= new JsNew(AstUtil.newQualifiedNameRef("Kotlin.NumberRange")); = new JsNew(AstUtil.newQualifiedNameRef("Kotlin.NumberRange"));
numberRangeConstructorInvocation.setArguments(Arrays.asList(rangeStart, rangeSize)); //TODO: add tests and correct expression for reversed ranges.
JsBooleanLiteral isRangeReversed = context.program().getFalseLiteral();
numberRangeConstructorInvocation.setArguments(Arrays.asList(rangeStart, rangeSize, isRangeReversed));
return numberRangeConstructorInvocation; return numberRangeConstructorInvocation;
} }
} }
@@ -11,6 +11,7 @@ import org.jetbrains.k2js.translate.context.TranslationContext;
import org.jetbrains.k2js.translate.general.AbstractTranslator; import org.jetbrains.k2js.translate.general.AbstractTranslator;
import org.jetbrains.k2js.translate.reference.AccessTranslator; import org.jetbrains.k2js.translate.reference.AccessTranslator;
import static org.jetbrains.k2js.translate.utils.BindingUtils.isStatement;
import static org.jetbrains.k2js.translate.utils.BindingUtils.isVariableReassignment; import static org.jetbrains.k2js.translate.utils.BindingUtils.isVariableReassignment;
import static org.jetbrains.k2js.translate.utils.PsiUtils.*; import static org.jetbrains.k2js.translate.utils.PsiUtils.*;
import static org.jetbrains.k2js.translate.utils.TranslationUtils.isIntrinsicOperation; import static org.jetbrains.k2js.translate.utils.TranslationUtils.isIntrinsicOperation;
@@ -64,9 +65,7 @@ public abstract class IncrementTranslator extends AbstractTranslator {
} }
private boolean returnValueIgnored() { private boolean returnValueIgnored() {
//TODO: it's a hack but for now there is now legal way to know whether expression is statement or not. return isStatement(context().bindingContext(), expression);
return false;
//return isStatement(context().bindingContext(), expression);
} }
@NotNull @NotNull
@@ -19,17 +19,19 @@ import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import static com.google.dart.compiler.util.AstUtil.not;
import static org.jetbrains.k2js.translate.utils.BindingUtils.getDescriptorForReferenceExpression; import static org.jetbrains.k2js.translate.utils.BindingUtils.getDescriptorForReferenceExpression;
import static org.jetbrains.k2js.translate.utils.BindingUtils.getFunctionDescriptorForCallExpression; import static org.jetbrains.k2js.translate.utils.BindingUtils.getFunctionDescriptorForCallExpression;
import static org.jetbrains.k2js.translate.utils.DescriptorUtils.getVariableDescriptorForVariableAsFunction; import static org.jetbrains.k2js.translate.utils.DescriptorUtils.getVariableDescriptorForVariableAsFunction;
import static org.jetbrains.k2js.translate.utils.DescriptorUtils.isConstructorDescriptor; import static org.jetbrains.k2js.translate.utils.DescriptorUtils.isConstructorDescriptor;
import static org.jetbrains.k2js.translate.utils.PsiUtils.isInOperation; import static org.jetbrains.k2js.translate.utils.PsiUtils.isInOrNotInOperation;
import static org.jetbrains.k2js.translate.utils.PsiUtils.isNotInOperation;
import static org.jetbrains.k2js.translate.utils.TranslationUtils.*; import static org.jetbrains.k2js.translate.utils.TranslationUtils.*;
/** /**
* @author Talanov Pavel * @author Talanov Pavel
*/ */
//TODO: move translate() static method into builder (consider!) //TODO: move translate() static methods into builder (consider!)
//TODO: write tests on calling backing fields as functions //TODO: write tests on calling backing fields as functions
public final class CallTranslator extends AbstractTranslator { public final class CallTranslator extends AbstractTranslator {
@@ -76,12 +78,28 @@ public final class CallTranslator extends AbstractTranslator {
(context.bindingContext(), binaryExpression.getOperationReference()); (context.bindingContext(), binaryExpression.getOperationReference());
assert descriptor instanceof FunctionDescriptor; assert descriptor instanceof FunctionDescriptor;
FunctionDescriptor functionDescriptor = (FunctionDescriptor) descriptor; FunctionDescriptor functionDescriptor = (FunctionDescriptor) descriptor;
if (isInOperation(binaryExpression)) { if (isInOrNotInOperation(binaryExpression)) {
return translateWithReceiverAndArgumentSwapped(context, receiver, arguments, functionDescriptor); JsExpression inRangeCheck = translateAsInOperation(context, receiver, arguments, functionDescriptor);
return mayBeWrapWithNegation(inRangeCheck, isNotInOperation(binaryExpression));
} }
return translate(context, receiver, arguments, functionDescriptor); return translate(context, receiver, arguments, functionDescriptor);
} }
public static JsExpression mayBeWrapWithNegation(@NotNull JsExpression expression, boolean shouldWrap) {
if (shouldWrap) {
return not(expression);
} else {
return expression;
}
}
private static JsExpression translateAsInOperation(@NotNull TranslationContext context,
@NotNull JsExpression receiver,
@NotNull List<JsExpression> arguments,
@NotNull FunctionDescriptor functionDescriptor) {
return translateWithReceiverAndArgumentSwapped(context, receiver, arguments, functionDescriptor);
}
@NotNull @NotNull
private static JsExpression translateWithReceiverAndArgumentSwapped(@NotNull TranslationContext context, private static JsExpression translateWithReceiverAndArgumentSwapped(@NotNull TranslationContext context,
@NotNull JsExpression receiver, @NotNull JsExpression receiver,
@@ -52,8 +52,16 @@ public final class PsiUtils {
return expression.getReferencedNameElementType() == JetTokens.FIELD_IDENTIFIER; return expression.getReferencedNameElementType() == JetTokens.FIELD_IDENTIFIER;
} }
public static boolean isInOperation(@NotNull JetBinaryExpression binaryExpression) { public static boolean isInOrNotInOperation(@NotNull JetBinaryExpression binaryExpression) {
return binaryExpression.getOperationToken() == JetTokens.IN_KEYWORD; return isInOperation(binaryExpression) || isNotInOperation(binaryExpression);
}
public static boolean isNotInOperation(@NotNull JetBinaryExpression binaryExpression) {
return (binaryExpression.getOperationToken() == JetTokens.NOT_IN);
}
private static boolean isInOperation(@NotNull JetBinaryExpression binaryExpression) {
return (binaryExpression.getOperationToken() == JetTokens.IN_KEYWORD);
} }
@NotNull @NotNull
@@ -5,6 +5,7 @@ import org.junit.Test;
/** /**
* @author Talanov Pavel * @author Talanov Pavel
*/ */
//TODO: move most of the cases to other suites
public final class SystemTest extends JavaClassesTest { public final class SystemTest extends JavaClassesTest {
final private static String MAIN = "system/"; final private static String MAIN = "system/";
@@ -50,5 +51,13 @@ public final class SystemTest extends JavaClassesTest {
checkOutput("nullChecks.kt", "6", "2", "3"); checkOutput("nullChecks.kt", "6", "2", "3");
} }
@Test
public void ranges() throws Exception {
checkOutput("ranges.kt", "OK\n" +
" 1 2 3 4 5\n" +
"Out: array has only 3 elements. x = 4\n" +
"Yes: array contains aaa\n" +
"No: array doesn't contains ddd\n", "4");
}
} }
@@ -2,9 +2,17 @@ namespace foo
class RangeIterator(val start : Int, var count : Int, val reversed : Boolean) { class RangeIterator(val start : Int, var count : Int, val reversed : Boolean) {
var i = start
fun next() : Int { fun next() : Int {
--count --count
return start + if (reversed) -count else count; if (reversed) {
i--
return i + 1
} else {
i++
return i - 1
}
} }
@@ -14,7 +22,7 @@ class RangeIterator(val start : Int, var count : Int, val reversed : Boolean) {
class NumberRange(val start : Int, val size : Int, val reversed : Boolean) { class NumberRange(val start : Int, val size : Int, val reversed : Boolean) {
val end : Int val end : Int
get() = start + size get() = if (reversed) start - size + 1 else start + size - 1
fun contains(number : Int) : Boolean { fun contains(number : Int) : Boolean {
if (reversed) { if (reversed) {
@@ -44,7 +52,7 @@ fun testRange() : Boolean {
if (!oneToFive.contains(4)) return false; if (!oneToFive.contains(4)) return false;
if (!(oneToFive.start == 1)) return false; if (!(oneToFive.start == 1)) return false;
if (!(oneToFive.size == 4)) return false; if (!(oneToFive.size == 4)) return false;
if (!(oneToFive.end == 5)) return false; if (!(oneToFive.end == 4)) return false;
var sum = 0; var sum = 0;
for (i in oneToFive) { for (i in oneToFive) {
@@ -62,7 +70,7 @@ fun testRange() : Boolean {
fun testReversedRange() : Boolean { fun testReversedRange() : Boolean {
System.out?.println("Testing revesed range."); System.out?.println("Testing reversed range.");
val tenToFive = NumberRange(10, 5, true); val tenToFive = NumberRange(10, 5, true);
@@ -76,6 +84,10 @@ fun testReversedRange() : Boolean {
if (!tenToFive.contains(9)) return false; if (!tenToFive.contains(9)) return false;
if (!tenToFive.contains(10)) return false; if (!tenToFive.contains(10)) return false;
if (!(tenToFive.start == 10)) return false;
if (!(tenToFive.size == 5)) return false;
if (!(tenToFive.end == 6)) return false;
for (i in tenToFive) { for (i in tenToFive) {
System.out?.println(i) System.out?.println(i)
} }
@@ -0,0 +1,35 @@
import java.util.ArrayList;
fun main(args : Array<String>) {
val x = Integer.parseInt(args[0])
//Check if a number lies within a range:
val y = 10
if (x in 1..y-1)
System.out?.println("OK")
//Iterate over a range:
for (a in 1..5)
System.out?.print(" ${a}")
//Check if a number is out of range:
System.out?.println()
val array = ArrayList<String>();
array.add("aaa")
array.add("bbb")
array.add("ccc")
if (x !in 0..array.size())
System.out?.println("Out: array has only ${array.size()} elements. x = ${x}")
//Check if a collection contains an object:
if ("aaa" in array) // collection.contains(obj) is called
System.out?.println("Yes: array contains aaa")
if ("ddd" in array) // collection.contains(obj) is called
System.out?.println("Yes: array contains ddd")
else
System.out?.println("No: array doesn't contains ddd")
}
+35 -5
View File
@@ -451,6 +451,14 @@ Kotlin.Namespace = Namespace;
Kotlin.Trait = Trait; Kotlin.Trait = Trait;
Kotlin.isType = isType; Kotlin.isType = isType;
Kotlin.equals = function (obj1, obj2) {
if (typeof obj1 == "object") {
if (obj1.equals != undefined) {
return obj1.equals(obj2);
}
}
return (obj1 === obj2);
};
Kotlin.Exceptions = {} Kotlin.Exceptions = {}
Kotlin.Exceptions.IndexOutOfBounds = {} Kotlin.Exceptions.IndexOutOfBounds = {}
@@ -529,6 +537,14 @@ Kotlin.ArrayList = Class.create({
this.array[i] = this.array[i + 1]; this.array[i] = this.array[i + 1];
} }
this.$size--; this.$size--;
},
contains:function (obj) {
for (var i = 0; i < this.$size; ++i) {
if (Kotlin.equals(this.array[i], obj)) {
return true;
}
}
return false;
} }
}); });
@@ -560,10 +576,12 @@ Kotlin.System = function () {
var output = ""; var output = "";
var print = function (obj) { var print = function (obj) {
output += obj; if (obj !== undefined) {
output += obj;
}
}; };
var println = function (obj) { var println = function (obj) {
output += obj; this.print(obj);
output += "\n"; output += "\n";
}; };
@@ -598,6 +616,7 @@ Kotlin.RangeIterator = Kotlin.Class.create({initialize:function (start, count, r
this.$start = start; this.$start = start;
this.$count = count; this.$count = count;
this.$reversed = reversed; this.$reversed = reversed;
this.$i = this.get_start();
}, get_start:function () { }, get_start:function () {
return this.$start; return this.$start;
}, get_count:function () { }, get_count:function () {
@@ -606,9 +625,20 @@ Kotlin.RangeIterator = Kotlin.Class.create({initialize:function (start, count, r
this.$count = tmp$0; this.$count = tmp$0;
}, get_reversed:function () { }, get_reversed:function () {
return this.$reversed; return this.$reversed;
}, get_i:function () {
return this.$i;
}, set_i:function (tmp$0) {
this.$i = tmp$0;
}, next:function () { }, next:function () {
this.set_count(this.get_count() - 1); this.set_count(this.get_count() - 1);
return this.get_start() + (this.get_reversed() ? -this.get_count() : this.get_count()); if (this.get_reversed()) {
this.set_i(this.get_i() - 1);
return this.get_i() + 1;
}
else {
this.set_i(this.get_i() + 1);
return this.get_i() - 1;
}
}, hasNext:function () { }, hasNext:function () {
return this.get_count() > 0; return this.get_count() > 0;
} }
@@ -625,7 +655,7 @@ Kotlin.NumberRange = Kotlin.Class.create({initialize:function (start, size, reve
}, get_reversed:function () { }, get_reversed:function () {
return this.$reversed; return this.$reversed;
}, get_end:function () { }, get_end:function () {
return this.get_start() + this.get_size(); return this.get_reversed() ? this.get_start() - this.get_size() + 1 : this.get_start() + this.get_size() - 1;
}, contains:function (number) { }, contains:function (number) {
if (this.get_reversed()) { if (this.get_reversed()) {
return number <= this.get_start() && number > this.get_start() - this.get_size(); return number <= this.get_start() && number > this.get_start() - this.get_size();
@@ -636,4 +666,4 @@ Kotlin.NumberRange = Kotlin.Class.create({initialize:function (start, size, reve
}, iterator:function () { }, iterator:function () {
return new Kotlin.RangeIterator(this.get_start(), this.get_size(), this.get_reversed()); return new Kotlin.RangeIterator(this.get_start(), this.get_size(), this.get_reversed());
} }
}); });
@@ -14,7 +14,7 @@ fun box() : Boolean {
if (!oneToFive.contains(4)) return false; if (!oneToFive.contains(4)) return false;
if (!(oneToFive.start == 1)) return false; if (!(oneToFive.start == 1)) return false;
if (!(oneToFive.size == 4)) return false; if (!(oneToFive.size == 4)) return false;
if (!(oneToFive.end == 5)) return false; if (!(oneToFive.end == 4)) return false;
var sum = 0; var sum = 0;
for (i in oneToFive) { for (i in oneToFive) {
@@ -28,4 +28,8 @@ fun box() : Boolean {
return true; return true;
}
fun main() {
box()
} }
@@ -2,12 +2,16 @@ namespace foo
fun box() : Boolean { fun box() : Boolean {
if (1 in -2..1) return false; if (1 in -2..0) return false;
if (1 in -10..0) return false; if (1 in -10..-4) return false;
if (!(1 in 0..2)) return false; if (!(1 in 0..2)) return false;
if (!(1 in 1..2)) return false; if (!(1 in 1..2)) return false;
if (!(1 in -2..5)) return false; if (!(1 in -2..5)) return false;
return true; return true;
}
fun main() {
box()
} }
@@ -4,7 +4,7 @@ fun box() : Boolean {
var oneToFive = 1..5 var oneToFive = 1..5
if (oneToFive.contains(5)) return false; if (!oneToFive.contains(5)) return false;
if (oneToFive.contains(0)) return false; if (oneToFive.contains(0)) return false;
if (oneToFive.contains(-100)) return false; if (oneToFive.contains(-100)) return false;
if (oneToFive.contains(10)) return false; if (oneToFive.contains(10)) return false;
@@ -13,7 +13,7 @@ fun box() : Boolean {
if (!oneToFive.contains(3)) return false; if (!oneToFive.contains(3)) return false;
if (!oneToFive.contains(4)) return false; if (!oneToFive.contains(4)) return false;
if (!(oneToFive.start == 1)) return false; if (!(oneToFive.start == 1)) return false;
if (!(oneToFive.size == 4)) return false; if (!(oneToFive.size == 5)) return false;
if (!(oneToFive.end == 5)) return false; if (!(oneToFive.end == 5)) return false;
var sum = 0; var sum = 0;
@@ -24,8 +24,12 @@ fun box() : Boolean {
System.out?.print(i) System.out?.print(i)
} }
if (sum != 10) return false; if (sum != 15) return false;
return true; return true;
}
fun main() {
box()
} }