add configuration for using js backend
refactor K2JSTranslator
This commit is contained in:
Generated
+230
-268
@@ -10,19 +10,20 @@
|
||||
</component>
|
||||
<component name="BookmarkManager">
|
||||
<bookmark url="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/safeCallReturnsNullIfFails.kt" line="3" />
|
||||
<bookmark url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" line="103" />
|
||||
<bookmark url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" line="67" />
|
||||
<bookmark url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java" line="155" mnemonic="2" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/a.kt" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/b.kt" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/multiFile/cases/functionsVisibleFromOtherFile/a.kt" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/multiFile/cases/functionsVisibleFromOtherFile/b.kt" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/MultiFileTest.java" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/Analyzer.java" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/JetFileUtils.java" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/examples/cases/jquery.kt" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/libImplementations/jQuery.js" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/../WebView/.idea/workspace.xml" afterPath="$PROJECT_DIR$/../WebView/.idea/workspace.xml" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.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/src/org/jetbrains/k2js/translate/context/StandardClasses.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java" />
|
||||
</list>
|
||||
<ignored path="k2js.iws" />
|
||||
<ignored path=".idea/workspace.xml" />
|
||||
@@ -132,7 +133,7 @@
|
||||
<option name="CONDITION" value="" />
|
||||
<option name="LOG_MESSAGE" value="" />
|
||||
</breakpoint>
|
||||
<breakpoint url="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaPackageScope.java" line="116" class="org.jetbrains.jet.lang.resolve.java.JavaPackageScope" package="org.jetbrains.jet.lang.resolve.java">
|
||||
<breakpoint url="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaPackageScope.java" line="90" class="org.jetbrains.jet.lang.resolve.java.JavaPackageScope" package="org.jetbrains.jet.lang.resolve.java">
|
||||
<option name="ENABLED" value="true" />
|
||||
<option name="LOG_ENABLED" value="false" />
|
||||
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||
@@ -280,97 +281,98 @@
|
||||
<favorites_list name="k2js" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<splitter split-orientation="horizontal" split-proportion="0.37246963">
|
||||
<splitter split-orientation="horizontal" split-proportion="0.46774197">
|
||||
<split-first>
|
||||
<leaf>
|
||||
<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">
|
||||
<file leaf-file-name="Arrays.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/ktSrc/Arrays.kt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="10" column="5" selection-start="201" selection-end="201" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="StdlibTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StdlibTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="16" column="16" selection-start="305" selection-end="305" 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="Filter.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/stdlib/cases/Filter.kt">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/ktSrc/Filter.kt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="35" column="4" selection-start="843" selection-end="843" vertical-scroll-proportion="0.0">
|
||||
<state line="38" column="27" selection-start="1125" selection-end="1125" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ReferenceTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java">
|
||||
<file leaf-file-name="Concat.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/Concat.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="45" column="97" selection-start="2341" selection-end="2341" vertical-scroll-proportion="0.0">
|
||||
<state line="15" column="13" selection-start="423" selection-end="423" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<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">
|
||||
<file leaf-file-name="Configuration.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/Configuration.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="107" column="92" selection-start="4299" selection-end="4299" vertical-scroll-proportion="0.0">
|
||||
<state line="24" column="18" selection-start="898" selection-end="898" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="AnalyzingUtils.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnalyzingUtils.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="78" column="0" selection-start="3084" selection-end="3084" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Iterators.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/ktSrc/Iterators.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="JavaCollections.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/ktSrc/JavaCollections.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="Analyzer.java" pinned="false" current="true" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/Analyzer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="45" column="32" selection-start="1651" selection-end="1651" vertical-scroll-proportion="-0.15295815">
|
||||
<folding>
|
||||
<element signature="e#5837#5853#0" expanded="true" />
|
||||
<element signature="e#5932#5949#0" expanded="true" />
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#1164#1173#0" expanded="true" />
|
||||
<element signature="e#1537#1546#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="expressionAsFunction.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/function/cases/expressionAsFunction.kt">
|
||||
<file leaf-file-name="AbstractCollection.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://C:/Program Files/Java/jdk1.6.0_29/src.zip!/java/util/AbstractCollection.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="38" column="17" selection-start="665" selection-end="665" vertical-scroll-proportion="0.0">
|
||||
<state line="304" column="0" selection-start="10163" selection-end="10163" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="expressionAsFunction.js" pinned="false" current="true" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/function/out/expressionAsFunction.js">
|
||||
<file leaf-file-name="AbstractList.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://C:/Program Files/Java/jdk1.6.0_29/src.zip!/java/util/AbstractList.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="63" column="19" selection-start="1187" selection-end="1187" vertical-scroll-proportion="0.8668555">
|
||||
<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">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="83" column="46" selection-start="2096" selection-end="2096" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="TranslationContext.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="45" column="33" selection-start="1773" selection-end="1773" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="JsDeclarations.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/ktSrc/jssupport/JsDeclarations.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">
|
||||
<state line="130" column="0" selection-start="4940" selection-end="4940" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@@ -380,30 +382,39 @@
|
||||
</split-first>
|
||||
<split-second>
|
||||
<leaf>
|
||||
<file leaf-file-name="K2JSTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<file leaf-file-name="K2JSTranslator.java" pinned="false" current="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="163" column="0" selection-start="6088" selection-end="6088" vertical-scroll-proportion="0.0">
|
||||
<state line="94" column="83" selection-start="3705" selection-end="3705" vertical-scroll-proportion="0.4">
|
||||
<folding>
|
||||
<element signature="e#3356#3365#0" expanded="true" />
|
||||
<element signature="e#2356#2365#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="TranslationTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TranslationTest.java">
|
||||
<file leaf-file-name="JetFileUtils.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/JetFileUtils.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="91" column="54" selection-start="2993" selection-end="2993" vertical-scroll-proportion="-14.230769">
|
||||
<state line="57" column="8" selection-start="1664" selection-end="1664" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="e#2882#2890#0" expanded="true" />
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="functionsVisibleFromOtherFile.js" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/out/functionsVisibleFromOtherFile.js">
|
||||
<file leaf-file-name="UsefulTestCase.class" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://$APPLICATION_HOME_DIR$/lib/idea.jar!/com/intellij/testFramework/UsefulTestCase.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="147" column="0" selection-start="8506" selection-end="8506" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Arrays.jet" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Arrays.jet">
|
||||
<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 />
|
||||
@@ -411,55 +422,46 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="a.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/a.kt">
|
||||
<file leaf-file-name="Iterables.jet" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Iterables.jet">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="3" column="9" selection-start="39" selection-end="39" 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="b.kt" pinned="false" current="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/b.kt">
|
||||
<file leaf-file-name="Iterators.jet" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Iterators.jet">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="6" column="5" selection-start="69" selection-end="69" vertical-scroll-proportion="0.1401099">
|
||||
<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="ArrayListTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ArrayListTest.java">
|
||||
<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="52" column="70" selection-start="175" selection-end="1100" 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="MultiFileTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/MultiFileTest.java">
|
||||
<file leaf-file-name="Numbers.jet" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Numbers.jet">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="23" column="55" selection-start="561" selection-end="561" 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="String.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://C:/Program Files/Java/jdk1.6.0_29/src.zip!/java/lang/String.java">
|
||||
<file leaf-file-name="Ranges.jet" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Ranges.jet">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="1936" column="0" selection-start="73990" selection-end="73990" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="a.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/functionsVisibleFromOtherFile/a.kt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="2" column="12" selection-start="25" selection-end="25" vertical-scroll-proportion="0.0">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@@ -499,15 +501,9 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="changedFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/patternMatching/out/whenNotValue.js" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/patternMatching/out/whenNotType.js" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/stdlib/cases/Filter.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.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/FunctionTest.java" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/expression/function/cases/expressionAsFunction.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/multiFile/cases/functionsVisibleFromOtherFile/a.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/multiFile/cases/functionsVisibleFromOtherFile/b.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TranslationTest.java" />
|
||||
@@ -515,6 +511,12 @@
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/a.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/b.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/expression/function/out/expressionAsFunction.js" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/libImplementations/jQuery.js" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/JetFileUtils.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/Analyzer.java" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -785,63 +787,7 @@
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="multiFile" />
|
||||
<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="multiFile" />
|
||||
<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_ELEMENT>
|
||||
<option name="myItemId" value="functionsVisibleFromOtherFile" />
|
||||
<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="multiFile" />
|
||||
<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_ELEMENT>
|
||||
<option name="myItemId" value="classesInheritedFromOtherFile" />
|
||||
<option name="myItemId" value="examples" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
@@ -865,7 +811,15 @@
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="stdlib" />
|
||||
<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>
|
||||
@@ -964,34 +918,6 @@
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager" selected="JUnit.All in jetTests">
|
||||
<configuration default="false" name="FunctionTest.expressionAsFunction" type="JUnit" factoryName="JUnit" temporary="true">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="org.jetbrains.k2js.test.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<module name="jetTests" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.FunctionTest" />
|
||||
<option name="METHOD_NAME" value="expressionAsFunction" />
|
||||
<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="FunctionTest" type="JUnit" factoryName="JUnit" temporary="true">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
|
||||
<pattern>
|
||||
@@ -1110,6 +1036,38 @@
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
<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.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<module name="jetTests" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.RangeTest" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="class" />
|
||||
<option name="VM_PARAMETERS" value="-ea" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="ENV_VARIABLES" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="moduleWithDependencies" />
|
||||
</option>
|
||||
<envs />
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="Remote" factoryName="Remote">
|
||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||
<option name="SERVER_MODE" value="false" />
|
||||
@@ -1279,11 +1237,11 @@
|
||||
<item index="0" class="java.lang.String" itemvalue="Applet.Applet" />
|
||||
<item index="1" class="java.lang.String" itemvalue="JUnit.tests" />
|
||||
<item index="2" class="java.lang.String" itemvalue="JUnit.All in jetTests" />
|
||||
<item index="3" class="java.lang.String" itemvalue="JUnit.FunctionTest.expressionAsFunction" />
|
||||
<item index="4" class="java.lang.String" itemvalue="JUnit.FunctionTest" />
|
||||
<item index="5" class="java.lang.String" itemvalue="JUnit.MultiFileTest.functionsVisibleFromOtherFile" />
|
||||
<item index="6" class="java.lang.String" itemvalue="JUnit.MultiFileTest.classesInheritedFromOtherFile" />
|
||||
<item index="7" class="java.lang.String" itemvalue="JUnit.MultiFileTest" />
|
||||
<item index="3" class="java.lang.String" itemvalue="JUnit.FunctionTest" />
|
||||
<item index="4" class="java.lang.String" itemvalue="JUnit.MultiFileTest.functionsVisibleFromOtherFile" />
|
||||
<item index="5" class="java.lang.String" itemvalue="JUnit.MultiFileTest.classesInheritedFromOtherFile" />
|
||||
<item index="6" class="java.lang.String" itemvalue="JUnit.MultiFileTest" />
|
||||
<item index="7" class="java.lang.String" itemvalue="JUnit.RangeTest" />
|
||||
</list>
|
||||
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
||||
<Host>localhost</Host>
|
||||
@@ -1352,7 +1310,7 @@
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
|
||||
<editor active="false" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<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" />
|
||||
@@ -1371,7 +1329,7 @@
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.20363443" sideWeight="0.7588857" order="1" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32977018" sideWeight="0.6570605" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3997862" sideWeight="0.6705998" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.20791021" sideWeight="0.7463977" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2709781" sideWeight="0.7463977" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2536023" sideWeight="0.8530198" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="CodeWindow" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<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" />
|
||||
@@ -1419,7 +1377,7 @@
|
||||
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
|
||||
<option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
|
||||
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="tests for expression as function" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="test for one namespace defined in multiple files" />
|
||||
<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" />
|
||||
@@ -1432,7 +1390,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="changed tests not to use std lib for now /*all tests pass*/" />
|
||||
<MESSAGE value="switch to using ValueParameterDescriptor instead of JetParameter when translating function declarations implemented support for implicit 'it' parameter added 'clear' function to ArrayList temporary implementation" />
|
||||
<MESSAGE value="switch to using descriptors on call site default arguments support" />
|
||||
<MESSAGE value="ongoing refactoring" />
|
||||
@@ -1457,6 +1414,7 @@
|
||||
<MESSAGE value="add filter test" />
|
||||
<MESSAGE value="big refactoring for StandardClasses class" />
|
||||
<MESSAGE value="tests for expression as function" />
|
||||
<MESSAGE value="test for one namespace defined in multiple files" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager />
|
||||
@@ -1466,122 +1424,126 @@
|
||||
<option name="FILTER_TARGETS" value="false" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="146" column="0" selection-start="4560" selection-end="4690" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StringTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="7" column="13" selection-start="104" selection-end="104" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Iterators.jet">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="16" column="59" selection-start="333" selection-end="333" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://C:/Program Files/Java/jdk1.6.0_29/src.zip!/java/lang/String.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="1936" column="0" selection-start="73990" selection-end="73990" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="163" column="0" selection-start="6088" selection-end="6088" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="e#3356#3365#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TranslationTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="91" column="54" selection-start="2993" selection-end="2993" vertical-scroll-proportion="-14.230769">
|
||||
<folding>
|
||||
<element signature="e#2882#2890#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="95" column="58" selection-start="4708" selection-end="4708" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/out/functionsVisibleFromOtherFile.js">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Numbers.jet">
|
||||
<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/src/org/jetbrains/k2js/translate/utils/BindingUtils.java">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Ranges.jet">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="49" column="38" selection-start="2068" selection-end="2068" 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/AppletTest.java">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeWithImports.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="11" column="19" selection-start="264" selection-end="264" vertical-scroll-proportion="0.0">
|
||||
<state line="48" column="0" selection-start="1605" selection-end="1605" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/MultiFileTest.java">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="23" column="55" selection-start="561" selection-end="561" vertical-scroll-proportion="0.0">
|
||||
<state line="292" column="0" selection-start="9854" selection-end="9854" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/functionsVisibleFromOtherFile/b.kt">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/NamespaceDescriptorImpl.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="2" column="21" selection-start="34" selection-end="34" vertical-scroll-proportion="0.0">
|
||||
<state line="42" column="0" selection-start="1336" selection-end="1336" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/functionsVisibleFromOtherFile/a.kt">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="2" column="12" selection-start="25" selection-end="25" vertical-scroll-proportion="0.0">
|
||||
<state line="102" column="0" selection-start="5158" selection-end="5158" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/a.kt">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClass.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="3" column="9" selection-start="39" selection-end="39" vertical-scroll-proportion="0.0">
|
||||
<state line="37" column="0" selection-start="1106" selection-end="1106" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/b.kt">
|
||||
<entry file="jar://$APPLICATION_HOME_DIR$/lib/idea.jar!/com/intellij/testFramework/UsefulTestCase.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="6" column="5" selection-start="69" selection-end="69" vertical-scroll-proportion="0.1401099">
|
||||
<state line="147" column="0" selection-start="8506" selection-end="8506" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/function/out/expressionAsFunction.js">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardLibrary.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="63" column="19" selection-start="1187" selection-end="1187" vertical-scroll-proportion="0.8668555">
|
||||
<state line="112" column="0" selection-start="4966" selection-end="4966" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/JetFileUtils.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="57" column="8" selection-start="1664" selection-end="1664" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="94" column="83" selection-start="3705" selection-end="3705" vertical-scroll-proportion="0.4">
|
||||
<folding>
|
||||
<element signature="e#2356#2365#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/ktSrc/jssupport/JsDeclarations.kt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="1" column="0" selection-start="17" selection-end="18" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://C:/Program Files/Java/jdk1.6.0_29/src.zip!/java/util/AbstractList.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="130" column="0" selection-start="4940" selection-end="4940" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/ktSrc/jssupport/JsSupport.jet">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="10" column="46" selection-start="168" selection-end="168" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://C:/Program Files/Java/jdk1.6.0_29/src.zip!/java/util/AbstractCollection.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="304" column="0" selection-start="10163" selection-end="10163" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/Analyzer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="45" column="32" selection-start="1651" selection-end="1651" vertical-scroll-proportion="-0.15295815">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#1164#1173#0" expanded="true" />
|
||||
<element signature="e#1537#1546#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
<component name="masterDetails">
|
||||
<states>
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
package org.jetbrains.k2js;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.Configuration;
|
||||
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
|
||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiFactory;
|
||||
import org.jetbrains.jet.lang.resolve.*;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Pavel Talanov
|
||||
*/
|
||||
public final class Analyzer {
|
||||
|
||||
private static final List<String> LIB_FILE_NAMES = Arrays.asList(
|
||||
"C:\\Dev\\Projects\\Kotlin\\jet\\stdlib\\ktSrc\\jssupport\\JsSupport.jet",
|
||||
"C:\\Dev\\Projects\\Kotlin\\jet\\stdlib\\ktSrc\\jssupport\\JsDeclarations.kt"
|
||||
);
|
||||
|
||||
@NotNull
|
||||
public static List<JetFile> getJsSupportStdLib() {
|
||||
List<JetFile> libFiles = new ArrayList<JetFile>();
|
||||
for (String libFileName : LIB_FILE_NAMES) {
|
||||
libFiles.add(JetFileUtils.loadPsiFile(libFileName));
|
||||
}
|
||||
return libFiles;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static BindingContext analyzeFiles(@NotNull List<JetFile> files) {
|
||||
final List<JetFile> jsLibFiles = getJsSupportStdLib();
|
||||
List<JetFile> allFiles = new ArrayList<JetFile>();
|
||||
allFiles.addAll(files);
|
||||
allFiles.addAll(jsLibFiles);
|
||||
assert !files.isEmpty();
|
||||
Project project = files.iterator().next().getProject();
|
||||
return AnalyzingUtils.analyzeFiles(project, new JsConfiguration(project),
|
||||
allFiles, new Predicate<PsiFile>() {
|
||||
@Override
|
||||
public boolean apply(@Nullable PsiFile file) {
|
||||
assert file instanceof JetFile;
|
||||
return (!jsLibFiles.contains(file));
|
||||
}
|
||||
}, JetControlFlowDataTraceFactory.EMPTY);
|
||||
}
|
||||
|
||||
private static class JsConfiguration implements Configuration {
|
||||
|
||||
@NotNull
|
||||
private Project project;
|
||||
|
||||
public static JsConfiguration createStandardConfiguration(@NotNull Project project) {
|
||||
return new JsConfiguration(project);
|
||||
}
|
||||
|
||||
private JsConfiguration(@NotNull Project project) {
|
||||
this.project = project;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDefaultImports(@NotNull BindingTrace trace, @NotNull WritableScope rootScope,
|
||||
@NotNull Importer importer) {
|
||||
ImportsResolver.ImportResolver importResolver = new ImportsResolver.ImportResolver(trace, true);
|
||||
importResolver.processImportReference(JetPsiFactory.createImportDirective(project, "js.*"), rootScope, importer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void extendNamespaceScope(@NotNull BindingTrace trace, @NotNull NamespaceDescriptor namespaceDescriptor,
|
||||
@NotNull WritableScope namespaceMemberScope) {
|
||||
}
|
||||
}
|
||||
|
||||
private Analyzer() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package org.jetbrains.k2js;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiFileFactory;
|
||||
import com.intellij.psi.impl.PsiFileFactoryImpl;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.plugin.JetLanguage;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author Pavel Talanov
|
||||
*/
|
||||
public final class JetFileUtils {
|
||||
|
||||
@NotNull
|
||||
private static JetCoreEnvironment environment = new JetCoreEnvironment(new Disposable() {
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@NotNull
|
||||
public static String loadFile(@NotNull String path) throws IOException {
|
||||
return doLoadFile(path);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String doLoadFile(@NotNull String path) throws IOException {
|
||||
String text = FileUtil.loadFile(new File(path), CharsetToolkit.UTF8).trim();
|
||||
text = StringUtil.convertLineSeparators(text);
|
||||
return text;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static JetFile createPsiFile(@NotNull String name, @NotNull String text) {
|
||||
return (JetFile) createFile(name + ".jet", text);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected static JetFile loadPsiFile(@NotNull String name) {
|
||||
try {
|
||||
return createPsiFile(name, loadFile(name));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static PsiFile createFile(@NotNull String name, @NotNull String text) {
|
||||
LightVirtualFile virtualFile = new LightVirtualFile(name, JetLanguage.INSTANCE, text);
|
||||
virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET);
|
||||
return ((PsiFileFactoryImpl) PsiFileFactory.getInstance(environment.getProject()))
|
||||
.trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,30 +1,17 @@
|
||||
package org.jetbrains.k2js;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.dart.compiler.backend.js.ast.JsProgram;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiFileFactory;
|
||||
import com.intellij.psi.impl.PsiFileFactoryImpl;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.AnalyzingUtils;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade;
|
||||
import org.jetbrains.jet.plugin.JetLanguage;
|
||||
import org.jetbrains.k2js.generate.CodeGenerator;
|
||||
import org.jetbrains.k2js.translate.general.Translation;
|
||||
import org.jetbrains.k2js.utils.GenerationUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -40,40 +27,14 @@ import static org.jetbrains.k2js.translate.utils.DescriptorUtils.getNameForNames
|
||||
*/
|
||||
public final class K2JSTranslator {
|
||||
|
||||
private static final List<String> LIB_FILE_NAMES = Arrays.asList(
|
||||
"C:\\Dev\\Projects\\Kotlin\\jet\\stdlib\\ktSrc\\jssupport\\JsSupport.jet",
|
||||
"C:\\Dev\\Projects\\Kotlin\\jet\\stdlib\\ktSrc\\jssupport\\JsDeclarations.kt"
|
||||
);
|
||||
|
||||
@NotNull
|
||||
private JetCoreEnvironment environment = new JetCoreEnvironment(new Disposable() {
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
}
|
||||
});
|
||||
|
||||
public void setEnvironment(JetCoreEnvironment env) {
|
||||
environment = env;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private BindingContext bindingContext = null;
|
||||
|
||||
public K2JSTranslator() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public List<JetFile> getJsSupportStdLib() {
|
||||
List<JetFile> libFiles = new ArrayList<JetFile>();
|
||||
for (String libFileName : LIB_FILE_NAMES) {
|
||||
libFiles.add(loadPsiFile(libFileName));
|
||||
}
|
||||
return libFiles;
|
||||
}
|
||||
|
||||
public void translateFile(@NotNull String inputFile, @NotNull String outputFile) throws Exception {
|
||||
JetFile psiFile = loadPsiFile(inputFile);
|
||||
JetFile psiFile = JetFileUtils.loadPsiFile(inputFile);
|
||||
// includeRtJar();
|
||||
JsProgram program = generateProgram(Arrays.asList(psiFile));
|
||||
CodeGenerator generator = new CodeGenerator();
|
||||
@@ -91,14 +52,14 @@ public final class K2JSTranslator {
|
||||
private List<JetFile> createPsiFileList(@NotNull List<String> inputFiles) {
|
||||
List<JetFile> psiFiles = new ArrayList<JetFile>();
|
||||
for (String inputFile : inputFiles) {
|
||||
psiFiles.add(loadPsiFile(inputFile));
|
||||
psiFiles.add(JetFileUtils.loadPsiFile(inputFile));
|
||||
}
|
||||
return psiFiles;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String translateStringWithCallToMain(@NotNull String programText, @NotNull String argumentsString) {
|
||||
JetFile file = createPsiFile("test", programText);
|
||||
JetFile file = JetFileUtils.createPsiFile("test", programText);
|
||||
String programCode = generateProgramCode(file) + "\n";
|
||||
String flushOutput = "Kotlin.System.flush();\n";
|
||||
String callToMain = generateCallToMain(file, argumentsString);
|
||||
@@ -114,65 +75,17 @@ public final class K2JSTranslator {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private JsProgram generateProgram(@NotNull List<JetFile> psiFiles) {
|
||||
|
||||
List<JetFile> files = getJsSupportStdLib();
|
||||
files.addAll(psiFiles);
|
||||
bindingContext = AnalyzerFacade.analyzeFilesWithJavaIntegration
|
||||
(psiFiles.iterator().next().getProject(), files, new Predicate<PsiFile>() {
|
||||
@Override
|
||||
public boolean apply(@Nullable PsiFile file) {
|
||||
for (String libFileName : LIB_FILE_NAMES) {
|
||||
if (libFileName.contains(file.getName().substring(0, file.getName().lastIndexOf('.')))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}, JetControlFlowDataTraceFactory.EMPTY);
|
||||
for (PsiFile file : psiFiles) {
|
||||
private JsProgram generateProgram(@NotNull List<JetFile> files) {
|
||||
bindingContext = Analyzer.analyzeFiles(files);
|
||||
for (PsiFile file : files) {
|
||||
AnalyzingUtils.checkForSyntacticErrors(file);
|
||||
AnalyzingUtils.throwExceptionOnErrors(bindingContext);
|
||||
}
|
||||
assert bindingContext != null;
|
||||
return Translation.generateAst(bindingContext, psiFiles.iterator().next(), environment.getProject());
|
||||
JetFile file = files.iterator().next();
|
||||
return Translation.generateAst(bindingContext, file, file.getProject());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected String loadFile(@NotNull String path) throws IOException {
|
||||
return doLoadFile(path);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected String doLoadFile(@NotNull String path) throws IOException {
|
||||
String text = FileUtil.loadFile(new File(path), CharsetToolkit.UTF8).trim();
|
||||
text = StringUtil.convertLineSeparators(text);
|
||||
return text;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected JetFile createPsiFile(@NotNull String name, @NotNull String text) {
|
||||
return (JetFile) createFile(name + ".jet", text);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected JetFile loadPsiFile(@NotNull String name) {
|
||||
try {
|
||||
return createPsiFile(name, loadFile(name));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected PsiFile createFile(@NotNull String name, @NotNull String text) {
|
||||
LightVirtualFile virtualFile = new LightVirtualFile(name, JetLanguage.INSTANCE, text);
|
||||
virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET);
|
||||
return ((PsiFileFactoryImpl) PsiFileFactory.getInstance(environment.getProject()))
|
||||
.trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false);
|
||||
}
|
||||
|
||||
|
||||
@NotNull
|
||||
public String generateCallToMain(@NotNull JetFile file, @NotNull String argumentString) {
|
||||
String namespaceName = getRootNamespaceName(file);
|
||||
|
||||
@@ -5,21 +5,15 @@ import com.google.dart.compiler.backend.js.ast.JsScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.types.JetStandardLibrary;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getFQName;
|
||||
import static org.jetbrains.k2js.translate.utils.DescriptorUtils.getContainingDeclaration;
|
||||
import static org.jetbrains.k2js.translate.utils.DescriptorUtils.getFunctionByName;
|
||||
|
||||
/**
|
||||
* @author Pavel Talanov
|
||||
*/
|
||||
//TODO: REFACTOR FFS
|
||||
public final class StandardClasses {
|
||||
|
||||
private final class Builder {
|
||||
@@ -27,7 +21,7 @@ public final class StandardClasses {
|
||||
@Nullable
|
||||
private /*var*/ String currentFQName = null;
|
||||
@Nullable
|
||||
private /*var*/ String currentKotlinName = null;
|
||||
private /*var*/ String currentObjectName = null;
|
||||
|
||||
@NotNull
|
||||
public Builder forFQ(@NotNull String classFQName) {
|
||||
@@ -36,142 +30,166 @@ public final class StandardClasses {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Builder kotlinName(@NotNull String kotlinName) {
|
||||
assert currentFQName != null;
|
||||
currentKotlinName = kotlinName;
|
||||
declareStandardTopLevelObject(currentFQName, kotlinName);
|
||||
public Builder kotlinClass(@NotNull String kotlinName) {
|
||||
kotlinTopLevelObject(kotlinName);
|
||||
constructor();
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Builder externalClass(@NotNull String nativeName) {
|
||||
externalObject(nativeName);
|
||||
constructor();
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Builder externalFunction(@NotNull String nativeName) {
|
||||
externalObject(nativeName);
|
||||
return this;
|
||||
}
|
||||
|
||||
private void externalObject(@NotNull String nativeName) {
|
||||
currentObjectName = nativeName;
|
||||
assert currentFQName != null;
|
||||
declareExternalTopLevelObject(currentFQName, nativeName);
|
||||
}
|
||||
|
||||
private void kotlinTopLevelObject(@NotNull String kotlinName) {
|
||||
assert currentFQName != null;
|
||||
currentObjectName = kotlinName;
|
||||
declareKotlinObject(currentFQName, kotlinName);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Builder kotlinFunction(@NotNull String kotlinName) {
|
||||
kotlinTopLevelObject(kotlinName);
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private Builder constructor() {
|
||||
assert currentFQName != null;
|
||||
assert currentKotlinName != null;
|
||||
declareStandardInnerDeclaration(currentFQName, "<init>", currentKotlinName);
|
||||
assert currentObjectName != null;
|
||||
declareInner(currentFQName, "<init>", currentObjectName);
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Builder methods(String... methodNames) {
|
||||
public Builder methods(@NotNull String... methodNames) {
|
||||
assert currentFQName != null;
|
||||
declareMethods(currentFQName, methodNames);
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Builder properties(String... propertyNames) {
|
||||
public Builder properties(@NotNull String... propertyNames) {
|
||||
assert currentFQName != null;
|
||||
declareReadonlyProperties(currentFQName, propertyNames);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: move declaration code to some kind of builder
|
||||
@NotNull
|
||||
public static StandardClasses bindImplementations(@NotNull JetStandardLibrary standardLibrary,
|
||||
@NotNull JsScope kotlinObjectScope) {
|
||||
StandardClasses standardClasses = new StandardClasses(kotlinObjectScope);
|
||||
declareJetObjects(standardLibrary, standardClasses);
|
||||
public static StandardClasses bindImplementations(@NotNull JsScope kotlinObjectScope,
|
||||
@NotNull JsScope rootScope) {
|
||||
StandardClasses standardClasses = new StandardClasses(kotlinObjectScope, rootScope);
|
||||
declareJetObjects(standardClasses);
|
||||
declareJavaUtilObjects(standardClasses);
|
||||
declareTopLevelFunctions(standardClasses);
|
||||
declareInteger(standardClasses);
|
||||
declareJQuery(standardClasses);
|
||||
return standardClasses;
|
||||
}
|
||||
|
||||
private static void declareJQuery(@NotNull StandardClasses standardClasses) {
|
||||
standardClasses.declare().forFQ("jquery.JQuery").externalClass("jQuery")
|
||||
.methods("addClass", "attr", "hasClass");
|
||||
standardClasses.declare().forFQ("jquery").externalFunction("jq");
|
||||
}
|
||||
|
||||
//TODO: test all the methods
|
||||
private static void declareJavaUtilObjects(@NotNull StandardClasses standardClasses) {
|
||||
standardClasses.declare().forFQ("java.util.ArrayList").kotlinName("ArrayList")
|
||||
standardClasses.declare().forFQ("java.util.ArrayList").kotlinClass("ArrayList")
|
||||
.methods("size", "add", "get", "isEmpty", "set", "remove", "addAll", "contains", "clear", "iterator");
|
||||
|
||||
standardClasses.declare().forFQ("java.util.Collection").kotlinName("Collection")
|
||||
standardClasses.declare().forFQ("java.util.Collection").kotlinClass("Collection")
|
||||
.methods("iterator");
|
||||
|
||||
standardClasses.declare().forFQ("java.util.HashMap").kotlinName("HashMap")
|
||||
standardClasses.declare().forFQ("java.util.HashMap").kotlinClass("HashMap")
|
||||
.methods("size", "put", "get", "isEmpty", "remove", "addAll", "clear", "keySet");
|
||||
|
||||
standardClasses.declare().forFQ("java.util.StringBuilder").kotlinName("StringBuilder")
|
||||
standardClasses.declare().forFQ("java.util.StringBuilder").kotlinClass("StringBuilder")
|
||||
.methods("append", "toString");
|
||||
|
||||
standardClasses.declare().forFQ("java.util.Map").kotlinName("Map")
|
||||
standardClasses.declare().forFQ("java.util.Map").kotlinClass("Map")
|
||||
.methods("size", "put", "get", "isEmpty", "remove", "addAll", "clear", "keySet");
|
||||
|
||||
standardClasses.declare().forFQ("Integer").kotlinClass("Integer")
|
||||
.methods("parseInt");
|
||||
}
|
||||
|
||||
private static void declareJetObjects(@NotNull JetStandardLibrary standardLibrary,
|
||||
@NotNull StandardClasses standardClasses) {
|
||||
declareArray(standardClasses, standardLibrary);
|
||||
private static void declareJetObjects(@NotNull StandardClasses standardClasses) {
|
||||
standardClasses.declare().forFQ("jet.Array").kotlinClass("Array")
|
||||
.properties("size", "indices");
|
||||
|
||||
standardClasses.declare().forFQ("jet.Iterator").kotlinName("ArrayIterator")
|
||||
standardClasses.declare().forFQ("jet.Array").kotlinFunction("array");
|
||||
|
||||
standardClasses.declare().forFQ("jet.Iterator").kotlinClass("ArrayIterator")
|
||||
.methods("next", "hasNext");
|
||||
|
||||
standardClasses.declare().forFQ("jet.IntRange").kotlinName("NumberRange")
|
||||
standardClasses.declare().forFQ("jet.IntRange").kotlinClass("NumberRange")
|
||||
.methods("iterator", "contains").properties("start", "size", "end", "reversed");
|
||||
|
||||
standardClasses.declare().forFQ("jet.String").kotlinName("String").
|
||||
standardClasses.declare().forFQ("jet.String").kotlinClass("String").
|
||||
properties("length");
|
||||
}
|
||||
|
||||
//TODO: refactor
|
||||
private static void declareTopLevelFunctions(@NotNull StandardClasses standardClasses) {
|
||||
String parseIntFQName = "js.parseInt";
|
||||
standardClasses.declareStandardTopLevelObject(parseIntFQName, "parseInt");
|
||||
String printlnFQName = "js.println";
|
||||
standardClasses.declareStandardTopLevelObject(printlnFQName, "println");
|
||||
String printFQName = "js.print";
|
||||
standardClasses.declareStandardTopLevelObject(printFQName, "print");
|
||||
}
|
||||
|
||||
private static void declareInteger(@NotNull StandardClasses standardClasses) {
|
||||
String integerFQName = "Integer";
|
||||
standardClasses.declareStandardTopLevelObject(integerFQName, "Integer");
|
||||
standardClasses.declareStandardInnerDeclaration(integerFQName, "parseInt", "parseInt");
|
||||
}
|
||||
|
||||
private static void declareArray(@NotNull StandardClasses standardClasses,
|
||||
@NotNull JetStandardLibrary standardLibrary) {
|
||||
standardClasses.declare().forFQ("jet.Array").kotlinName("Array")
|
||||
.properties("size", "indices");
|
||||
FunctionDescriptor nullConstructorFunction = getFunctionByName(standardLibrary.getLibraryScope(), "Array");
|
||||
standardClasses.declareTopLevel(nullConstructorFunction, "array");
|
||||
standardClasses.declare().forFQ("js.parseInt").kotlinFunction("parseInt");
|
||||
standardClasses.declare().forFQ("js.println").kotlinFunction("println");
|
||||
standardClasses.declare().forFQ("js.print").kotlinFunction("print");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private final JsScope kotlinScope;
|
||||
|
||||
@NotNull
|
||||
private final JsScope rootScope;
|
||||
|
||||
@NotNull
|
||||
private final Map<String, JsName> nameMap = new HashMap<String, JsName>();
|
||||
|
||||
@NotNull
|
||||
private final Map<String, JsScope> scopeMap = new HashMap<String, JsScope>();
|
||||
|
||||
private StandardClasses(@NotNull JsScope kotlinScope) {
|
||||
private StandardClasses(@NotNull JsScope kotlinScope, @NotNull JsScope rootScope) {
|
||||
this.rootScope = rootScope;
|
||||
this.kotlinScope = kotlinScope;
|
||||
}
|
||||
|
||||
private void declareTopLevel(@NotNull DeclarationDescriptor descriptor,
|
||||
@NotNull String kotlinLibName) {
|
||||
declareStandardTopLevelObject(DescriptorUtils.getFQName(descriptor), kotlinLibName);
|
||||
}
|
||||
|
||||
private void declareStandardTopLevelObject(@NotNull String fullQualifiedName, @NotNull String kotlinLibName) {
|
||||
JsName declaredName = kotlinScope.declareName(kotlinLibName);
|
||||
private void declareTopLevelObjectInScope(@NotNull JsScope scope,
|
||||
@NotNull String fullQualifiedName, @NotNull String name) {
|
||||
JsName declaredName = scope.declareName(name);
|
||||
declaredName.setObfuscatable(false);
|
||||
nameMap.put(fullQualifiedName, declaredName);
|
||||
scopeMap.put(fullQualifiedName, new JsScope(kotlinScope, "standard object " + kotlinLibName));
|
||||
scopeMap.put(fullQualifiedName, new JsScope(scope, "scope for " + name));
|
||||
}
|
||||
|
||||
private void declareInner(@NotNull DeclarationDescriptor descriptor,
|
||||
@NotNull String kotlinLibName) {
|
||||
String containingFQName = DescriptorUtils.getFQName(getContainingDeclaration(descriptor));
|
||||
declareStandardInnerDeclaration(containingFQName, descriptor.getName(), kotlinLibName);
|
||||
private void declareKotlinObject(@NotNull String fullQualifiedName, @NotNull String kotlinLibName) {
|
||||
declareTopLevelObjectInScope(kotlinScope, fullQualifiedName, kotlinLibName);
|
||||
}
|
||||
|
||||
private void declareStandardInnerDeclaration(@NotNull String fullQualifiedClassName,
|
||||
@NotNull String shortMethodName,
|
||||
@NotNull String kotlinLibName) {
|
||||
private void declareExternalTopLevelObject(@NotNull String fullQualifiedName, @NotNull String externalObjectName) {
|
||||
declareTopLevelObjectInScope(rootScope, fullQualifiedName, externalObjectName);
|
||||
}
|
||||
|
||||
private void declareInner(@NotNull String fullQualifiedClassName,
|
||||
@NotNull String shortMethodName,
|
||||
@NotNull String javascriptName) {
|
||||
JsScope classScope = scopeMap.get(fullQualifiedClassName);
|
||||
assert classScope != null;
|
||||
String fullQualifiedMethodName = fullQualifiedClassName + "." + shortMethodName;
|
||||
JsName declaredName = classScope.declareName(kotlinLibName);
|
||||
JsName declaredName = classScope.declareName(javascriptName);
|
||||
declaredName.setObfuscatable(false);
|
||||
nameMap.put(fullQualifiedMethodName, declaredName);
|
||||
}
|
||||
@@ -179,14 +197,14 @@ public final class StandardClasses {
|
||||
private void declareMethods(@NotNull String classFQName,
|
||||
@NotNull String... methodNames) {
|
||||
for (String methodName : methodNames) {
|
||||
declareStandardInnerDeclaration(classFQName, methodName, methodName);
|
||||
declareInner(classFQName, methodName, methodName);
|
||||
}
|
||||
}
|
||||
|
||||
private void declareReadonlyProperties(@NotNull String classFQName,
|
||||
@NotNull String... propertyNames) {
|
||||
for (String propertyName : propertyNames) {
|
||||
declareStandardInnerDeclaration(classFQName, propertyName, propertyName);
|
||||
declareInner(classFQName, propertyName, propertyName);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,8 @@ public class StaticContext {
|
||||
NamingScope scope = NamingScope.rootScope(jsRootScope);
|
||||
Declarations declarations = Declarations.newInstance(scope);
|
||||
Intrinsics intrinsics = Intrinsics.standardLibraryIntrinsics(library);
|
||||
StandardClasses standardClasses = StandardClasses.bindImplementations(library, namer.getKotlinScope());
|
||||
StandardClasses standardClasses =
|
||||
StandardClasses.bindImplementations(namer.getKotlinScope(), jsRootScope);
|
||||
return new StaticContext(program, bindingContext, declarations, aliaser,
|
||||
namer, intrinsics, standardClasses, scope);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user