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" />
</component>
<component name="ChangeListManager">
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/StringTemplateTranslator.java" />
<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" />
<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/testFiles/java/system/cases/ranges.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/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/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/utils/BindingUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.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/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/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/operation/IncrementTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/IncrementTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/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/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/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/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/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/testFiles/range/cases/explicitRange.kt" afterPath="$PROJECT_DIR$/translator/testFiles/range/cases/explicitRange.kt" />
<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/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/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>
<ignored path="k2js.iws" />
<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">
<FILTER>org.jetbrains.k2js.translate.*</FILTER>
</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">
<FILTER>org.jetbrains.k2js.test.*</FILTER>
<FILTER>org.jetbrains.k2js.translate.*</FILTER>
@@ -159,7 +146,7 @@
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</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="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
@@ -172,7 +159,7 @@
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</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="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
@@ -242,38 +229,20 @@
<favorites_list name="k2js" />
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.6696901">
<splitter split-orientation="horizontal" split-proportion="0.84954405">
<split-first>
<leaf>
<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">
<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/RangeTest.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">
<state line="17" column="16" selection-start="304" selection-end="304" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="WhenTranslator.java" pinned="false" current="false" current-in-tab="false">
<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>
</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">
<file leaf-file-name="explicitRange.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/range/cases/explicitRange.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 />
@@ -281,8 +250,8 @@
</provider>
</entry>
</file>
<file leaf-file-name="multipleExpressionsInTemplate.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/out/multipleExpressionsInTemplate.js">
<file leaf-file-name="intInRange.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/range/out/intInRange.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 />
@@ -290,37 +259,8 @@
</provider>
</entry>
</file>
<file leaf-file-name="StringTemplateTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/StringTemplateTranslator.java">
<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">
<file leaf-file-name="explicitRange.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/range/out/explicitRange.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 />
@@ -328,10 +268,55 @@
</provider>
</entry>
</file>
<file leaf-file-name="RhinoFunctionResultChecker.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RhinoFunctionResultChecker.java">
<file leaf-file-name="kotlin_lib.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlin_lib.js">
<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 />
</state>
</provider>
@@ -341,51 +326,6 @@
</split-first>
<split-second>
<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">
<entry file="file://$PROJECT_DIR$/translator/testFiles/operatorOverloading/cases/plusAssignNoReassign.kt">
<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">
<provider selected="true" editor-type-id="text-editor">
<state line="129" column="33" selection-start="4335" selection-end="4335" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="false" />
</folding>
<folding />
</state>
</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>
</provider>
</entry>
@@ -457,22 +440,22 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/translator/testFiles/kotlin_lib.js" />
<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$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.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/test/org/jetbrains/k2js/test/PatternMatchingTest.java" />
<option value="$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenAsExpression.kt" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/string/cases/stringInTemplate.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/string/cases/intInTemplate.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/string/cases/multipleExpressionsInTemplate.kt" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/StringTemplateTranslator.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StringTest.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java" />
<option value="$PROJECT_DIR$/translator/testFiles/java/system/out/ranges.js" />
<option value="$PROJECT_DIR$/translator/testFiles/java/system/out/ifAsExpression.js" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/intrinsic/primitive/PrimitiveRangeToIntrinsic.java" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/misc/cases/intRange.kt" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/IncrementTranslator.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/RangeTest.java" />
<option value="$PROJECT_DIR$/translator/testFiles/range/cases/explicitRange.kt" />
<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>
</option>
</component>
@@ -563,6 +546,20 @@
</navigator>
<panes>
<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">
<subPane>
<PATH>
@@ -609,7 +606,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</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" />
</PATH_ELEMENT>
<PATH_ELEMENT>
@@ -631,7 +628,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</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" />
</PATH_ELEMENT>
<PATH_ELEMENT>
@@ -661,6 +658,32 @@
<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="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_ELEMENT>
<option name="myItemId" value="k2js" />
@@ -715,7 +738,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</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" />
</PATH_ELEMENT>
<PATH_ELEMENT>
@@ -741,7 +764,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</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" />
</PATH_ELEMENT>
<PATH_ELEMENT>
@@ -759,45 +782,7 @@
<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="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="myItemId" value="test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@@ -819,6 +804,32 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translate" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="utils" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
@@ -863,7 +874,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</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" />
</PATH_ELEMENT>
</PATH>
@@ -931,20 +942,6 @@
</PATH>
</subPane>
</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" />
</panes>
</component>
@@ -984,8 +981,8 @@
<recent name="org.jetbrains.k2js.test.examples" />
</key>
</component>
<component name="RunManager" selected="JUnit.StringTest">
<configuration default="false" name="ConditionalTest.ifElseIf" type="JUnit" factoryName="JUnit" temporary="true">
<component name="RunManager" selected="JUnit.tests">
<configuration default="false" name="SystemTest.ranges" 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.*" />
@@ -996,64 +993,8 @@
<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.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="METHOD_NAME" value="multiLanguageHello" />
<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="METHOD_NAME" value="ranges" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" />
<option name="PARAMETERS" />
@@ -1069,7 +1010,7 @@
<ConfigurationWrapper RunnerId="Run" />
<method />
</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">
<pattern>
<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" value="" />
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.StringTest" />
<option name="METHOD_NAME" value="intInTemplate" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.RangeTest" />
<option name="METHOD_NAME" value="intInRange" />
<option name="TEST_OBJECT" value="method" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" />
@@ -1094,17 +1035,11 @@
<envs />
<dir value="$PROJECT_DIR$/translator" />
<patterns />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="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">
<pattern>
<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" value="" />
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.StringTest" />
<option name="METHOD_NAME" value="intInTemplate" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.RangeTest" />
<option name="METHOD_NAME" value="intInRange" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" />
@@ -1133,6 +1068,63 @@
<ConfigurationWrapper RunnerId="Run" />
<method />
</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">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
@@ -1260,11 +1252,11 @@
</configuration>
<list size="6">
<item index="0" class="java.lang.String" itemvalue="JUnit.tests" />
<item index="1" class="java.lang.String" itemvalue="JUnit.ConditionalTest.ifElseIf" />
<item index="2" class="java.lang.String" itemvalue="JUnit.SystemTest.multiLanguageHello" />
<item index="3" class="java.lang.String" itemvalue="JUnit.PatternMatchingTest.whenValueOrType" />
<item index="4" class="java.lang.String" itemvalue="JUnit.StringTest.intInTemplate" />
<item index="5" class="java.lang.String" itemvalue="JUnit.StringTest" />
<item index="1" class="java.lang.String" itemvalue="JUnit.SystemTest.ranges" />
<item index="2" class="java.lang.String" itemvalue="JUnit.RangeTest.intInRange" />
<item index="3" class="java.lang.String" itemvalue="JUnit.RangeTest" />
<item index="4" class="java.lang.String" itemvalue="JUnit.MiscTest" />
<item index="5" class="java.lang.String" itemvalue="JUnit.RangeTest.rangeSugarSyntax" />
</list>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<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="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="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="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" />
@@ -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="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="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="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="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.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="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="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="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" />
@@ -1383,7 +1375,7 @@
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="LAST_COMMIT_MESSAGE" value="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="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
<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="SHOW_FILE_HISTORY_AS_TREE" value="false" />
<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 iterator object support." />
<MESSAGE value="simple for support" />
@@ -1421,6 +1409,10 @@
<MESSAGE value="extension literal support and tests." />
<MESSAGE value="temporary commit." />
<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 name="XDebuggerManager">
<breakpoint-manager />
@@ -1430,116 +1422,114 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java">
<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">
<entry file="file://$PROJECT_DIR$/translator/testFiles/range/out/rangeSugarSyntax.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>
<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">
<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/cases/whenAsExpression.kt">
<entry file="file://$PROJECT_DIR$/translator/testFiles/java/system/out/ranges.js">
<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 />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/string/cases/stringConstant.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">
<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>
<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">
<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/expression/string/cases/stringAssignment.kt">
<entry file="file://$PROJECT_DIR$/translator/testFiles/range/cases/explicitRange.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/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">
<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 />
</state>
</provider>
</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">
<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 />
</state>
</provider>
</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">
<state line="74" column="105" selection-start="2986" selection-end="2986" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
<state line="30" column="7" selection-start="946" selection-end="946" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</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">
<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 />
</state>
</provider>
@@ -335,4 +335,8 @@ public class AstUtil {
public static JsBinaryOperation subtract(JsExpression left, JsExpression 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.declareStandardInnerDeclaration(arrayListFQName, "<init>", "ArrayList");
declareMethods(standardClasses, arrayListFQName, "size", "add", "get",
"isEmpty", "set", "remove", "addAll");
"isEmpty", "set", "remove", "addAll", "contains");
}
private static void declareIterator(@NotNull StandardClasses standardClasses,
@@ -57,6 +57,7 @@ public final class Intrinsics {
}
}
//TODO: delete or include
private void declareArrayIntrinsics() {
FunctionDescriptor constructorFunction = getFunctionByName(library.getLibraryScope(), "Array");
functionIntrinsics.put(constructorFunction, ArrayNullConstructorIntrinsic.INSTANCE);
@@ -1,6 +1,7 @@
package org.jetbrains.k2js.translate.intrinsic.primitive;
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.JsNew;
import com.google.dart.compiler.util.AstUtil;
@@ -30,11 +31,14 @@ public final class PrimitiveRangeToIntrinsic implements FunctionIntrinsic {
@NotNull TranslationContext context) {
assert arguments.size() == 1 : "RangeTo must have one argument.";
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
JsNew numberRangeConstructorInvocation
= 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;
}
}
@@ -11,6 +11,7 @@ import org.jetbrains.k2js.translate.context.TranslationContext;
import org.jetbrains.k2js.translate.general.AbstractTranslator;
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.PsiUtils.*;
import static org.jetbrains.k2js.translate.utils.TranslationUtils.isIntrinsicOperation;
@@ -64,9 +65,7 @@ public abstract class IncrementTranslator extends AbstractTranslator {
}
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 false;
//return isStatement(context().bindingContext(), expression);
return isStatement(context().bindingContext(), expression);
}
@NotNull
@@ -19,17 +19,19 @@ import java.util.Arrays;
import java.util.Collections;
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.getFunctionDescriptorForCallExpression;
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.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.*;
/**
* @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
public final class CallTranslator extends AbstractTranslator {
@@ -76,12 +78,28 @@ public final class CallTranslator extends AbstractTranslator {
(context.bindingContext(), binaryExpression.getOperationReference());
assert descriptor instanceof FunctionDescriptor;
FunctionDescriptor functionDescriptor = (FunctionDescriptor) descriptor;
if (isInOperation(binaryExpression)) {
return translateWithReceiverAndArgumentSwapped(context, receiver, arguments, functionDescriptor);
if (isInOrNotInOperation(binaryExpression)) {
JsExpression inRangeCheck = translateAsInOperation(context, receiver, arguments, functionDescriptor);
return mayBeWrapWithNegation(inRangeCheck, isNotInOperation(binaryExpression));
}
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
private static JsExpression translateWithReceiverAndArgumentSwapped(@NotNull TranslationContext context,
@NotNull JsExpression receiver,
@@ -52,8 +52,16 @@ public final class PsiUtils {
return expression.getReferencedNameElementType() == JetTokens.FIELD_IDENTIFIER;
}
public static boolean isInOperation(@NotNull JetBinaryExpression binaryExpression) {
return binaryExpression.getOperationToken() == JetTokens.IN_KEYWORD;
public static boolean isInOrNotInOperation(@NotNull JetBinaryExpression binaryExpression) {
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
@@ -5,6 +5,7 @@ import org.junit.Test;
/**
* @author Talanov Pavel
*/
//TODO: move most of the cases to other suites
public final class SystemTest extends JavaClassesTest {
final private static String MAIN = "system/";
@@ -50,5 +51,13 @@ public final class SystemTest extends JavaClassesTest {
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) {
var i = start
fun next() : Int {
--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) {
val end : Int
get() = start + size
get() = if (reversed) start - size + 1 else start + size - 1
fun contains(number : Int) : Boolean {
if (reversed) {
@@ -44,7 +52,7 @@ fun testRange() : Boolean {
if (!oneToFive.contains(4)) return false;
if (!(oneToFive.start == 1)) return false;
if (!(oneToFive.size == 4)) return false;
if (!(oneToFive.end == 5)) return false;
if (!(oneToFive.end == 4)) return false;
var sum = 0;
for (i in oneToFive) {
@@ -62,7 +70,7 @@ fun testRange() : Boolean {
fun testReversedRange() : Boolean {
System.out?.println("Testing revesed range.");
System.out?.println("Testing reversed range.");
val tenToFive = NumberRange(10, 5, true);
@@ -76,6 +84,10 @@ fun testReversedRange() : Boolean {
if (!tenToFive.contains(9)) 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) {
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.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.IndexOutOfBounds = {}
@@ -529,6 +537,14 @@ Kotlin.ArrayList = Class.create({
this.array[i] = this.array[i + 1];
}
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 print = function (obj) {
output += obj;
if (obj !== undefined) {
output += obj;
}
};
var println = function (obj) {
output += obj;
this.print(obj);
output += "\n";
};
@@ -598,6 +616,7 @@ Kotlin.RangeIterator = Kotlin.Class.create({initialize:function (start, count, r
this.$start = start;
this.$count = count;
this.$reversed = reversed;
this.$i = this.get_start();
}, get_start:function () {
return this.$start;
}, get_count:function () {
@@ -606,9 +625,20 @@ Kotlin.RangeIterator = Kotlin.Class.create({initialize:function (start, count, r
this.$count = tmp$0;
}, get_reversed:function () {
return this.$reversed;
}, get_i:function () {
return this.$i;
}, set_i:function (tmp$0) {
this.$i = tmp$0;
}, next:function () {
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 () {
return this.get_count() > 0;
}
@@ -625,7 +655,7 @@ Kotlin.NumberRange = Kotlin.Class.create({initialize:function (start, size, reve
}, get_reversed:function () {
return this.$reversed;
}, 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) {
if (this.get_reversed()) {
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 () {
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.start == 1)) return false;
if (!(oneToFive.size == 4)) return false;
if (!(oneToFive.end == 5)) return false;
if (!(oneToFive.end == 4)) return false;
var sum = 0;
for (i in oneToFive) {
@@ -28,4 +28,8 @@ fun box() : Boolean {
return true;
}
fun main() {
box()
}
@@ -2,12 +2,16 @@ namespace foo
fun box() : Boolean {
if (1 in -2..1) return false;
if (1 in -10..0) return false;
if (1 in -2..0) return false;
if (1 in -10..-4) return false;
if (!(1 in 0..2)) return false;
if (!(1 in 1..2)) return false;
if (!(1 in -2..5)) return false;
return true;
}
fun main() {
box()
}
@@ -4,7 +4,7 @@ fun box() : Boolean {
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(-100)) return false;
if (oneToFive.contains(10)) return false;
@@ -13,7 +13,7 @@ fun box() : Boolean {
if (!oneToFive.contains(3)) return false;
if (!oneToFive.contains(4)) 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;
var sum = 0;
@@ -24,8 +24,12 @@ fun box() : Boolean {
System.out?.print(i)
}
if (sum != 10) return false;
if (sum != 15) return false;
return true;
}
fun main() {
box()
}