using LibraryClass and LibraryFun(String) annotations to mark declarations that have custom implementations inside kotlin_lib.js

This commit is contained in:
Pavel Talanov
2012-01-30 23:25:08 +04:00
parent e4d43c5147
commit 0f823a64f4
7 changed files with 219 additions and 230 deletions
+193 -162
View File
@@ -13,16 +13,13 @@
</component>
<component name="ChangeListManager">
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/jslib/src/core/javalang.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/AnnotatedDeclarationVisitor.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/LibraryDeclarationVisitor.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" afterPath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/jslib/src/core/javautil.kt" afterPath="$PROJECT_DIR$/jslib/src/core/javautil.kt" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/config/Config.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/config/Config.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" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/AnnotationsUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/AnnotationsUtils.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/DeclarationFacade.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/DeclarationFacade.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/KotlinDeclarationVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/KotlinDeclarationVisitor.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/NativeDeclarationVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/NativeDeclarationVisitor.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java" />
</list>
<ignored path="k2js.iws" />
<ignored path=".idea/workspace.xml" />
@@ -122,40 +119,13 @@
<favorites_list name="k2js" />
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.6443403">
<splitter split-orientation="horizontal" split-proportion="0.4949225">
<split-first>
<leaf>
<file leaf-file-name="javautil.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/jslib/src/core/javautil.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="21" column="45" selection-start="1034" selection-end="1038" vertical-scroll-proportion="-10.769231">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="javalang.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/jslib/src/core/javalang.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="6" column="25" selection-start="114" selection-end="114" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="builder.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/webDemoExamples2/cases/builder.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="130" column="19" selection-start="3319" selection-end="3319" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="NativeDeclarationVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/NativeDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="3" selection-start="333" selection-end="333" vertical-scroll-proportion="0.0">
<state line="10" column="19" selection-start="382" selection-end="382" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -163,10 +133,30 @@
</provider>
</entry>
</file>
<file leaf-file-name="DeclarationFacade.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/DeclarationFacade.java">
<provider selected="true" editor-type-id="text-editor">
<state line="22" column="19" selection-start="918" selection-end="918" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Translation.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java">
<provider selected="true" editor-type-id="text-editor">
<state line="107" column="59" selection-start="5436" selection-end="5436" vertical-scroll-proportion="0.5597609">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="LibraryDeclarationVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/LibraryDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="101" selection-start="636" selection-end="636" vertical-scroll-proportion="0.0">
<state line="10" column="19" selection-start="384" selection-end="384" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -174,10 +164,19 @@
</provider>
</entry>
</file>
<file leaf-file-name="KotlinDeclarationVisitor.java" pinned="false" current="true" current-in-tab="true">
<file leaf-file-name="TemporaryVariable.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TemporaryVariable.java">
<provider selected="true" editor-type-id="text-editor">
<state line="11" column="19" selection-start="362" selection-end="362" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="KotlinDeclarationVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/KotlinDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="25" column="24" selection-start="985" selection-end="985" vertical-scroll-proportion="0.8110687">
<state line="19" column="24" selection-start="735" selection-end="735" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -188,7 +187,7 @@
<file leaf-file-name="AnnotationsUtils.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/AnnotationsUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="43" column="41" selection-start="1680" selection-end="1680" vertical-scroll-proportion="0.0">
<state line="24" column="88" selection-start="963" selection-end="963" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -265,10 +264,10 @@
</provider>
</entry>
</file>
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="false" current-in-tab="true">
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="133" column="0" selection-start="6129" selection-end="6129" vertical-scroll-proportion="-0.3627685">
<state line="133" column="0" selection-start="6129" selection-end="6129" vertical-scroll-proportion="5.8461537">
<folding />
</state>
</provider>
@@ -312,10 +311,10 @@
</provider>
</entry>
</file>
<file leaf-file-name="StandardClasses.java" pinned="false" current="false" current-in-tab="false">
<file leaf-file-name="StandardClasses.java" pinned="false" current="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java">
<provider selected="true" editor-type-id="text-editor">
<state line="155" column="81" selection-start="6052" selection-end="6052" vertical-scroll-proportion="0.0">
<state line="37" column="0" selection-start="1028" selection-end="1028" vertical-scroll-proportion="-3.4122138">
<folding />
</state>
</provider>
@@ -346,9 +345,6 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/translator/testFiles/kotlin_lib.js" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ConditionalTest.java" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/conditional/cases/ifAsExpressionWithThrow.kt" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" />
@@ -360,8 +356,11 @@
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/AnnotatedDeclarationVisitor.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/NativeDeclarationVisitor.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/LibraryDeclarationVisitor.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/AnnotationsUtils.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/KotlinDeclarationVisitor.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/DeclarationFacade.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/AnnotationsUtils.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java" />
</list>
</option>
</component>
@@ -756,6 +755,32 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translate" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="general" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
@@ -897,34 +922,6 @@
</key>
</component>
<component name="RunManager" selected="JUnit.All in jetTests">
<configuration default="false" name="PatternMatchingTest" 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.PatternMatchingTest" />
<option name="METHOD_NAME" value="whenValueOrType" />
<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="PatternMatchingTest.whenAsExpressionWithThrow" type="JUnit" factoryName="JUnit" temporary="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
@@ -1037,6 +1034,38 @@
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
<configuration default="false" name="FunctionTest.functionUsedBeforeDeclaration" 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="functionUsedBeforeDeclaration" />
<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>
<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" />
@@ -1223,11 +1252,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.PatternMatchingTest" />
<item index="4" class="java.lang.String" itemvalue="JUnit.PatternMatchingTest.whenAsExpressionWithThrow" />
<item index="5" class="java.lang.String" itemvalue="JUnit.ConditionalTest.ifElseAsExpressionWithThrow" />
<item index="6" class="java.lang.String" itemvalue="JUnit.OperatorOverloadingTest.usingModInCaseModAssignNotAvailable" />
<item index="7" class="java.lang.String" itemvalue="JUnit.WebDemoExamples2Test.builder" />
<item index="3" class="java.lang.String" itemvalue="JUnit.PatternMatchingTest.whenAsExpressionWithThrow" />
<item index="4" class="java.lang.String" itemvalue="JUnit.ConditionalTest.ifElseAsExpressionWithThrow" />
<item index="5" class="java.lang.String" itemvalue="JUnit.OperatorOverloadingTest.usingModInCaseModAssignNotAvailable" />
<item index="6" class="java.lang.String" itemvalue="JUnit.WebDemoExamples2Test.builder" />
<item index="7" class="java.lang.String" itemvalue="JUnit.FunctionTest.functionUsedBeforeDeclaration" />
</list>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host>
@@ -1315,7 +1344,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.202031" sideWeight="0.55043226" 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="false" weight="0.202031" sideWeight="0.55043226" order="0" side_tool="false" content_ui="combo" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24692678" sideWeight="0.55043226" order="2" 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.44956774" 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" />
@@ -1363,7 +1392,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="if as expression with control statements support" />
<option name="LAST_COMMIT_MESSAGE" value="refactor to implement library annotations" />
<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" />
@@ -1376,7 +1405,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="lots of minore refactorings" />
<MESSAGE value="implement and test extension properties" />
<MESSAGE value="tuple support and tests" />
<MESSAGE value="expression as statement bug fixed" />
@@ -1401,6 +1429,7 @@
<MESSAGE value="solving when problem" />
<MESSAGE value="added test for complex expression with when" />
<MESSAGE value="if as expression with control statements support" />
<MESSAGE value="refactor to implement library annotations" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
@@ -1410,62 +1439,6 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/WebDemoExamples2Test.java">
<provider selected="true" editor-type-id="text-editor">
<state line="29" column="16" selection-start="620" selection-end="620" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jslib/src/core/javalang.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="6" column="25" selection-start="114" selection-end="114" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="105" column="77" selection-start="4065" selection-end="4065" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/webDemoExamples2/cases/builder.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="130" column="19" selection-start="3319" selection-end="3319" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/conditional/out/ifAsExpressionWithThrow.js">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="6" selection-start="264" selection-end="264" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state line="356" column="26" selection-start="12646" selection-end="12646" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/cases/kt242.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$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/DiagnosticHolder.java">
<provider selected="true" editor-type-id="text-editor">
<state line="18" column="47" selection-start="572" selection-end="572" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<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="11" column="17" selection-start="344" selection-end="344" vertical-scroll-proportion="0.0">
@@ -1480,15 +1453,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/NativeDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="3" selection-start="333" selection-end="333" 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/translate/context/declaration/AnnotatedDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="16" column="13" selection-start="718" selection-end="718" vertical-scroll-proportion="0.0">
@@ -1498,15 +1462,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/LibraryDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="101" selection-start="636" selection-end="636" 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/config/Config.java">
<provider selected="true" editor-type-id="text-editor">
<state line="29" column="50" selection-start="933" selection-end="933" vertical-scroll-proportion="0.0">
@@ -1516,24 +1471,100 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/AnnotationsUtils.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/KotlinDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="43" column="41" selection-start="1680" selection-end="1680" vertical-scroll-proportion="0.0">
<state line="19" column="24" selection-start="735" selection-end="735" 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/translate/context/declaration/KotlinDeclarationVisitor.java">
<entry file="file://$PROJECT_DIR$/jslib/src/core/javautil.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="25" column="24" selection-start="985" selection-end="985" vertical-scroll-proportion="0.8110687">
<state line="21" column="45" selection-start="1034" selection-end="1038" vertical-scroll-proportion="-10.769231">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/TemporaryVariable.java">
<provider selected="true" editor-type-id="text-editor">
<state line="11" column="19" selection-start="362" selection-end="362" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jslib/src/core/javalang.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="6" column="25" selection-start="114" selection-end="114" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/webDemoExamples2/cases/builder.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="130" column="19" selection-start="3319" selection-end="3319" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/declaration/DeclarationFacade.java">
<provider selected="true" editor-type-id="text-editor">
<state line="22" column="19" selection-start="918" selection-end="918" 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/translate/context/declaration/LibraryDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="19" selection-start="384" selection-end="384" 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/translate/context/declaration/NativeDeclarationVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="19" selection-start="382" selection-end="382" 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/translate/context/declaration/AnnotationsUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state line="24" column="88" selection-start="963" selection-end="963" 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/translate/expression/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="133" column="0" selection-start="6129" selection-end="6129" vertical-scroll-proportion="5.8461537">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java">
<provider selected="true" editor-type-id="text-editor">
<state line="37" column="0" selection-start="1028" selection-end="1028" vertical-scroll-proportion="-3.4122138">
<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="107" column="59" selection-start="5436" selection-end="5436" vertical-scroll-proportion="0.5597609">
<folding />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
@@ -36,19 +36,6 @@ public final class StandardClasses {
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;
@@ -95,42 +82,9 @@ public final class StandardClasses {
@NotNull JsScope rootScope) {
StandardClasses standardClasses = new StandardClasses(kotlinObjectScope, rootScope);
declareJetObjects(standardClasses);
declareJavaUtilObjects(standardClasses);
declareTopLevelFunctions(standardClasses);
// declareJQuery(standardClasses);
return standardClasses;
}
private static void declareJQuery(@NotNull StandardClasses standardClasses) {
standardClasses.declare().forFQ("jquery.JQuery").externalClass("jQuery")
.methods("addClass", "attr", "hasClass", "append",
"text", "ready", "click", "hover", "slideUp",
"removeClass");
standardClasses.declare().forFQ("jquery.jq").externalFunction("jQuery");
//standardClasses.declare().forFQ("jquery.get-document").externalObject("document");
}
//TODO: test all the methods
private static void declareJavaUtilObjects(@NotNull StandardClasses standardClasses) {
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").kotlinClass("Collection")
.methods("iterator");
standardClasses.declare().forFQ("java.util.HashMap").kotlinClass("HashMap")
.methods("size", "put", "get", "isEmpty", "remove", "addAll", "clear", "keySet");
standardClasses.declare().forFQ("java.util.StringBuilder").kotlinClass("StringBuilder")
.methods("append", "toString");
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 StandardClasses standardClasses) {
standardClasses.declare().forFQ("jet.Array").kotlinClass("Array")
.properties("size", "indices");
@@ -149,12 +103,6 @@ public final class StandardClasses {
standardClasses.declare().forFQ("jet.Any.toString").kotlinFunction("toString");
}
private static void declareTopLevelFunctions(@NotNull StandardClasses standardClasses) {
standardClasses.declare().forFQ("js.parseInt").kotlinFunction("parseInt");
standardClasses.declare().forFQ("js.println").kotlinFunction("println");
standardClasses.declare().forFQ("js.print").kotlinFunction("print");
standardClasses.declare().forFQ("js.Exception").kotlinClass("Exception");
}
@NotNull
private final JsScope kotlinScope;
@@ -113,7 +113,7 @@ public class StaticContext {
@NotNull
public Declarations getLibraryDeclarations() {
return declarationFacade.getLibraryDeclarations();
return declarationFacade.getJetLibraryDeclarations();
}
@NotNull
@@ -20,9 +20,9 @@ public final class AnnotationsUtils {
@NotNull
public static final String NATIVE_CLASS_ANNOTATION_FQNAME = "js.annotations.NativeClass";
@NotNull
public static final String LIBRARY_FUNCTION_ANNOTATION_FQNAME = "js.annotations.NativeFun";
public static final String LIBRARY_FUNCTION_ANNOTATION_FQNAME = "js.annotations.LibraryFun";
@NotNull
public static final String LIBRARY_CLASS_ANNOTATION_FQNAME = "js.annotations.NativeClass";
public static final String LIBRARY_CLASS_ANNOTATION_FQNAME = "js.annotations.LibraryClass";
@NotNull
public static Set<String> INTERNAL_ANNOTATIONS_FQNAMES = Sets.newHashSet(
NATIVE_CLASS_ANNOTATION_FQNAME, NATIVE_FUNCTION_ANNOTATION_FQNAME,
@@ -3,12 +3,12 @@ package org.jetbrains.k2js.translate.context.declaration;
import com.google.common.collect.Sets;
import com.google.dart.compiler.backend.js.ast.JsNameRef;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.types.JetStandardLibrary;
import org.jetbrains.k2js.translate.context.Namer;
import org.jetbrains.k2js.translate.context.NamingScope;
import org.jetbrains.k2js.translate.utils.BindingUtils;
@@ -18,6 +18,8 @@ import java.util.Set;
/**
* @author Pavel Talanov
*/
//TODO: decide to maybe not to use different declaration objects
//TODO: methods receiver too many parameters and also unneccessary information like rootScope is stored inside
public final class DeclarationFacade {
@NotNull
@@ -26,7 +28,7 @@ public final class DeclarationFacade {
}
@NotNull
private final Declarations libraryDeclarations;
private final Declarations jetLibraryDeclarations;
@NotNull
private final Declarations kotlinDeclarations;
@@ -34,19 +36,23 @@ public final class DeclarationFacade {
@NotNull
private final Declarations nativeDeclarations;
@NotNull
private final Declarations jsLibraryDeclarations;
@NotNull
private final NamingScope rootScope;
private DeclarationFacade(@NotNull NamingScope rootScope) {
this.rootScope = rootScope;
this.libraryDeclarations = Declarations.newInstance();
this.jetLibraryDeclarations = Declarations.newInstance();
this.kotlinDeclarations = Declarations.newInstance();
this.nativeDeclarations = Declarations.newInstance();
this.jsLibraryDeclarations = Declarations.newInstance();
}
@NotNull
public Declarations getLibraryDeclarations() {
return libraryDeclarations;
public Declarations getJetLibraryDeclarations() {
return jetLibraryDeclarations;
}
@NotNull
@@ -61,13 +67,13 @@ public final class DeclarationFacade {
@NotNull
public Set<Declarations> getAllDeclarations() {
return Sets.newHashSet(libraryDeclarations, kotlinDeclarations, nativeDeclarations);
return Sets.newHashSet(jetLibraryDeclarations, kotlinDeclarations, nativeDeclarations, jsLibraryDeclarations);
}
@NotNull
public DeclarationFacade extractStandardLibrary(@NotNull JetStandardLibrary standardLibrary,
@NotNull JsNameRef standardLibraryObjectName) {
KotlinDeclarationVisitor visitor = new KotlinDeclarationVisitor(libraryDeclarations, false);
KotlinDeclarationVisitor visitor = new KotlinDeclarationVisitor(jetLibraryDeclarations, false);
for (DeclarationDescriptor descriptor :
standardLibrary.getLibraryScope().getAllDescriptors()) {
descriptor.accept(visitor, DeclarationContext.rootContext(rootScope, standardLibraryObjectName));
@@ -77,18 +83,23 @@ public final class DeclarationFacade {
//TODO: decide if is public
public void extractDeclarationsFromNamespace(@NotNull NamespaceDescriptor descriptor,
@Nullable JsNameRef namespaceQualifier) {
@NotNull Namer namer) {
KotlinDeclarationVisitor kotlinDeclarationVisitor = new KotlinDeclarationVisitor(kotlinDeclarations, true);
kotlinDeclarationVisitor.traverseNamespace
(descriptor, DeclarationContext.rootContext(rootScope, namespaceQualifier));
(descriptor, DeclarationContext.rootContext(rootScope, null));
NativeDeclarationVisitor nativeDeclarationVisitor = new NativeDeclarationVisitor(nativeDeclarations);
nativeDeclarationVisitor.traverseNamespace
(descriptor, DeclarationContext.rootContext(rootScope, null));
LibraryDeclarationVisitor libraryDeclarationVisitor = new LibraryDeclarationVisitor(jsLibraryDeclarations);
libraryDeclarationVisitor.traverseNamespace
(descriptor, DeclarationContext.rootContext(rootScope, namer.kotlinObject()));
}
public void extractDeclarationsFromFiles(@NotNull List<JetFile> files, @NotNull BindingContext context) {
public void extractDeclarationsFromFiles(@NotNull List<JetFile> files,
@NotNull BindingContext context,
@NotNull Namer namer) {
for (NamespaceDescriptor namespace : getAllNamespaces(files, context)) {
extractDeclarationsFromNamespace(namespace, null);
extractDeclarationsFromNamespace(namespace, namer);
}
}
@@ -12,7 +12,6 @@ import static org.jetbrains.k2js.translate.context.declaration.AnnotationsUtils.
*/
public final class KotlinDeclarationVisitor extends AbstractDeclarationVisitor {
@NotNull
private final boolean shouldObfuscate;
/*package*/ KotlinDeclarationVisitor(@NotNull Declarations declarations, boolean obfuscateNames) {
@@ -100,7 +100,7 @@ public final class Translation {
staticContext.getDeclarationFacade().
extractStandardLibrary(standardLibrary, staticContext.getNamer().kotlinObject());
staticContext.getDeclarationFacade().
extractDeclarationsFromFiles(files, bindingContext);
extractDeclarationsFromFiles(files, bindingContext, staticContext.getNamer());
JsBlock block = staticContext.getProgram().getFragmentBlock(0);
TranslationContext context = TranslationContext.rootContext(staticContext);
block.addStatement(Translation.translateNamespace(namespaceToTranslate, context));