work on standard classes mechanism implementation

This commit is contained in:
Pavel Talanov
2011-12-08 14:54:06 +04:00
parent b394483085
commit a9491fa77e
9 changed files with 686 additions and 204 deletions
+508 -185
View File
@@ -5,12 +5,15 @@
</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/ForTranslator.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/for/cases/forIteratesOverArray.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ForTest.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/for/cases/forOnEmptyArray.kt" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" />
<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/src/org/jetbrains/k2js/translate/context/Namer.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/Namer.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ForTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ForTranslator.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/test/org/jetbrains/k2js/test/ForTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ForTest.java" />
</list>
<ignored path="k2js.iws" />
<ignored path=".idea/workspace.xml" />
@@ -230,94 +233,99 @@
<favorites_list name="k2js" />
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.17302632">
<splitter split-orientation="horizontal" split-proportion="0.64078945">
<split-first>
<leaf>
<file leaf-file-name="StandardClassesTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StandardClassesTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="47" column="16" selection-start="1138" selection-end="1138" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="arraysIterator.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/standardClasses/out/arraysIterator.js">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="112" selection-start="306" selection-end="306" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="arraysIterator.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/standardClasses/cases/arraysIterator.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="34" selection-start="300" selection-end="300" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Aliaser.java" pinned="false" current="false" current-in-tab="true">
<file leaf-file-name="Aliaser.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/Aliaser.java">
<provider selected="true" editor-type-id="text-editor">
<state line="70" column="46" selection-start="3170" selection-end="3170" vertical-scroll-proportion="0.7682482">
<state line="40" column="46" selection-start="2118" selection-end="2118" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Namer.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/Namer.java">
<file leaf-file-name="TranslationContext.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="133" column="45" selection-start="4227" selection-end="4227" vertical-scroll-proportion="0.0">
<state line="98" column="88" selection-start="3859" selection-end="3859" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JetScope.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java">
<file leaf-file-name="BasicClassTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/BasicClassTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="29" column="18" selection-start="779" selection-end="779" vertical-scroll-proportion="0.0">
<state line="17" column="16" selection-start="303" selection-end="303" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ClassifierDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassifierDescriptor.java">
<file leaf-file-name="StandardClasses.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="30" selection-start="287" selection-end="287" vertical-scroll-proportion="0.0">
<state line="74" column="21" selection-start="3151" selection-end="3151" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1081#1097#0" expanded="true" />
<element signature="e#1176#1193#0" expanded="true" />
<element signature="e#1289#1318#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="StandardClassesTest.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StandardClassesTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="21" column="49" selection-start="449" selection-end="449" vertical-scroll-proportion="0.4992658">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="array.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/standardClasses/out/array.js">
<file leaf-file-name="StaticContext.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java">
<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="24" column="66" selection-start="1333" selection-end="1333" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="arrayAccess.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/standardClasses/out/arrayAccess.js">
<file leaf-file-name="ClassDescriptorImpl.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptorImpl.java">
<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="29" column="40" selection-start="1083" selection-end="1083" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="arrayAccess.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/standardClasses/cases/arrayAccess.kt">
<file leaf-file-name="DescriptorUtils.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<state line="62" column="41" selection-start="2346" selection-end="2350" vertical-scroll-proportion="-8.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DescriptorUtils.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="36" column="13" selection-start="1253" selection-end="1253" vertical-scroll-proportion="56.76">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DescriptorRenderer.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java">
<provider selected="true" editor-type-id="text-editor">
<state line="20" column="28" selection-start="616" selection-end="616" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -327,93 +335,91 @@
</split-first>
<split-second>
<leaf>
<file leaf-file-name="ForTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ForTest.java">
<file leaf-file-name="simpleBox.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/simpleBox.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="16" selection-start="307" selection-end="307" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="forIteratesOverArray.js" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/for/out/forIteratesOverArray.js">
<file leaf-file-name="traitproperty.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/traitproperty.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="22" column="52" selection-start="456" selection-end="456" vertical-scroll-proportion="0.54919237">
<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="TranslatorVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslatorVisitor.java">
<file leaf-file-name="basicmethod.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/basicmethod.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="0" selection-start="583" selection-end="583" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java">
<file leaf-file-name="exceptionConstructor.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/exceptionConstructor.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="388" column="60" selection-start="17036" selection-end="17036" vertical-scroll-proportion="0.0">
<state line="7" column="57" selection-start="154" selection-end="154" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ForTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ForTranslator.java">
<file leaf-file-name="JavaDescriptorResolver.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java">
<provider selected="true" editor-type-id="text-editor">
<state line="56" column="25" selection-start="2386" selection-end="2386" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="TranslationContext.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="128" column="18" selection-start="4735" selection-end="4735" vertical-scroll-proportion="0.0">
<state line="25" column="27" selection-start="919" selection-end="919" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JetForExpression.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetForExpression.java">
<file leaf-file-name="JavaSemanticServices.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaSemanticServices.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="13" selection-start="232" selection-end="232" vertical-scroll-proportion="0.0">
<state line="10" column="57" selection-start="300" selection-end="300" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="forIteratesOverArray.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/for/cases/forIteratesOverArray.kt">
<file leaf-file-name="JavaPackageScope.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaPackageScope.java">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="24" selection-start="118" selection-end="118" vertical-scroll-proportion="0.0">
<state line="13" column="31" selection-start="358" selection-end="358" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="FunctionTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java">
<file leaf-file-name="JavaPsiFacade.class" pinned="false" current="false" current-in-tab="true">
<entry file="jar://C:/Program Files (x86)/JetBrains/IntelliJ IDEA Community Edition 110.283/lib/openapi.jar!/com/intellij/psi/JavaPsiFacade.class">
<provider selected="true" editor-type-id="text-editor">
<state line="16" column="0" selection-start="285" selection-end="429" vertical-scroll-proportion="0.0">
<state line="27" column="94" selection-start="1644" selection-end="1644" vertical-scroll-proportion="0.21935484">
<folding />
</state>
</provider>
</entry>
</file>
<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="JavaClassMembersScope.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassMembersScope.java">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="0" selection-start="157" selection-end="296" vertical-scroll-proportion="0.0">
<state line="19" column="27" selection-start="574" selection-end="574" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JavaClassDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="18" column="19" selection-start="591" selection-end="591" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -440,22 +446,22 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" />
<option value="$PROJECT_DIR$/translator/testFiles/standardClasses/cases/arrayThrowsExceptionOnOOBaccess.kt" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StandardClassesTest.java" />
<option value="$PROJECT_DIR$/translator/testFiles/standardClasses/cases/arraysIterator.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/standardClasses/out/arraysIterator.js" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/Aliaser.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/Namer.java" />
<option value="$PROJECT_DIR$/translator/testFiles/kotlin_lib.js" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/for/cases/forIteratesOverArray.kt" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ForTest.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ForTranslator.java" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/for/out/forIteratesOverArray.js" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ForTranslator.java" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/for/cases/forOnEmpryArray.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/for/cases/forOnEmptyArray.kt" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ForTest.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/Namer.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StandardClassesTest.java" />
</list>
</option>
</component>
@@ -541,7 +547,7 @@
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<autoscrollFromSource ProjectPane="true" />
<sortByType />
</navigator>
<panes>
@@ -562,6 +568,96 @@
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<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="External Libraries" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
</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="External Libraries" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="&lt; IDEA IC-110.283 &gt;" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
</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="External Libraries" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="&lt; IDEA IC-110.283 &gt;" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openapi.jar" />
<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="External Libraries" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="&lt; IDEA IC-110.283 &gt;" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openapi.jar" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="intellij" />
<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="External Libraries" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="&lt; IDEA IC-110.283 &gt;" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openapi.jar" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="intellij" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="psi" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
@@ -719,6 +815,76 @@
<option name="myItemId" value="for" />
<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" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="testFiles" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="examples" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="sortedTests" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="usesJava" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="testFiles" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="examples" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="sortedTests" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="testFiles" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="examples" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -751,6 +917,10 @@
<option name="myItemId" value="test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -818,6 +988,60 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translate" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="context" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="frontend.java" />
<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="frontend.java" />
<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="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
@@ -841,6 +1065,106 @@
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="jet" />
<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="frontend" />
<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="jet" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="resolve" />
<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="frontend" />
<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="jet" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="lang" />
<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="frontend" />
<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="jet" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="lang" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="resolve" />
<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="frontend" />
<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="jet" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="lang" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="descriptors" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -911,39 +1235,6 @@
</key>
</component>
<component name="RunManager" selected="JUnit.tests">
<configuration default="false" name="BasicClassTest.methodDeclarationAndCall" 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.BasicClassTest" />
<option name="METHOD_NAME" value="methodDeclarationAndCall" />
<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="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<ConfigurationWrapper RunnerId="Debug" />
<method />
</configuration>
<configuration default="false" name="BasicClassTest.classInstantiation" type="JUnit" factoryName="JUnit" temporary="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
@@ -1062,6 +1353,35 @@
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="ForTest.forOnEmptyArray" 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.ForTest" />
<option name="METHOD_NAME" value="forOnEmptyArray" />
<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" />
@@ -1189,11 +1509,11 @@
</configuration>
<list size="6">
<item index="0" class="java.lang.String" itemvalue="JUnit.tests" />
<item index="1" class="java.lang.String" itemvalue="JUnit.BasicClassTest.methodDeclarationAndCall" />
<item index="2" class="java.lang.String" itemvalue="JUnit.BasicClassTest.classInstantiation" />
<item index="3" class="java.lang.String" itemvalue="JUnit.All in jetTests" />
<item index="4" class="java.lang.String" itemvalue="JUnit.StandardClassesTest" />
<item index="5" class="java.lang.String" itemvalue="JUnit.StandardClassesTest.arraysIterator" />
<item index="1" class="java.lang.String" itemvalue="JUnit.BasicClassTest.classInstantiation" />
<item index="2" class="java.lang.String" itemvalue="JUnit.All in jetTests" />
<item index="3" class="java.lang.String" itemvalue="JUnit.StandardClassesTest" />
<item index="4" class="java.lang.String" itemvalue="JUnit.StandardClassesTest.arraysIterator" />
<item index="5" class="java.lang.String" itemvalue="JUnit.ForTest.forOnEmptyArray" />
</list>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host>
@@ -1254,10 +1574,11 @@
<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.4404062" 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.7557456" 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="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2987512" sideWeight="0.35702834" order="11" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2987512" sideWeight="0.36237305" order="11" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32977018" sideWeight="0.6705091" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32854405" sideWeight="0.5" order="14" side_tool="false" content_ui="tabs" />
@@ -1268,11 +1589,10 @@
<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.18760021" 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.6392304" 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.6338856" 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.46606094" 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" />
@@ -1312,7 +1632,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="Array iterator object support." />
<option name="LAST_COMMIT_MESSAGE" value="simple for support" />
<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" />
@@ -1325,7 +1645,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="fix test" />
<MESSAGE value="Array test passes." />
<MESSAGE value="supported array access expressions." />
<MESSAGE value="work on intrinsic implementation: split binary expression translation into 2 classes" />
@@ -1350,6 +1669,7 @@
<MESSAGE value="refactor" />
<MESSAGE value="Array throws indexOutOfBoundsExceptions" />
<MESSAGE value="Array iterator object support." />
<MESSAGE value="simple for support" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
@@ -1359,116 +1679,119 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java">
<entry file="file://$PROJECT_DIR$/translator/testFiles/standardClasses/out/array.js">
<provider selected="true" editor-type-id="text-editor">
<state line="115" column="42" selection-start="4989" selection-end="4989" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="225" column="0" selection-start="9504" selection-end="9504" vertical-scroll-proportion="0.0">
<state line="62" column="41" selection-start="2346" selection-end="2350" vertical-scroll-proportion="-8.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/standardClasses/cases/arrayThrowsExceptionOnOOBaccess.kt">
<entry file="file://$PROJECT_DIR$/translator/testFiles/standardClasses/out/arrayAccess.js">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="78" selection-start="101" selection-end="101" 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$/../../Kotlin/jet/compiler/frontend/src/jet/Library.jet">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="252" column="28" selection-start="5288" selection-end="5292" vertical-scroll-proportion="-11.884615">
<state line="36" column="13" selection-start="1253" selection-end="1253" vertical-scroll-proportion="56.76">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlin_lib.js">
<entry file="file://$PROJECT_DIR$/translator/testFiles/standardClasses/cases/arrayAccess.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="499" column="55" selection-start="13446" selection-end="13446" 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/test/org/jetbrains/k2js/test/PatternMatchingTest.java">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="0" selection-start="157" selection-end="296" vertical-scroll-proportion="0.0">
<state line="20" column="28" selection-start="616" selection-end="616" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="16" column="0" selection-start="285" selection-end="429" vertical-scroll-proportion="0.0">
<state line="75" column="29" selection-start="2714" selection-end="2714" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="24" column="66" selection-start="1333" selection-end="1333" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/Aliaser.java">
<provider selected="true" editor-type-id="text-editor">
<state line="70" column="46" selection-start="3170" selection-end="3170" vertical-scroll-proportion="0.7682482">
<state line="40" column="46" selection-start="2118" selection-end="2118" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/for/cases/forIteratesOverArray.kt">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/for/cases/forOnEmptyArray.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="24" selection-start="118" selection-end="118" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslatorVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="0" selection-start="583" selection-end="583" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetForExpression.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="13" selection-start="232" selection-end="232" vertical-scroll-proportion="0.0">
<state line="9" column="52" selection-start="127" selection-end="127" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="128" column="18" selection-start="4735" selection-end="4735" vertical-scroll-proportion="0.0">
<state line="98" column="88" selection-start="3859" selection-end="3859" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/Namer.java">
<provider selected="true" editor-type-id="text-editor">
<state line="388" column="60" selection-start="17036" selection-end="17036" vertical-scroll-proportion="0.0">
<state line="149" column="27" selection-start="4591" selection-end="4591" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ForTest.java">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/BasicClassTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="16" selection-start="307" selection-end="307" vertical-scroll-proportion="0.0">
<state line="17" column="16" selection-start="303" selection-end="303" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ForTranslator.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java">
<provider selected="true" editor-type-id="text-editor">
<state line="56" column="25" selection-start="2386" selection-end="2386" vertical-scroll-proportion="0.0">
<state line="74" column="21" selection-start="3151" selection-end="3151" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1081#1097#0" expanded="true" />
<element signature="e#1176#1193#0" expanded="true" />
<element signature="e#1289#1318#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/for/out/forIteratesOverArray.js">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="22" column="52" selection-start="456" selection-end="456" vertical-scroll-proportion="0.54919237">
<state line="16" column="25" selection-start="510" selection-end="510" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StandardClassesTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="21" column="49" selection-start="449" selection-end="449" vertical-scroll-proportion="0.4992658">
<folding />
</state>
</provider>
@@ -144,4 +144,9 @@ public final class Namer {
public JsNameRef isOperationReference() {
return kotlin(AstUtil.newQualifiedNameRef("isType"));
}
@NotNull
/*package*/ JsScope getKotlinScope() {
return kotlinScope;
}
}
@@ -0,0 +1,93 @@
package org.jetbrains.k2js.translate.context;
import com.google.dart.compiler.backend.js.ast.JsName;
import com.google.dart.compiler.backend.js.ast.JsScope;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.jet.lang.types.JetStandardLibrary;
import java.util.HashMap;
import java.util.Map;
import static org.jetbrains.jet.resolve.DescriptorRenderer.getFQName;
/**
* @author Talanov Pavel
*/
public final class StandardClasses {
@NotNull
public static StandardClasses bindImplementations(@NotNull JetStandardLibrary standardLibrary,
@NotNull JsScope kotlinScope) {
StandardClasses standardClasses = new StandardClasses(kotlinScope);
return standardClasses;
}
@NotNull
private final JsScope kotlinScope;
@NotNull
private final Map<String, JsName> topLevelNameMap = new HashMap<String, JsName>();
@NotNull
private final Map<String, JsScope> scopeMap = new HashMap<String, JsScope>();
@NotNull
private final Map<String, Map<String, JsName>> methodNameMap = new HashMap<String, Map<String, JsName>>();
private StandardClasses(@NotNull JsScope kotlinScope) {
this.kotlinScope = kotlinScope;
}
private void declareStandardTopLevelObject(@NotNull String fullQualifiedName, @NotNull String kotlinLibName) {
topLevelNameMap.put(fullQualifiedName, kotlinScope.declareName(kotlinLibName));
scopeMap.put(fullQualifiedName, new JsScope(kotlinScope, "class " + kotlinLibName));
methodNameMap.put(fullQualifiedName, new HashMap<String, JsName>());
}
private void declareStandardMethod(@NotNull String fullQualifiedClassName, @NotNull String methodName,
@NotNull String kotlinLibName) {
JsScope classScope = scopeMap.get(fullQualifiedClassName);
Map<String, JsName> classMethodsMap = methodNameMap.get(fullQualifiedClassName);
classMethodsMap.put(methodName, classScope.declareName(kotlinLibName));
}
//TODO: refactor
public boolean isStandardObject(@NotNull DeclarationDescriptor descriptor) {
if (descriptor instanceof ClassDescriptor) {
ClassDescriptor classDescriptor = (ClassDescriptor) descriptor;
return topLevelNameMap.containsKey(getFQName(classDescriptor));
}
if (descriptor instanceof FunctionDescriptor) {
FunctionDescriptor functionDescriptor = (FunctionDescriptor) descriptor;
DeclarationDescriptor containing = descriptor.getContainingDeclaration();
assert containing != null : "Cannot have top level functions.";
if (!isStandardObject(containing)) {
return false;
}
Map<String, JsName> methodMapForClass = methodNameMap.get(getFQName(containing));
return methodMapForClass.containsKey(functionDescriptor.getName());
}
return false;
}
@NotNull
public JsName getStandardObjectName(@NotNull DeclarationDescriptor descriptor) {
if (descriptor instanceof ClassDescriptor) {
ClassDescriptor classDescriptor = (ClassDescriptor) descriptor;
return topLevelNameMap.get(getFQName(classDescriptor));
}
if (descriptor instanceof FunctionDescriptor) {
FunctionDescriptor functionDescriptor = (FunctionDescriptor) descriptor;
DeclarationDescriptor containing = descriptor.getContainingDeclaration();
assert containing != null : "Cannot have top level functions.";
Map<String, JsName> methodMapForClass = methodNameMap.get(getFQName(containing));
return methodMapForClass.get(functionDescriptor.getName());
}
throw new AssertionError("Only classes and functions can be standard objects.");
}
}
@@ -22,7 +22,9 @@ public class StaticContext {
NamingScope scope = NamingScope.rootScope(jsRootScope);
Declarations declarations = Declarations.newInstance(scope);
Intrinsics intrinsics = Intrinsics.standardLibraryIntrinsics(library);
return new StaticContext(program, bindingContext, declarations, aliaser, namer, intrinsics, scope);
StandardClasses standardClasses = StandardClasses.bindImplementations(library, namer.getKotlinScope());
return new StaticContext(program, bindingContext, declarations, aliaser,
namer, intrinsics, standardClasses, scope);
}
@NotNull
@@ -43,6 +45,9 @@ public class StaticContext {
@NotNull
private final Intrinsics intrinsics;
@NotNull
private final StandardClasses standardClasses;
@NotNull
private final NamingScope rootScope;
@@ -50,7 +55,7 @@ public class StaticContext {
private StaticContext(@NotNull JsProgram program, @NotNull BindingContext bindingContext,
@NotNull Declarations declarations, @NotNull Aliaser aliaser,
@NotNull Namer namer, @NotNull Intrinsics intrinsics,
@NotNull NamingScope rootScope) {
@NotNull StandardClasses standardClasses, @NotNull NamingScope rootScope) {
this.program = program;
this.bindingContext = bindingContext;
this.declarations = declarations;
@@ -58,6 +63,7 @@ public class StaticContext {
this.namer = namer;
this.intrinsics = intrinsics;
this.rootScope = rootScope;
this.standardClasses = standardClasses;
}
@NotNull
@@ -95,6 +101,11 @@ public class StaticContext {
return rootScope;
}
@NotNull
public StandardClasses getStandardClasses() {
return standardClasses;
}
@NotNull
public NamingScope getScopeForDescriptor(@NotNull DeclarationDescriptor descriptor) {
return declarations.getScope(descriptor);
@@ -95,6 +95,9 @@ public final class TranslationContext {
if (aliaser().hasAliasForDeclaration(descriptor)) {
return aliaser().getAliasForDeclaration(descriptor);
}
if (staticContext.getStandardClasses().isStandardObject(descriptor)) {
return staticContext.getStandardClasses().getStandardObjectName(descriptor);
}
if (dynamicContext.isDeclared(descriptor)) {
return dynamicContext.getLocalName(descriptor);
}
@@ -11,6 +11,9 @@ import org.jetbrains.k2js.translate.context.TranslationContext;
import org.jetbrains.k2js.translate.general.AbstractTranslator;
import org.jetbrains.k2js.translate.general.Translation;
import static org.jetbrains.k2js.translate.utils.PsiUtils.getLoopBody;
import static org.jetbrains.k2js.translate.utils.PsiUtils.getLoopParameter;
/**
* @author Talanov Pavel
*/
@@ -33,41 +36,56 @@ public final class ForTranslator extends AbstractTranslator {
@NotNull
private JsBlock translate() {
JetParameter loopParameter = expression.getLoopParameter();
assert loopParameter != null;
JsName parameterName = context().declareLocalVariable(loopParameter);
JsName parameterName = declareParameter();
TemporaryVariable iterator = context().declareTemporary(iteratorMethodInvocation());
JsBlock bodyBlock = new JsBlock();
bodyBlock.addStatement(AstUtil.newAssignmentStatement(parameterName.makeRef(), nextMethodInvocation(iterator)));
bodyBlock.addStatement(AstUtil.convertToBlock(Translation.translateExpression(expression.getBody(), context())));
JsBlock bodyBlock = generateCycleBody(parameterName, iterator);
JsWhile cycle = new JsWhile(hasNextMethodInvocation(iterator), bodyBlock);
return AstUtil.newBlock(iterator.assignmentExpression().makeStmt(), cycle);
}
@NotNull
private JsName declareParameter() {
JetParameter loopParameter = getLoopParameter(expression);
return context().declareLocalVariable(loopParameter);
}
@NotNull
private JsBlock generateCycleBody(@NotNull JsName parameterName, @NotNull TemporaryVariable iterator) {
JsStatement parameterAssignment = AstUtil.newAssignmentStatement(parameterName.makeRef(), nextMethodInvocation(iterator));
JsNode originalBody = Translation.translateExpression(getLoopBody(expression), context());
return AstUtil.newBlock(parameterAssignment, AstUtil.convertToBlock(originalBody));
}
@NotNull
private JsExpression nextMethodInvocation(@NotNull TemporaryVariable iterator) {
JsNameRef next = AstUtil.newQualifiedNameRef("next");
JsNameRef result = iterator.nameReference();
AstUtil.setQualifier(next, result);
return AstUtil.newInvocation(next);
return callStandardMethodOnExpression("next", iterator.nameReference());
}
@NotNull
private JsExpression hasNextMethodInvocation(@NotNull TemporaryVariable iterator) {
JsNameRef hasNext = AstUtil.newQualifiedNameRef("hasNext");
JsNameRef result = iterator.nameReference();
AstUtil.setQualifier(hasNext, result);
return callStandardMethodOnExpression("hasNext", iterator.nameReference());
}
@NotNull
private JsExpression callStandardMethodOnExpression(@NotNull String methodName, @NotNull JsNameRef expression) {
JsNameRef hasNext = AstUtil.newQualifiedNameRef(methodName);
AstUtil.setQualifier(hasNext, expression);
return AstUtil.newInvocation(hasNext);
}
@NotNull
private JsExpression iteratorMethodInvocation() {
JetExpression rangeExpression = expression.getLoopRange();
assert rangeExpression != null;
JetExpression rangeExpression = getLoopRange();
JsExpression range = Translation.translateAsExpression(rangeExpression, context());
JsNameRef iteratorMethodReference = AstUtil.newQualifiedNameRef("iterator");
AstUtil.setQualifier(iteratorMethodReference, range);
return AstUtil.newInvocation(iteratorMethodReference);
}
@NotNull
private JetExpression getLoopRange() {
JetExpression rangeExpression = expression.getLoopRange();
assert rangeExpression != null;
return rangeExpression;
}
}
@@ -58,4 +58,18 @@ public final class PsiUtils {
assert calleeExpression != null;
return calleeExpression;
}
@NotNull
public static JetExpression getLoopBody(@NotNull JetLoopExpression expression) {
JetExpression body = expression.getBody();
assert body != null : "Loops cannot have null bodies.";
return body;
}
@NotNull
public static JetParameter getLoopParameter(@NotNull JetForExpression expression) {
JetParameter loopParameter = expression.getLoopParameter();
assert loopParameter != null;
return loopParameter;
}
}
@@ -18,4 +18,9 @@ public final class ForTest extends AbstractExpressionTest {
public void forIteratesOverArray() throws Exception {
testFooBoxIsTrue("forIteratesOverArray.kt");
}
}
@Test
public void forOnEmptyArray() throws Exception {
testFooBoxIsTrue("forOnEmptyArray.kt");
}
}
@@ -0,0 +1,10 @@
namespace foo
val a1 = Array<Int>(0)
fun box() : Boolean {
for (a in a1) {
return false;
}
return true;
}