test for one namespace defined in multiple files

This commit is contained in:
Pavel Talanov
2012-01-26 15:45:07 +04:00
parent 3fcd330a5a
commit ec32d2ad21
8 changed files with 386 additions and 358 deletions
+274 -333
View File
@@ -10,14 +10,19 @@
</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="85" />
<bookmark url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" line="103" />
<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/expression/function/cases/expressionAsFunction.kt" />
<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="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java" />
<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" />
</list>
<ignored path="k2js.iws" />
<ignored path=".idea/workspace.xml" />
@@ -275,7 +280,7 @@
<favorites_list name="k2js" />
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.63900137">
<splitter split-orientation="horizontal" split-proportion="0.37246963">
<split-first>
<leaf>
<file leaf-file-name="whenNotType.js" pinned="false" current="false" current-in-tab="false">
@@ -338,7 +343,7 @@
<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">
<provider selected="true" editor-type-id="text-editor">
<state line="84" column="60" selection-start="1528" selection-end="1528" vertical-scroll-proportion="1.331044">
<state line="63" column="19" selection-start="1187" selection-end="1187" vertical-scroll-proportion="0.8668555">
<folding />
</state>
</provider>
@@ -375,74 +380,13 @@
</split-first>
<split-second>
<leaf>
<file leaf-file-name="twoElements.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/tuple/cases/twoElements.kt">
<file leaf-file-name="K2JSTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="4" column="39" selection-start="108" selection-end="108" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="multipleMembers.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/tuple/cases/multipleMembers.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="12" column="81" selection-start="446" selection-end="446" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="TupleTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TupleTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="23" column="41" selection-start="492" selection-end="492" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<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="0" column="11" selection-start="10" selection-end="11" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<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="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Iterators.jet" pinned="false" current="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Iterators.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.14447592">
<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">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="0" selection-start="539" selection-end="539" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JetVisitor.java" pinned="false" current="false" current-in-tab="false">
<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 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>
@@ -450,16 +394,81 @@
<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">
<provider selected="true" editor-type-id="text-editor">
<state line="2" column="0" selection-start="34" selection-end="34" vertical-scroll-proportion="0.0">
<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>
</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">
<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="StringTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StringTest.java">
<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">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="13" selection-start="104" selection-end="104" vertical-scroll-proportion="0.0">
<state line="3" column="9" selection-start="39" selection-end="39" 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">
<provider selected="true" editor-type-id="text-editor">
<state line="6" column="5" selection-start="69" selection-end="69" vertical-scroll-proportion="0.1401099">
<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">
<provider selected="true" editor-type-id="text-editor">
<state line="52" column="70" selection-start="175" selection-end="1100" 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">
<provider selected="true" editor-type-id="text-editor">
<state line="23" column="55" selection-start="561" selection-end="561" 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">
<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">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="b.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/functionsVisibleFromOtherFile/b.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="2" column="21" selection-start="34" selection-end="34" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -490,14 +499,6 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StdlibTest.java" />
<option value="$PROJECT_DIR$/../../Kotlin/jet/stdlib/ktSrc/jssupport/JsSupport.jet" />
<option value="$PROJECT_DIR$/translator/testFiles/examples/cases/inheritedMethod.jet" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/ClassSorter.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java" />
<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" />
@@ -506,6 +507,14 @@
<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" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/MultiFileTest.java" />
<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" />
</list>
</option>
</component>
@@ -776,47 +785,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="stdlib" />
<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="stdlib" />
<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="patternMatching" />
<option name="myItemId" value="multiFile" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
@@ -838,29 +807,15 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="patternMatching" />
<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>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="testFiles" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="expression" />
<option name="myItemId" value="functionsVisibleFromOtherFile" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@@ -878,43 +833,31 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="expression" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="function" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="out" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="testFiles" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="expression" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="function" />
<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="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="test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -1020,100 +963,7 @@
<recent name="org.jetbrains.k2js.test.examples" />
</key>
</component>
<component name="RunManager" selected="JUnit.FunctionTest">
<configuration default="false" name="TupleTest" type="JUnit" factoryName="JUnit" temporary="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<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.TupleTest" />
<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="Run" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="StdlibTest" 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.*" />
<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.StdlibTest" />
<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="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>
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="StdlibTest.filter" 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.*" />
<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.StdlibTest" />
<option name="METHOD_NAME" value="filter" />
<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>
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<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>
@@ -1170,6 +1020,96 @@
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="MultiFileTest.functionsVisibleFromOtherFile" 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.MultiFileTest" />
<option name="METHOD_NAME" value="functionsVisibleFromOtherFile" />
<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="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="MultiFileTest.classesInheritedFromOtherFile" 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.MultiFileTest" />
<option name="METHOD_NAME" value="classesInheritedFromOtherFile" />
<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="MultiFileTest" 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.MultiFileTest" />
<option name="METHOD_NAME" value="classesInheritedFromOtherFile" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
@@ -1339,11 +1279,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.TupleTest" />
<item index="4" class="java.lang.String" itemvalue="JUnit.StdlibTest" />
<item index="5" class="java.lang.String" itemvalue="JUnit.StdlibTest.filter" />
<item index="6" class="java.lang.String" itemvalue="JUnit.FunctionTest.expressionAsFunction" />
<item index="7" class="java.lang.String" itemvalue="JUnit.FunctionTest" />
<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" />
</list>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host>
@@ -1412,7 +1352,7 @@
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
<editor active="true" />
<editor active="false" />
<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" />
@@ -1432,7 +1372,7 @@
<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="Run" active="false" 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="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" />
<window_info id="ResolveWindow" 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" />
@@ -1479,7 +1419,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="big refactoring for StandardClasses class" />
<option name="LAST_COMMIT_MESSAGE" value="tests for expression as function" />
<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" />
@@ -1492,7 +1432,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="resolved part of the problem" />
<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&#10;implemented support for implicit 'it' parameter&#10;added 'clear' function to ArrayList temporary implementation" />
<MESSAGE value="switch to using descriptors on call site&#10;default arguments support" />
@@ -1517,6 +1456,7 @@
<MESSAGE value="expression as statement bug fixed" />
<MESSAGE value="add filter test" />
<MESSAGE value="big refactoring for StandardClasses class" />
<MESSAGE value="tests for expression as function" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
@@ -1526,117 +1466,118 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenNotType.kt">
<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="11" column="44" selection-start="122" selection-end="122" vertical-scroll-proportion="0.0">
<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/testFiles/patternMatching/out/whenNotValue.js">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StringTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="41" selection-start="203" selection-end="203" vertical-scroll-proportion="0.0">
<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$/translator/testFiles/patternMatching/out/whenNotType.js">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Iterators.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="5" selection-start="201" selection-end="201" vertical-scroll-proportion="0.0">
<state line="16" column="59" selection-start="333" selection-end="333" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StdlibTest.java">
<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="16" column="16" selection-start="305" selection-end="305" vertical-scroll-proportion="0.0">
<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$/js/src/com/google/dart/compiler/backend/js/ast/JsBreak.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="19" selection-start="340" selection-end="340" vertical-scroll-proportion="0.0">
<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/stdlib/cases/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">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/CallTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="85" column="13" selection-start="4057" selection-end="4057" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="77" column="11" selection-start="2945" selection-end="2945" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlin_lib.js">
<provider selected="true" editor-type-id="text-editor">
<state line="791" column="60" selection-start="22661" selection-end="22661" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/stdlib/ktSrc/jssupport/JsDeclarations.kt">
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/out/functionsVisibleFromOtherFile.js">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.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">
<state line="49" column="38" selection-start="2068" selection-end="2068" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/AppletTest.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="11" column="19" selection-start="264" selection-end="264" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/MultiFileTest.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">
<folding>
<element signature="e#5837#5853#0" expanded="true" />
<element signature="e#5932#5949#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<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">
<state line="23" column="55" selection-start="561" selection-end="561" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/function/cases/expressionAsFunction.kt">
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/functionsVisibleFromOtherFile/b.kt">
<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="2" column="21" selection-start="34" selection-end="34" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<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">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/a.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="3" column="9" selection-start="39" selection-end="39" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/multiFile/cases/classesInheritedFromOtherFile/b.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="6" column="5" selection-start="69" selection-end="69" vertical-scroll-proportion="0.1401099">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/function/out/expressionAsFunction.js">
<provider selected="true" editor-type-id="text-editor">
<state line="84" column="60" selection-start="1528" selection-end="1528" vertical-scroll-proportion="1.331044">
<state line="63" column="19" selection-start="1187" selection-end="1187" vertical-scroll-proportion="0.8668555">
<folding />
</state>
</provider>
@@ -12,7 +12,6 @@ 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.CompileEnvironment;
import org.jetbrains.jet.compiler.JetCoreEnvironment;
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
import org.jetbrains.jet.lang.psi.JetFile;
@@ -34,6 +33,8 @@ import java.util.StringTokenizer;
import static org.jetbrains.k2js.translate.utils.BindingUtils.getNamespaceDescriptor;
import static org.jetbrains.k2js.translate.utils.DescriptorUtils.getNameForNamespace;
//TODO: clean up the code
/**
* @author Pavel Talanov
*/
@@ -72,13 +73,29 @@ public final class K2JSTranslator {
}
public void translateFile(@NotNull String inputFile, @NotNull String outputFile) throws Exception {
JetFile PsiFile = loadPsiFile(inputFile);
JetFile psiFile = loadPsiFile(inputFile);
// includeRtJar();
JsProgram program = generateProgram(PsiFile);
JsProgram program = generateProgram(Arrays.asList(psiFile));
CodeGenerator generator = new CodeGenerator();
generator.generateToFile(program, new File(outputFile));
}
public void translateFiles(@NotNull List<String> inputFiles, @NotNull String outputFile) throws Exception {
List<JetFile> psiFiles = createPsiFileList(inputFiles);
JsProgram program = generateProgram(psiFiles);
CodeGenerator generator = new CodeGenerator();
generator.generateToFile(program, new File(outputFile));
}
@NotNull
private List<JetFile> createPsiFileList(@NotNull List<String> inputFiles) {
List<JetFile> psiFiles = new ArrayList<JetFile>();
for (String inputFile : inputFiles) {
psiFiles.add(loadPsiFile(inputFile));
}
return psiFiles;
}
@NotNull
public String translateStringWithCallToMain(@NotNull String programText, @NotNull String argumentsString) {
JetFile file = createPsiFile("test", programText);
@@ -91,37 +108,34 @@ public final class K2JSTranslator {
@NotNull
private String generateProgramCode(@NotNull JetFile psiFile) {
JsProgram program = generateProgram(psiFile);
JsProgram program = generateProgram(Arrays.asList(psiFile));
CodeGenerator generator = new CodeGenerator();
return generator.generateToString(program);
}
@NotNull
private JsProgram generateProgram(@NotNull JetFile psiFile) {
private JsProgram generateProgram(@NotNull List<JetFile> psiFiles) {
List<JetFile> files = getJsSupportStdLib();
files.add(psiFile);
bindingContext = AnalyzerFacade.analyzeFilesWithJavaIntegration(psiFile.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;
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;
}
}
return true;
}
}, JetControlFlowDataTraceFactory.EMPTY);
}, JetControlFlowDataTraceFactory.EMPTY);
for (PsiFile file : psiFiles) {
AnalyzingUtils.checkForSyntacticErrors(file);
AnalyzingUtils.throwExceptionOnErrors(bindingContext);
}
assert bindingContext != null;
AnalyzingUtils.checkForSyntacticErrors(psiFile);
AnalyzingUtils.throwExceptionOnErrors(bindingContext);
return Translation.generateAst(bindingContext, psiFile, environment.getProject());
}
private void includeRtJar() {
final File rtJar = CompileEnvironment.findRtJar();
environment.addToClasspath(rtJar);
return Translation.generateAst(bindingContext, psiFiles.iterator().next(), environment.getProject());
}
@NotNull
@@ -0,0 +1,31 @@
package org.jetbrains.k2js.test;
import org.junit.Test;
/**
* @author Pavel Talanov
*/
public final class MultiFileTest extends TranslationTest {
final private static String MAIN = "multiFile/";
@Override
protected String mainDirectory() {
return MAIN;
}
@Test
public void functionsVisibleFromOtherFile() throws Exception {
testFooBoxIsTrue("functionsVisibleFromOtherFile");
}
@Test
public void classesInheritedFromOtherFile() throws Exception {
testFooBoxIsTrue("classesInheritedFromOtherFile");
}
@Override
protected void testFooBoxIsTrue(String dirName) throws Exception {
testMultiFile(dirName, "foo", "box", true);
}
}
@@ -11,9 +11,11 @@ import java.io.IOException;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
//TODO: spread the test* methods amongst classes that actually use them
/**
* @author Pavel Talanov
@@ -71,10 +73,28 @@ public abstract class TranslationTest {
new RhinoFunctionResultChecker(namespaceName, functionName, expectedResult));
}
protected void testMultiFile(String dirName, String namespaceName,
String functionName, Object expectedResult) throws Exception {
translateFilesInDir(dirName);
runRhinoTest(generateFilenameList(getOutputFilePath(dirName + ".kt")),
new RhinoFunctionResultChecker(namespaceName, functionName, expectedResult));
}
protected void translateFile(String filename) throws Exception {
(new K2JSTranslator()).translateFile(getInputFilePath(filename), getOutputFilePath(filename));
}
protected void translateFilesInDir(String dirName) throws Exception {
String dirPath = getInputFilePath(dirName);
File dir = new File(dirPath);
List<String> fullFilePaths = new ArrayList<String>();
for (String fileName : dir.list()) {
fullFilePaths.add(getInputFilePath(dirName) + "\\" + fileName);
}
assert dir.isDirectory();
(new K2JSTranslator()).translateFiles(fullFilePaths, getOutputFilePath(dirName + ".kt"));
}
protected List<String> generateFilenameList(String inputFile) {
return Arrays.asList(kotlinLibraryPath(), inputFile);
}
@@ -0,0 +1,9 @@
package foo
open class A() {
open fun f() = 3;
}
open class C() : B() {
override fun f() = 5
}
@@ -0,0 +1,7 @@
package foo
open class B() : A() {
override fun f() = 4
}
fun box() = (A().f() == 3) && (B().f() == 4) && (C().f() == 5)
@@ -0,0 +1,3 @@
package foo
fun f() = 3;
@@ -0,0 +1,3 @@
package foo
fun box() = (f() == 3)