Added default getter/setter support and initializer support.
This commit is contained in:
Generated
+320
-266
@@ -6,11 +6,25 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
|
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
|
||||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/functionUsedBeforeDeclaration.kt" />
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java" />
|
||||||
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java" />
|
||||||
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/constructorWithParameter.kt" />
|
||||||
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/setter.kt" />
|
||||||
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/twoClassesWithProperties.kt" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.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/translate/DeclarationVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/DeclarationVisitor.java" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsBlock.java" afterPath="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsBlock.java" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsInvocation.java" afterPath="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsInvocation.java" />
|
||||||
<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/declarations/DeclarationExtractor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/DeclarationExtractor.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/ExtractionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/ExtractionVisitor.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionTranslator.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Namer.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Namer.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationContext.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationContext.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassTest.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test_files/test_cases/accessToInstanceProperty.kt" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/accessToInstanceProperty.kt" />
|
||||||
</list>
|
</list>
|
||||||
<ignored path="k2js.iws" />
|
<ignored path="k2js.iws" />
|
||||||
<ignored path=".idea/workspace.xml" />
|
<ignored path=".idea/workspace.xml" />
|
||||||
@@ -35,7 +49,20 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="DebuggerManager">
|
<component name="DebuggerManager">
|
||||||
<line_breakpoints>
|
<line_breakpoints>
|
||||||
<breakpoint url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" line="283" class="org.jetbrains.k2js.translate.ExpressionVisitor" package="org.jetbrains.k2js.translate">
|
<breakpoint url="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" line="28" class="com.google.dart.compiler.util.AstUtil" package="com.google.dart.compiler.util">
|
||||||
|
<option name="ENABLED" value="true" />
|
||||||
|
<option name="LOG_ENABLED" value="false" />
|
||||||
|
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||||
|
<option name="SUSPEND_POLICY" value="SuspendAll" />
|
||||||
|
<option name="COUNT_FILTER_ENABLED" value="false" />
|
||||||
|
<option name="COUNT_FILTER" value="0" />
|
||||||
|
<option name="CONDITION_ENABLED" value="false" />
|
||||||
|
<option name="CLASS_FILTERS_ENABLED" value="false" />
|
||||||
|
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
|
||||||
|
<option name="CONDITION" value="" />
|
||||||
|
<option name="LOG_MESSAGE" value="" />
|
||||||
|
</breakpoint>
|
||||||
|
<breakpoint url="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassTest.java" line="28" class="org.jetbrains.k2js.test.ClassTest" package="org.jetbrains.k2js.test">
|
||||||
<option name="ENABLED" value="true" />
|
<option name="ENABLED" value="true" />
|
||||||
<option name="LOG_ENABLED" value="false" />
|
<option name="LOG_ENABLED" value="false" />
|
||||||
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||||
@@ -88,78 +115,9 @@
|
|||||||
<favorites_list name="k2js" />
|
<favorites_list name="k2js" />
|
||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<splitter split-orientation="horizontal" split-proportion="0.38839287">
|
<splitter split-orientation="horizontal" split-proportion="0.27544528">
|
||||||
<split-first>
|
<split-first>
|
||||||
<leaf>
|
<leaf>
|
||||||
<file leaf-file-name="DeclarationExtractor.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/DeclarationExtractor.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="22" column="44" selection-start="720" selection-end="720" vertical-scroll-proportion="0.0">
|
|
||||||
<folding>
|
|
||||||
<element signature="imports" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="TranslationContext.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationContext.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="152" column="49" selection-start="5820" selection-end="5820" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="NamespaceTranslator.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="31" column="86" selection-start="1029" selection-end="1029" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="JsFunction.java" pinned="false" current="false" current-in-tab="true">
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsFunction.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="14" column="23" selection-start="450" selection-end="450" vertical-scroll-proportion="0.32425067">
|
|
||||||
<folding>
|
|
||||||
<element signature="imports" 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">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="15" column="13" selection-start="351" selection-end="351" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="ExtractionVisitor.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/ExtractionVisitor.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="63" column="34" selection-start="2525" selection-end="2525" vertical-scroll-proportion="-14.28">
|
|
||||||
<folding>
|
|
||||||
<element signature="imports" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="Void.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="jar://C:/Program Files/Java/jdk1.7.0_01/src.zip!/java/lang/Void.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="36" column="6" selection-start="464" selection-end="464" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="DeclarationDescriptorVisitor.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="DeclarationDescriptorVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptorVisitor.java">
|
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptorVisitor.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
@@ -189,14 +147,46 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
</leaf>
|
<file leaf-file-name="twoClassesWithProperties.kt" pinned="false" current="false" current-in-tab="false">
|
||||||
</split-first>
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/twoClassesWithProperties.kt">
|
||||||
<split-second>
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<leaf>
|
<state line="11" column="39" selection-start="146" selection-end="146" vertical-scroll-proportion="0.0">
|
||||||
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="true" current-in-tab="true">
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="twoClassesWithProperties.js" pinned="false" current="false" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/twoClassesWithProperties.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="22" column="0" selection-start="363" selection-end="363" vertical-scroll-proportion="0.82560706">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="JsNew.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsNew.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="12" column="22" selection-start="394" selection-end="394" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="Cloner.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/Cloner.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="153" column="4" selection-start="5360" selection-end="5360" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="114" column="37" selection-start="4820" selection-end="4820" vertical-scroll-proportion="0.53743315">
|
<state line="172" column="40" selection-start="7413" selection-end="7413" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="imports" expanded="true" />
|
<element signature="imports" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -204,10 +194,32 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="ClassBodyVisitor.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="constructorWithParameter.kt" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java">
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/constructorWithParameter.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="32" column="62" selection-start="1212" selection-end="1212" vertical-scroll-proportion="0.0">
|
<state line="6" column="14" selection-start="80" selection-end="80" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="accessToInstanceProperty.kt" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/accessToInstanceProperty.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="3" column="21" selection-start="51" selection-end="51" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
</leaf>
|
||||||
|
</split-first>
|
||||||
|
<split-second>
|
||||||
|
<leaf>
|
||||||
|
<file leaf-file-name="InitializerVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="50" column="79" selection-start="2300" selection-end="2300" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="imports" expanded="true" />
|
<element signature="imports" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -215,10 +227,66 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
|
<file leaf-file-name="accessToInstanceProperty.js" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/accessToInstanceProperty.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="1" column="0" selection-start="10" selection-end="10" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="setter.kt" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/setter.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="6" column="13" selection-start="66" selection-end="66" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="ClassTest.java" pinned="false" current="true" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="70" column="16" selection-start="2199" selection-end="2199" vertical-scroll-proportion="0.65750915">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="PropertyAccessTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="19" column="19" selection-start="808" selection-end="808" vertical-scroll-proportion="0.0">
|
||||||
|
<folding>
|
||||||
|
<element signature="imports" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="OperationTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="29" column="56" selection-start="1070" selection-end="1070" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="setter.js" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/setter.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="AstUtil.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="AstUtil.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java">
|
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="19" column="23" selection-start="689" selection-end="694" vertical-scroll-proportion="-6.6538463">
|
<state line="18" column="0" selection-start="621" selection-end="621" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="imports" expanded="true" />
|
<element signature="imports" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -226,70 +294,19 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="FunctionTranslator.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="TranslationTest.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java">
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TranslationTest.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="26" column="30" selection-start="831" selection-end="831" vertical-scroll-proportion="0.0">
|
<state line="39" column="28" selection-start="1478" selection-end="1478" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
|
||||||
<element signature="imports" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="functionUsedBeforeDeclaration.kt" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/functionUsedBeforeDeclaration.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="3" column="19" selection-start="35" selection-end="35" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="localProperty.jet" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/localProperty.jet">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="0" column="0" selection-start="0" selection-end="127" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="JetDotQualifiedExpression.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetDotQualifiedExpression.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="20" column="0" selection-start="515" selection-end="515" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="GenerationState.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="36" column="38" selection-start="1431" selection-end="1431" vertical-scroll-proportion="0.0">
|
|
||||||
<folding>
|
|
||||||
<element signature="imports" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="ClassTranslator.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="50" column="65" selection-start="2440" selection-end="2440" vertical-scroll-proportion="0.0">
|
|
||||||
<folding>
|
|
||||||
<element signature="imports" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="FunctionTest.java" pinned="false" current="false" current-in-tab="false">
|
<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">
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="74" column="19" selection-start="1786" selection-end="1786" vertical-scroll-proportion="0.0">
|
<state line="10" column="19" selection-start="250" selection-end="250" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -311,22 +328,22 @@
|
|||||||
<component name="IdeDocumentHistory">
|
<component name="IdeDocumentHistory">
|
||||||
<option name="changedFiles">
|
<option name="changedFiles">
|
||||||
<list>
|
<list>
|
||||||
<option value="$PROJECT_DIR$/translator/test_files/test_cases/classInstantiation.kt" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/test_files/test_cases/classWithProperties.kt" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassTest.java" />
|
|
||||||
<option value="$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/NamespaceDescriptor.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/DeclarationExtractor.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
|
<option value="$PROJECT_DIR$/translator/test_files/test_cases/twoClassesProperties.kt" />
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BindingUtils.java" />
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java" />
|
||||||
<option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsFunction.java" />
|
<option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsBlock.java" />
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationContext.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java" />
|
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/ExtractionVisitor.java" />
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/ExtractionVisitor.java" />
|
||||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java" />
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
|
||||||
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/FunctionTest.java" />
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Namer.java" />
|
||||||
<option value="$PROJECT_DIR$/translator/test_files/test_cases/functionUsedBeforeDeclaration.kt" />
|
<option value="$PROJECT_DIR$/translator/test_files/test_cases/setter.kt" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/test_files/test_cases/accessToInstanceProperty.kt" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/test_files/test_cases/twoClassesWithProperties.kt" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/test_files/test_cases/constuctorWithParameter.kt" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassTest.java" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/test_files/test_cases/constructorWithParameter.kt" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/test_files/test_cases/twoClassesWithProperties.js" />
|
||||||
|
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -463,6 +480,50 @@
|
|||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</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="generate" />
|
||||||
|
<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="declarations" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="k2js" />
|
<option name="myItemId" value="k2js" />
|
||||||
@@ -554,7 +615,7 @@
|
|||||||
<recent name="C:\Dev\Projects\k2js\src\org\jetbrains\k2js\translate" />
|
<recent name="C:\Dev\Projects\k2js\src\org\jetbrains\k2js\translate" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="JUnit.FunctionTest.functionUsedBeforeDeclaration">
|
<component name="RunManager" selected="JUnit.All in translator">
|
||||||
<configuration default="false" name="ClassTest" type="JUnit" factoryName="JUnit" temporary="true">
|
<configuration default="false" name="ClassTest" type="JUnit" factoryName="JUnit" temporary="true">
|
||||||
<module name="translator" />
|
<module name="translator" />
|
||||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||||
@@ -577,17 +638,17 @@
|
|||||||
<ConfigurationWrapper RunnerId="Run" />
|
<ConfigurationWrapper RunnerId="Run" />
|
||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration default="false" name="Temp suite" type="JUnit" factoryName="JUnit" temporary="true">
|
<configuration default="false" name="FunctionTest" type="JUnit" factoryName="JUnit" temporary="true">
|
||||||
<module name="translator" />
|
<module name="translator" />
|
||||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||||
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
<option name="ALTERNATIVE_JRE_PATH" />
|
||||||
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
||||||
<option name="MAIN_CLASS_NAME" value="" />
|
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.FunctionTest" />
|
||||||
<option name="METHOD_NAME" value="" />
|
<option name="METHOD_NAME" />
|
||||||
<option name="TEST_OBJECT" value="pattern" />
|
<option name="TEST_OBJECT" value="class" />
|
||||||
<option name="VM_PARAMETERS" value="-ea" />
|
<option name="VM_PARAMETERS" />
|
||||||
<option name="PARAMETERS" value="" />
|
<option name="PARAMETERS" />
|
||||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/translator" />
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||||
<option name="ENV_VARIABLES" />
|
<option name="ENV_VARIABLES" />
|
||||||
<option name="PASS_PARENT_ENVS" value="true" />
|
<option name="PASS_PARENT_ENVS" value="true" />
|
||||||
<option name="TEST_SEARCH_SCOPE">
|
<option name="TEST_SEARCH_SCOPE">
|
||||||
@@ -595,21 +656,17 @@
|
|||||||
</option>
|
</option>
|
||||||
<envs />
|
<envs />
|
||||||
<patterns />
|
<patterns />
|
||||||
<RunnerSettings RunnerId="Debug">
|
<RunnerSettings RunnerId="Run" />
|
||||||
<option name="DEBUG_PORT" value="50097" />
|
<ConfigurationWrapper RunnerId="Run" />
|
||||||
<option name="TRANSPORT" value="0" />
|
|
||||||
<option name="LOCAL" value="true" />
|
|
||||||
</RunnerSettings>
|
|
||||||
<ConfigurationWrapper RunnerId="Debug" />
|
|
||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration default="false" name="ClassTest.methodDeclarationAndCall" type="JUnit" factoryName="JUnit" temporary="true">
|
<configuration default="false" name="ClassTest.twoClassesWithProperties" type="JUnit" factoryName="JUnit" temporary="true">
|
||||||
<module name="translator" />
|
<module name="translator" />
|
||||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||||
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||||
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
||||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.ClassTest" />
|
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.ClassTest" />
|
||||||
<option name="METHOD_NAME" value="methodDeclarationAndCall" />
|
<option name="METHOD_NAME" value="twoClassesWithProperties" />
|
||||||
<option name="TEST_OBJECT" value="method" />
|
<option name="TEST_OBJECT" value="method" />
|
||||||
<option name="VM_PARAMETERS" value="-ea" />
|
<option name="VM_PARAMETERS" value="-ea" />
|
||||||
<option name="PARAMETERS" value="" />
|
<option name="PARAMETERS" value="" />
|
||||||
@@ -622,7 +679,7 @@
|
|||||||
<envs />
|
<envs />
|
||||||
<patterns />
|
<patterns />
|
||||||
<RunnerSettings RunnerId="Debug">
|
<RunnerSettings RunnerId="Debug">
|
||||||
<option name="DEBUG_PORT" value="50132" />
|
<option name="DEBUG_PORT" value="53339" />
|
||||||
<option name="TRANSPORT" value="0" />
|
<option name="TRANSPORT" value="0" />
|
||||||
<option name="LOCAL" value="true" />
|
<option name="LOCAL" value="true" />
|
||||||
</RunnerSettings>
|
</RunnerSettings>
|
||||||
@@ -651,13 +708,13 @@
|
|||||||
<ConfigurationWrapper RunnerId="Run" />
|
<ConfigurationWrapper RunnerId="Run" />
|
||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration default="false" name="FunctionTest.functionUsedBeforeDeclaration" type="JUnit" factoryName="JUnit" temporary="true">
|
<configuration default="false" name="ClassTest.setter" type="JUnit" factoryName="JUnit" temporary="true">
|
||||||
<module name="translator" />
|
<module name="translator" />
|
||||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||||
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||||
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
||||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.FunctionTest" />
|
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.ClassTest" />
|
||||||
<option name="METHOD_NAME" value="functionUsedBeforeDeclaration" />
|
<option name="METHOD_NAME" value="setter" />
|
||||||
<option name="TEST_OBJECT" value="method" />
|
<option name="TEST_OBJECT" value="method" />
|
||||||
<option name="VM_PARAMETERS" value="-ea" />
|
<option name="VM_PARAMETERS" value="-ea" />
|
||||||
<option name="PARAMETERS" value="" />
|
<option name="PARAMETERS" value="" />
|
||||||
@@ -670,13 +727,11 @@
|
|||||||
<envs />
|
<envs />
|
||||||
<patterns />
|
<patterns />
|
||||||
<RunnerSettings RunnerId="Debug">
|
<RunnerSettings RunnerId="Debug">
|
||||||
<option name="DEBUG_PORT" value="52447" />
|
<option name="DEBUG_PORT" value="53959" />
|
||||||
<option name="TRANSPORT" value="0" />
|
<option name="TRANSPORT" value="0" />
|
||||||
<option name="LOCAL" value="true" />
|
<option name="LOCAL" value="true" />
|
||||||
</RunnerSettings>
|
</RunnerSettings>
|
||||||
<RunnerSettings RunnerId="Run" />
|
|
||||||
<ConfigurationWrapper RunnerId="Debug" />
|
<ConfigurationWrapper RunnerId="Debug" />
|
||||||
<ConfigurationWrapper RunnerId="Run" />
|
|
||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration default="true" type="Remote" factoryName="Remote">
|
<configuration default="true" type="Remote" factoryName="Remote">
|
||||||
@@ -755,10 +810,10 @@
|
|||||||
</configuration>
|
</configuration>
|
||||||
<list size="5">
|
<list size="5">
|
||||||
<item index="0" class="java.lang.String" itemvalue="JUnit.ClassTest" />
|
<item index="0" class="java.lang.String" itemvalue="JUnit.ClassTest" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="JUnit.Temp suite" />
|
<item index="1" class="java.lang.String" itemvalue="JUnit.FunctionTest" />
|
||||||
<item index="2" class="java.lang.String" itemvalue="JUnit.ClassTest.methodDeclarationAndCall" />
|
<item index="2" class="java.lang.String" itemvalue="JUnit.ClassTest.twoClassesWithProperties" />
|
||||||
<item index="3" class="java.lang.String" itemvalue="JUnit.All in translator" />
|
<item index="3" class="java.lang.String" itemvalue="JUnit.All in translator" />
|
||||||
<item index="4" class="java.lang.String" itemvalue="JUnit.FunctionTest.functionUsedBeforeDeclaration" />
|
<item index="4" class="java.lang.String" itemvalue="JUnit.ClassTest.setter" />
|
||||||
</list>
|
</list>
|
||||||
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
||||||
<Host>localhost</Host>
|
<Host>localhost</Host>
|
||||||
@@ -800,24 +855,24 @@
|
|||||||
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3275862" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3275862" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24973261" sideWeight="0.7183908" order="1" side_tool="false" content_ui="tabs" />
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24973261" sideWeight="0.7183908" order="1" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.19923371" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2624521" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32907662" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32907662" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32854405" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32854405" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Metrics" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3275862" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
<window_info id="Metrics" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3275862" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" 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.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" 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="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.21283422" sideWeight="0.8007663" 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.1593583" sideWeight="0.5699234" order="0" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.43007663" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.43007663" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="true" content_ui="tabs" />
|
||||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" 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.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3994253" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3994253" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="JsTestDriver Server" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32907662" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
<window_info id="JsTestDriver Server" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32907662" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
|
||||||
</layout>
|
</layout>
|
||||||
</component>
|
</component>
|
||||||
<component name="VcsContentAnnotationSettings">
|
<component name="VcsContentAnnotationSettings">
|
||||||
@@ -848,7 +903,7 @@
|
|||||||
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
|
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
|
||||||
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
|
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
|
||||||
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="Added DeclarationExtractor logic." />
|
<option name="LAST_COMMIT_MESSAGE" value="Added a test for extractor." />
|
||||||
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
|
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
|
||||||
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
|
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
|
||||||
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
|
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
|
||||||
@@ -871,6 +926,7 @@
|
|||||||
<MESSAGE value="Added constructor calls. Working on method logic." />
|
<MESSAGE value="Added constructor calls. Working on method logic." />
|
||||||
<MESSAGE value="Added simple method call support." />
|
<MESSAGE value="Added simple method call support." />
|
||||||
<MESSAGE value="Added DeclarationExtractor logic." />
|
<MESSAGE value="Added DeclarationExtractor logic." />
|
||||||
|
<MESSAGE value="Added a test for extractor." />
|
||||||
</component>
|
</component>
|
||||||
<component name="XDebuggerManager">
|
<component name="XDebuggerManager">
|
||||||
<breakpoint-manager />
|
<breakpoint-manager />
|
||||||
@@ -880,132 +936,130 @@
|
|||||||
<option name="FILTER_TARGETS" value="false" />
|
<option name="FILTER_TARGETS" value="false" />
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java">
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/setter.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="36" column="38" selection-start="1431" selection-end="1431" vertical-scroll-proportion="0.0">
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="19" column="19" selection-start="808" selection-end="808" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="imports" expanded="true" />
|
<element signature="imports" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationContext.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="152" column="49" selection-start="5820" selection-end="5820" vertical-scroll-proportion="0.0">
|
<state line="29" column="56" selection-start="1070" selection-end="1070" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/DeclarationExtractor.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="50" column="65" selection-start="2440" selection-end="2440" vertical-scroll-proportion="0.0">
|
<state line="40" column="39" selection-start="1371" selection-end="1371" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="imports" expanded="true" />
|
<element signature="imports" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="31" column="86" selection-start="1029" selection-end="1029" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/ExtractionVisitor.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/ExtractionVisitor.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="63" column="34" selection-start="2525" selection-end="2525" vertical-scroll-proportion="-14.28">
|
<state line="54" column="23" selection-start="2277" selection-end="2277" vertical-scroll-proportion="-12.72">
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="imports" expanded="true" />
|
<element signature="imports" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsFunction.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Namer.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="14" column="23" selection-start="450" selection-end="450" vertical-scroll-proportion="0.32425067">
|
<state line="12" column="48" selection-start="297" selection-end="297" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
<folding />
|
||||||
<element signature="imports" expanded="true" />
|
</state>
|
||||||
</folding>
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsNew.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="12" column="22" selection-start="394" selection-end="394" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="32" column="62" selection-start="1212" selection-end="1212" vertical-scroll-proportion="0.0">
|
<state line="117" column="0" selection-start="5468" selection-end="5468" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="imports" expanded="true" />
|
<element signature="imports" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetQualifiedExpression.java">
|
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/Cloner.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="10" column="103" selection-start="294" selection-end="294" vertical-scroll-proportion="0.0">
|
<state line="153" column="4" selection-start="5360" selection-end="5360" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetDotQualifiedExpression.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="20" column="0" selection-start="515" selection-end="515" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="26" column="30" selection-start="831" selection-end="831" vertical-scroll-proportion="0.0">
|
|
||||||
<folding>
|
|
||||||
<element signature="imports" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<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="34" column="0" selection-start="941" selection-end="941" vertical-scroll-proportion="-6.6538463">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetNamedFunction.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="22" column="0" selection-start="555" selection-end="555" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/localProperty.jet">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="0" column="0" selection-start="0" selection-end="127" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/functionUsedBeforeDeclaration.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="3" column="19" selection-start="35" selection-end="35" vertical-scroll-proportion="0.0">
|
|
||||||
<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="74" column="19" selection-start="1786" selection-end="1786" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="114" column="37" selection-start="4820" selection-end="4820" vertical-scroll-proportion="0.53743315">
|
<state line="172" column="40" selection-start="7413" selection-end="7413" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="imports" expanded="true" />
|
<element signature="imports" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="jar://C:/Program Files/Java/jdk1.7.0_01/src.zip!/java/lang/Void.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="36" column="6" selection-start="464" selection-end="464" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/constructorWithParameter.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="6" column="14" selection-start="80" selection-end="80" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/twoClassesWithProperties.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="11" column="39" selection-start="146" selection-end="146" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/twoClassesWithProperties.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="22" column="0" selection-start="363" selection-end="363" vertical-scroll-proportion="0.82560706">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="50" column="79" selection-start="2300" selection-end="2300" vertical-scroll-proportion="0.0">
|
||||||
|
<folding>
|
||||||
|
<element signature="imports" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="70" column="16" selection-start="2199" selection-end="2199" vertical-scroll-proportion="0.65750915">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
</component>
|
</component>
|
||||||
<component name="masterDetails">
|
<component name="masterDetails">
|
||||||
<states>
|
<states>
|
||||||
|
|||||||
@@ -12,38 +12,44 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class JsBlock extends JsStatement {
|
public class JsBlock extends JsStatement {
|
||||||
|
|
||||||
private final List<JsStatement> stmts = new ArrayList<JsStatement>();
|
private final List<JsStatement> stmts = new ArrayList<JsStatement>();
|
||||||
|
|
||||||
public JsBlock() {
|
public JsBlock() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public JsBlock(JsStatement stmt) {
|
public JsBlock(JsStatement stmt) {
|
||||||
stmts.add(stmt);
|
stmts.add(stmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<JsStatement> getStatements() {
|
public List<JsStatement> getStatements() {
|
||||||
return stmts;
|
return stmts;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addStatement(JsStatement statement) {
|
public void addStatement(JsStatement statement) {
|
||||||
assert statement != null;
|
assert statement != null;
|
||||||
stmts.add(statement);
|
stmts.add(statement);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isGlobalBlock() {
|
public boolean isGlobalBlock() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void traverse(JsVisitor v, JsContext ctx) {
|
public void traverse(JsVisitor v, JsContext ctx) {
|
||||||
if (v.visit(this, ctx)) {
|
if (v.visit(this, ctx)) {
|
||||||
v.acceptWithInsertRemove(stmts);
|
v.acceptWithInsertRemove(stmts);
|
||||||
|
}
|
||||||
|
v.endVisit(this, ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NodeKind getKind() {
|
||||||
|
return NodeKind.BLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatements(List<JsStatement> statements) {
|
||||||
|
assert this.stmts.isEmpty() : "Already contains statements.";
|
||||||
|
this.stmts.addAll(statements);
|
||||||
}
|
}
|
||||||
v.endVisit(this, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public NodeKind getKind() {
|
|
||||||
return NodeKind.BLOCK;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,4 +59,10 @@ public final class JsInvocation extends JsExpression implements HasArguments {
|
|||||||
public NodeKind getKind() {
|
public NodeKind getKind() {
|
||||||
return NodeKind.INVOKE;
|
return NodeKind.INVOKE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pavel Talanov
|
||||||
|
public void setArguments(List<JsExpression> arguments) {
|
||||||
|
assert this.args.isEmpty() : "Arguments already set.";
|
||||||
|
this.args.addAll(arguments);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.jetbrains.k2js.declarations;
|
package org.jetbrains.k2js.declarations;
|
||||||
|
|
||||||
|
import com.google.dart.compiler.backend.js.ast.JsName;
|
||||||
import com.google.dart.compiler.backend.js.ast.JsScope;
|
import com.google.dart.compiler.backend.js.ast.JsScope;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
@@ -13,6 +14,8 @@ import java.util.Map;
|
|||||||
public final class DeclarationExtractor {
|
public final class DeclarationExtractor {
|
||||||
private final Map<DeclarationDescriptor, JsScope> descriptorToScopeMap
|
private final Map<DeclarationDescriptor, JsScope> descriptorToScopeMap
|
||||||
= new HashMap<DeclarationDescriptor, JsScope>();
|
= new HashMap<DeclarationDescriptor, JsScope>();
|
||||||
|
private final Map<DeclarationDescriptor, JsName> descriptorToNameMap
|
||||||
|
= new HashMap<DeclarationDescriptor, JsName>();
|
||||||
|
|
||||||
public DeclarationExtractor() {
|
public DeclarationExtractor() {
|
||||||
|
|
||||||
@@ -30,7 +33,18 @@ public final class DeclarationExtractor {
|
|||||||
return scope;
|
return scope;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*package*/ void put(@NotNull DeclarationDescriptor descriptor, @NotNull JsScope scope) {
|
@NotNull
|
||||||
|
public JsName getName(@NotNull DeclarationDescriptor descriptor) {
|
||||||
|
JsName name = descriptorToNameMap.get(descriptor);
|
||||||
|
assert name != null : "Unknown declaration";
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*package*/ void putScope(@NotNull DeclarationDescriptor descriptor, @NotNull JsScope scope) {
|
||||||
descriptorToScopeMap.put(descriptor, scope);
|
descriptorToScopeMap.put(descriptor, scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*package*/ void putName(@NotNull DeclarationDescriptor descriptor, @NotNull JsName name) {
|
||||||
|
descriptorToNameMap.put(descriptor, name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package org.jetbrains.k2js.declarations;
|
package org.jetbrains.k2js.declarations;
|
||||||
|
|
||||||
import com.google.dart.compiler.backend.js.ast.JsName;
|
|
||||||
import com.google.dart.compiler.backend.js.ast.JsScope;
|
import com.google.dart.compiler.backend.js.ast.JsScope;
|
||||||
import com.intellij.codeInspection.ex.Descriptor;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.*;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.k2js.translate.Namer;
|
import org.jetbrains.k2js.translate.Namer;
|
||||||
@@ -20,11 +18,11 @@ public final class ExtractionVisitor extends DeclarationDescriptorVisitor<Void,
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitClassDescriptor(ClassDescriptor descriptor, JsScope enclosingScope) {
|
public Void visitClassDescriptor(@NotNull ClassDescriptor descriptor, @NotNull JsScope enclosingScope) {
|
||||||
String className = descriptor.getName();
|
String className = descriptor.getName();
|
||||||
enclosingScope.declareName(className);
|
extractor.putName(descriptor, enclosingScope.declareName(className));
|
||||||
JsScope classScope = new JsScope(enclosingScope, "Scope for class " + className);
|
JsScope classScope = new JsScope(enclosingScope, "class " + className);
|
||||||
extractor.put(descriptor, classScope);
|
extractor.putScope(descriptor, classScope);
|
||||||
for (DeclarationDescriptor memberDescriptor :
|
for (DeclarationDescriptor memberDescriptor :
|
||||||
descriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
|
descriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
|
||||||
memberDescriptor.accept(this, classScope);
|
memberDescriptor.accept(this, classScope);
|
||||||
@@ -33,28 +31,50 @@ public final class ExtractionVisitor extends DeclarationDescriptorVisitor<Void,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitFunctionDescriptor(FunctionDescriptor descriptor, JsScope enclosingScope) {
|
public Void visitFunctionDescriptor(@NotNull FunctionDescriptor descriptor, @NotNull JsScope enclosingScope) {
|
||||||
String functionName = descriptor.getName();
|
String functionName = descriptor.getName();
|
||||||
enclosingScope.declareName(functionName);
|
extractor.putName(descriptor, enclosingScope.declareName(functionName));
|
||||||
JsScope functionScope = new JsScope(enclosingScope, "Scope for function " + functionName);
|
JsScope functionScope = new JsScope(enclosingScope, "function " + functionName);
|
||||||
extractor.put(descriptor, functionScope);
|
extractor.putScope(descriptor, functionScope);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitPropertyDescriptor(PropertyDescriptor descriptor, JsScope enclosingScope) {
|
public Void visitPropertyDescriptor(@NotNull PropertyDescriptor descriptor, @NotNull JsScope enclosingScope) {
|
||||||
String propertyName = descriptor.getName();
|
PropertySetterDescriptor setter = descriptor.getSetter();
|
||||||
enclosingScope.declareName(Namer.getNameForSetter(propertyName));
|
if (setter != null) {
|
||||||
enclosingScope.declareName(Namer.getNameForGetter(propertyName));
|
setter.accept(this, enclosingScope);
|
||||||
|
}
|
||||||
|
PropertyGetterDescriptor getter = descriptor.getGetter();
|
||||||
|
if (getter != null) {
|
||||||
|
getter.accept(this, enclosingScope);
|
||||||
|
}
|
||||||
|
// We do not put this name into extractor because it can't be referenced from outside
|
||||||
|
// thus it doesn't have a descriptor.
|
||||||
|
enclosingScope.declareName(Namer.getBackingFieldNameForProperty(descriptor.getName()));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Void visitPropertyGetterDescriptor(PropertyGetterDescriptor descriptor, JsScope enclosingScope) {
|
||||||
|
String getterName = Namer.getNameForGetter(descriptor.getCorrespondingProperty().getName());
|
||||||
|
extractor.putName(descriptor, enclosingScope.declareName(getterName));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Void visitPropertySetterDescriptor(PropertySetterDescriptor descriptor, JsScope enclosingScope) {
|
||||||
|
String setterName = Namer.getNameForSetter(descriptor.getCorrespondingProperty().getName());
|
||||||
|
extractor.putName(descriptor, enclosingScope.declareName(setterName));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitNamespaceDescriptor(NamespaceDescriptor descriptor, JsScope enclosingScope) {
|
public Void visitNamespaceDescriptor(NamespaceDescriptor descriptor, JsScope enclosingScope) {
|
||||||
String namespaceName = descriptor.getName();
|
String namespaceName = descriptor.getName();
|
||||||
enclosingScope.declareName(namespaceName);
|
extractor.putName(descriptor, enclosingScope.declareName(namespaceName));
|
||||||
JsScope namespaceScope = new JsScope(enclosingScope, "Scope for namespace " + namespaceName);
|
JsScope namespaceScope = new JsScope(enclosingScope, "namespace " + namespaceName);
|
||||||
extractor.put(descriptor, namespaceScope);
|
extractor.putScope(descriptor, namespaceScope);
|
||||||
for (DeclarationDescriptor memberDescriptor :
|
for (DeclarationDescriptor memberDescriptor :
|
||||||
descriptor.getMemberScope().getAllDescriptors()) {
|
descriptor.getMemberScope().getAllDescriptors()) {
|
||||||
memberDescriptor.accept(this, namespaceScope);
|
memberDescriptor.accept(this, namespaceScope);
|
||||||
|
|||||||
@@ -75,11 +75,13 @@ public final class ClassBodyVisitor extends TranslatorVisitor<List<JsPropertyIni
|
|||||||
private JsFunction generateDefaultGetterFunction(@NotNull JetProperty expression,
|
private JsFunction generateDefaultGetterFunction(@NotNull JetProperty expression,
|
||||||
@NotNull TranslationContext context) {
|
@NotNull TranslationContext context) {
|
||||||
JsNameRef backingFieldRef = declareOrGetBackingFieldName(getPropertyName(expression), context).makeRef();
|
JsNameRef backingFieldRef = declareOrGetBackingFieldName(getPropertyName(expression), context).makeRef();
|
||||||
|
backingFieldRef.setQualifier(new JsThisRef());
|
||||||
JsReturn returnExpression = new JsReturn(backingFieldRef);
|
JsReturn returnExpression = new JsReturn(backingFieldRef);
|
||||||
return AstUtil.newFunction
|
return AstUtil.newFunction
|
||||||
(context.enclosingScope(), null, new ArrayList<JsParameter>(), AstUtil.convertToBlock(returnExpression));
|
(context.enclosingScope(), null, new ArrayList<JsParameter>(), AstUtil.convertToBlock(returnExpression));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO rewrite
|
||||||
@NotNull
|
@NotNull
|
||||||
private JsName declareOrGetBackingFieldName(@NotNull String propertyName, @NotNull TranslationContext context) {
|
private JsName declareOrGetBackingFieldName(@NotNull String propertyName, @NotNull TranslationContext context) {
|
||||||
String backingFieldName = Namer.getBackingFieldNameForProperty(propertyName);
|
String backingFieldName = Namer.getBackingFieldNameForProperty(propertyName);
|
||||||
@@ -113,6 +115,7 @@ public final class ClassBodyVisitor extends TranslatorVisitor<List<JsPropertyIni
|
|||||||
private JsBinaryOperation assignmentToBackingFieldFromDefaultParameter
|
private JsBinaryOperation assignmentToBackingFieldFromDefaultParameter
|
||||||
(@NotNull JetProperty expression, @NotNull TranslationContext context, @NotNull JsParameter defaultParameter) {
|
(@NotNull JetProperty expression, @NotNull TranslationContext context, @NotNull JsParameter defaultParameter) {
|
||||||
JsNameRef backingFieldRef = declareOrGetBackingFieldName(getPropertyName(expression), context).makeRef();
|
JsNameRef backingFieldRef = declareOrGetBackingFieldName(getPropertyName(expression), context).makeRef();
|
||||||
|
backingFieldRef.setQualifier(new JsThisRef());
|
||||||
JsBinaryOperation assignExpression = new JsBinaryOperation(JsBinaryOperator.ASG);
|
JsBinaryOperation assignExpression = new JsBinaryOperation(JsBinaryOperator.ASG);
|
||||||
assignExpression.setArg1(backingFieldRef);
|
assignExpression.setArg1(backingFieldRef);
|
||||||
assignExpression.setArg2(defaultParameter.getName().makeRef());
|
assignExpression.setArg2(defaultParameter.getName().makeRef());
|
||||||
|
|||||||
@@ -2,12 +2,16 @@ package org.jetbrains.k2js.translate;
|
|||||||
|
|
||||||
import com.google.dart.compiler.backend.js.ast.*;
|
import com.google.dart.compiler.backend.js.ast.*;
|
||||||
import com.google.dart.compiler.util.AstUtil;
|
import com.google.dart.compiler.util.AstUtil;
|
||||||
|
import org.apache.velocity.runtime.directive.Block;
|
||||||
|
import org.eclipse.jdt.core.dom.Initializer;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetClass;
|
import org.jetbrains.jet.lang.psi.JetClass;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
|
import sun.org.mozilla.javascript.internal.Function;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -59,8 +63,16 @@ public final class ClassTranslator extends AbstractTranslator {
|
|||||||
return initializer;
|
return initializer;
|
||||||
}
|
}
|
||||||
|
|
||||||
private JsFunction generateInitializeMethodBody(JetClass classDeclaration) {
|
// Note: we explicitly create JsFunction here because initialize function itself has no descriptor and
|
||||||
return AstUtil.newFunction(scope(), null, null, new JsBlock());
|
// is never referenced explicitly.
|
||||||
|
@NotNull
|
||||||
|
private JsFunction generateInitializeMethodBody(@NotNull JetClass classDeclaration) {
|
||||||
|
InitializerVisitor initializerVisitor = new InitializerVisitor();
|
||||||
|
List<JsStatement> initializerStatements = classDeclaration.accept(initializerVisitor,
|
||||||
|
translationContext().newClass(classDeclaration));
|
||||||
|
JsBlock block = new JsBlock();
|
||||||
|
block.setStatements(initializerStatements);
|
||||||
|
return AstUtil.newFunction(translationContext().enclosingScope(), null, null, block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import org.jetbrains.jet.lang.psi.JetExpression;
|
|||||||
*/
|
*/
|
||||||
public final class ExpressionTranslator extends AbstractTranslator {
|
public final class ExpressionTranslator extends AbstractTranslator {
|
||||||
|
|
||||||
final private ExpressionVisitor visitor = new ExpressionVisitor();
|
final private ExpressionVisitor visitor = new ExpressionVisitor(translationContext());
|
||||||
|
|
||||||
public ExpressionTranslator(@NotNull TranslationContext context) {
|
public ExpressionTranslator(@NotNull TranslationContext context) {
|
||||||
super(context);
|
super(context);
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import com.google.dart.compiler.backend.js.ast.JsExpression;
|
|||||||
import com.google.dart.compiler.backend.js.ast.*;
|
import com.google.dart.compiler.backend.js.ast.*;
|
||||||
import com.google.dart.compiler.backend.js.ast.JsReturn;
|
import com.google.dart.compiler.backend.js.ast.JsReturn;
|
||||||
import com.google.dart.compiler.util.AstUtil;
|
import com.google.dart.compiler.util.AstUtil;
|
||||||
import com.sun.xml.internal.bind.v2.runtime.reflect.opt.Const;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
||||||
@@ -17,6 +16,7 @@ import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
|
|||||||
import org.jetbrains.jet.lexer.JetToken;
|
import org.jetbrains.jet.lexer.JetToken;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -24,6 +24,8 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||||
|
|
||||||
|
public ExpressionVisitor(TranslationContext context) {
|
||||||
|
}
|
||||||
|
|
||||||
//TODO method too long
|
//TODO method too long
|
||||||
@Override
|
@Override
|
||||||
@@ -87,13 +89,39 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitBinaryExpression(@NotNull JetBinaryExpression expression,
|
public JsNode visitBinaryExpression(@NotNull JetBinaryExpression expression,
|
||||||
@NotNull TranslationContext context) {
|
@NotNull TranslationContext context) {
|
||||||
|
JsInvocation setterCall = translateAsSetterCall(expression, context);
|
||||||
|
if (setterCall != null) {
|
||||||
|
return setterCall;
|
||||||
|
}
|
||||||
|
return translateAsBinaryOperation(expression, context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JsInvocation translateAsSetterCall(@NotNull JetBinaryExpression expression,
|
||||||
|
@NotNull TranslationContext context) {
|
||||||
|
JetToken jetOperationToken = (JetToken)expression.getOperationToken();
|
||||||
|
if (!OperationTranslator.isAssignment(jetOperationToken)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
PropertyAccessTranslator translator = new PropertyAccessTranslator(context);
|
||||||
|
JetExpression leftExpression = expression.getLeft();
|
||||||
|
JsInvocation setterCall = translator.resolveAsPropertySet(leftExpression);
|
||||||
|
if (setterCall == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
JetExpression rightExpression = expression.getRight();
|
||||||
|
assert rightExpression != null : "Selector should not be null";
|
||||||
|
JsExpression right = AstUtil.convertToExpression(rightExpression.accept(this, context));
|
||||||
|
setterCall.setArguments(Arrays.asList(right));
|
||||||
|
return setterCall;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsNode translateAsBinaryOperation(@NotNull JetBinaryExpression expression, @NotNull TranslationContext context) {
|
||||||
JsExpression left = AstUtil.convertToExpression(expression.getLeft().accept(this, context));
|
JsExpression left = AstUtil.convertToExpression(expression.getLeft().accept(this, context));
|
||||||
JetExpression rightExpression = expression.getRight();
|
JetExpression rightExpression = expression.getRight();
|
||||||
if (rightExpression == null) {
|
assert rightExpression != null : "Selector should not be null";
|
||||||
throw new AssertionError("BinaryExpression with no right parameter");
|
|
||||||
}
|
|
||||||
JsExpression right = AstUtil.convertToExpression(rightExpression.accept(this, context));
|
JsExpression right = AstUtil.convertToExpression(rightExpression.accept(this, context));
|
||||||
//TODO cast dangerous?
|
|
||||||
JetToken jetOperationToken = (JetToken)expression.getOperationToken();
|
JetToken jetOperationToken = (JetToken)expression.getOperationToken();
|
||||||
return new JsBinaryOperation(OperationTranslator.getBinaryOperator(jetOperationToken), left, right);
|
return new JsBinaryOperation(OperationTranslator.getBinaryOperator(jetOperationToken), left, right);
|
||||||
}
|
}
|
||||||
@@ -281,6 +309,25 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitDotQualifiedExpression(@NotNull JetDotQualifiedExpression expression,
|
public JsNode visitDotQualifiedExpression(@NotNull JetDotQualifiedExpression expression,
|
||||||
@NotNull TranslationContext context) {
|
@NotNull TranslationContext context) {
|
||||||
|
JsInvocation getterCall = translateAsGetterCall(expression, context);
|
||||||
|
if (getterCall != null) {
|
||||||
|
return getterCall;
|
||||||
|
}
|
||||||
|
return translateAsQualifiedExpression(expression, context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private JsInvocation translateAsGetterCall(@NotNull JetDotQualifiedExpression expression,
|
||||||
|
@NotNull TranslationContext context) {
|
||||||
|
JsInvocation result;
|
||||||
|
PropertyAccessTranslator translator = new PropertyAccessTranslator(context);
|
||||||
|
result = translator.resolveAsPropertyGet(expression);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsNode translateAsQualifiedExpression(@NotNull JetDotQualifiedExpression expression,
|
||||||
|
@NotNull TranslationContext context) {
|
||||||
JsExpression receiver = AstUtil.convertToExpression(expression.getReceiverExpression().accept(this, context));
|
JsExpression receiver = AstUtil.convertToExpression(expression.getReceiverExpression().accept(this, context));
|
||||||
JetExpression jetSelector = expression.getSelectorExpression();
|
JetExpression jetSelector = expression.getSelectorExpression();
|
||||||
assert jetSelector != null : "Selector should not be null in dot qualified expression.";
|
assert jetSelector != null : "Selector should not be null in dot qualified expression.";
|
||||||
@@ -288,18 +335,27 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
assert (selector instanceof JsNameRef || selector instanceof JsInvocation)
|
assert (selector instanceof JsNameRef || selector instanceof JsInvocation)
|
||||||
: "Selector should be a name reference or a method invocation in dot qualified expression.";
|
: "Selector should be a name reference or a method invocation in dot qualified expression.";
|
||||||
if (selector instanceof JsInvocation) {
|
if (selector instanceof JsInvocation) {
|
||||||
JsInvocation result = (JsInvocation)selector;
|
return translateAsQualifiedInvocation(receiver, (JsInvocation) selector);
|
||||||
JsExpression qualifier = result.getQualifier();
|
|
||||||
JsNameRef nameRef = (JsNameRef)qualifier;
|
|
||||||
nameRef.setQualifier(receiver);
|
|
||||||
return result;
|
|
||||||
} else {
|
} else {
|
||||||
JsNameRef result = (JsNameRef)selector;
|
return translateAsQualifiedNameReference(receiver, (JsNameRef) selector);
|
||||||
result.setQualifier(receiver);
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsNode translateAsQualifiedNameReference(@NotNull JsExpression receiver, @NotNull JsNameRef selector) {
|
||||||
|
JsNameRef result = (JsNameRef)selector;
|
||||||
|
result.setQualifier(receiver);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsNode translateAsQualifiedInvocation(@NotNull JsExpression receiver, @NotNull JsInvocation selector) {
|
||||||
|
JsInvocation result = (JsInvocation)selector;
|
||||||
|
JsExpression qualifier = result.getQualifier();
|
||||||
|
JsNameRef nameRef = (JsNameRef)qualifier;
|
||||||
|
nameRef.setQualifier(receiver);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package org.jetbrains.k2js.translate;
|
||||||
|
|
||||||
|
import com.google.dart.compiler.backend.js.ast.*;
|
||||||
|
import com.google.dart.compiler.util.AstUtil;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
|
||||||
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Talanov Pavel
|
||||||
|
*
|
||||||
|
* This visitor collects all initializers from a given class in a list of statements.
|
||||||
|
* Note: we do use this to preserve the order in which initializers are executed.
|
||||||
|
*/
|
||||||
|
public class InitializerVisitor extends TranslatorVisitor<List<JsStatement>> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public List<JsStatement> visitClass(@NotNull JetClass expression, @NotNull TranslationContext context) {
|
||||||
|
List<JsStatement> initializerStatements = new ArrayList<JsStatement>();
|
||||||
|
for (JetDeclaration declaration : expression.getDeclarations()) {
|
||||||
|
initializerStatements.addAll(declaration.accept(this, context));
|
||||||
|
}
|
||||||
|
return initializerStatements;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public List<JsStatement> visitProperty(@NotNull JetProperty expression, @NotNull TranslationContext context) {
|
||||||
|
JetExpression initializer = expression.getInitializer();
|
||||||
|
if (initializer == null) {
|
||||||
|
return new ArrayList<JsStatement>();
|
||||||
|
}
|
||||||
|
ExpressionTranslator translator = new ExpressionTranslator(context);
|
||||||
|
JsExpression initExpression = AstUtil.convertToExpression(translator.translate(initializer));
|
||||||
|
return Arrays.asList(assignmentToBackingField(expression, initExpression, context));
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
JsStatement assignmentToBackingField(@NotNull JetProperty property, @NotNull JsExpression initExpression,
|
||||||
|
@NotNull TranslationContext context) {
|
||||||
|
JsName backingFieldName = context.classScope()
|
||||||
|
.findExistingName(Namer.getBackingFieldNameForProperty(property.getName()));
|
||||||
|
assert backingFieldName != null : "Class scope should contain backing field names";
|
||||||
|
JsNameRef backingFieldRef = backingFieldName.makeRef();
|
||||||
|
backingFieldRef.setQualifier(new JsThisRef());
|
||||||
|
return AstUtil.convertToStatement(AstUtil.newAssignment(backingFieldRef, initExpression));
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO : implement
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public List<JsStatement> visitAnonymousInitializer(@NotNull JetClassInitializer initializer,
|
||||||
|
@NotNull TranslationContext context) {
|
||||||
|
return new ArrayList<JsStatement>();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
// Not interested in other types of declarations, they do not contain initializers.
|
||||||
|
public List<JsStatement> visitDeclaration(@NotNull JetDeclaration expression, @NotNull TranslationContext context) {
|
||||||
|
return new ArrayList<JsStatement>();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -20,9 +20,9 @@ public final class Namer {
|
|||||||
public static final String INITIALIZE_METHOD_NAME = "initialize";
|
public static final String INITIALIZE_METHOD_NAME = "initialize";
|
||||||
private static final String CLASS_OBJECT_NAME = "Class";
|
private static final String CLASS_OBJECT_NAME = "Class";
|
||||||
//private static final String CLASS_CREATE_METHOD_NAME = "create";
|
//private static final String CLASS_CREATE_METHOD_NAME = "create";
|
||||||
private static final String SETTER_PREFIX = "_set_";
|
private static final String SETTER_PREFIX = "set_";
|
||||||
private static final String GETTER_PREFIX = "_get_";
|
private static final String GETTER_PREFIX = "get_";
|
||||||
private static final String BACKING_FIELD_PREFIX = "_$_";
|
private static final String BACKING_FIELD_PREFIX = "_";
|
||||||
// public static final String DEFAULT_SETTER_PARAM_NAME = "val";
|
// public static final String DEFAULT_SETTER_PARAM_NAME = "val";
|
||||||
|
|
||||||
public static String getClassObjectName() {
|
public static String getClassObjectName() {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ public final class OperationTranslator {
|
|||||||
map.put(JetTokens.LT, JsBinaryOperator.LT);
|
map.put(JetTokens.LT, JsBinaryOperator.LT);
|
||||||
map.put(JetTokens.LTEQ, JsBinaryOperator.LTE);
|
map.put(JetTokens.LTEQ, JsBinaryOperator.LTE);
|
||||||
map.put(JetTokens.EQEQ, JsBinaryOperator.EQ);
|
map.put(JetTokens.EQEQ, JsBinaryOperator.EQ);
|
||||||
|
map.put(JetTokens.ANDAND, JsBinaryOperator.AND);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static JsBinaryOperator getBinaryOperator(JetToken token) {
|
public static JsBinaryOperator getBinaryOperator(JetToken token) {
|
||||||
@@ -38,5 +39,8 @@ public final class OperationTranslator {
|
|||||||
throw new AssertionError("Invalid map: should contain token: " + token.toString());
|
throw new AssertionError("Invalid map: should contain token: " + token.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isAssignment(JetToken token) {
|
||||||
|
return (token == JetTokens.EQ);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,105 @@
|
|||||||
|
package org.jetbrains.k2js.translate;
|
||||||
|
|
||||||
|
import com.google.dart.compiler.backend.js.ast.*;
|
||||||
|
import com.google.dart.compiler.util.AstUtil;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.PropertyGetterDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.PropertySetterDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetDotQualifiedExpression;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||||
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.ResolvedCall;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Talanov Pavel
|
||||||
|
*/
|
||||||
|
//TODO ask for code review. Class has messy code.
|
||||||
|
public final class PropertyAccessTranslator extends AbstractTranslator {
|
||||||
|
|
||||||
|
public PropertyAccessTranslator(@NotNull TranslationContext context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JsInvocation resolveAsPropertyGet(@NotNull JetDotQualifiedExpression expression) {
|
||||||
|
if (!(expression instanceof JetDotQualifiedExpression)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
JetDotQualifiedExpression dotQualifiedExpression = (JetDotQualifiedExpression)expression;
|
||||||
|
JetExpression selectorExpression = dotQualifiedExpression.getSelectorExpression();
|
||||||
|
assert selectorExpression != null : "Selector should not be null.";
|
||||||
|
JsName getterName = getPropertyGetterName(selectorExpression);
|
||||||
|
if (getterName == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return translateReceiverAndReturnAccessorInvocation(dotQualifiedExpression, getterName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JsInvocation translateReceiverAndReturnAccessorInvocation
|
||||||
|
(@NotNull JetDotQualifiedExpression dotQualifiedExpression, @NotNull JsName accessorName) {
|
||||||
|
ExpressionTranslator translator = new ExpressionTranslator(translationContext());
|
||||||
|
JsNode node = translator.translate(dotQualifiedExpression.getReceiverExpression());
|
||||||
|
JsNameRef result = accessorName.makeRef();
|
||||||
|
result.setQualifier(AstUtil.convertToExpression(node));
|
||||||
|
return AstUtil.newInvocation(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JsInvocation resolveAsPropertySet(@NotNull JetExpression expression) {
|
||||||
|
if (!(expression instanceof JetDotQualifiedExpression)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
JetDotQualifiedExpression dotQualifiedExpression = (JetDotQualifiedExpression)expression;
|
||||||
|
JetExpression selectorExpression = dotQualifiedExpression.getSelectorExpression();
|
||||||
|
assert selectorExpression != null : "Selector should not be null.";
|
||||||
|
JsName getterName = getPropertySetterName(selectorExpression);
|
||||||
|
if (getterName == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return translateReceiverAndReturnAccessorInvocation(dotQualifiedExpression, getterName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JsName getPropertyGetterName(@NotNull JetExpression expression) {
|
||||||
|
PropertyDescriptor property = getPropertyDescriptor(expression);
|
||||||
|
if (property == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
PropertyGetterDescriptor getter = property.getGetter();
|
||||||
|
if (getter == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return translationContext().declarations().getName(getter);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JsName getPropertySetterName(@NotNull JetExpression expression) {
|
||||||
|
PropertyDescriptor property = getPropertyDescriptor(expression);
|
||||||
|
if (property == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
PropertySetterDescriptor setter = property.getSetter();
|
||||||
|
if (setter == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return translationContext().declarations().getName(setter);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private PropertyDescriptor getPropertyDescriptor(@NotNull JetExpression expression) {
|
||||||
|
ResolvedCall<?> resolvedCall =
|
||||||
|
translationContext().bindingContext().get(BindingContext.RESOLVED_CALL, expression);
|
||||||
|
if (resolvedCall != null) {
|
||||||
|
DeclarationDescriptor descriptor = resolvedCall.getCandidateDescriptor();
|
||||||
|
if (descriptor instanceof PropertyDescriptor) {
|
||||||
|
return (PropertyDescriptor)descriptor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -152,4 +152,9 @@ public final class TranslationContext {
|
|||||||
assert descriptor != null : "Element should have a descriptor";
|
assert descriptor != null : "Element should have a descriptor";
|
||||||
return getScopeForDescriptor(descriptor);
|
return getScopeForDescriptor(descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public DeclarationExtractor declarations() {
|
||||||
|
return extractor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,4 +57,19 @@ public final class ClassTest extends TranslationTest {
|
|||||||
testFooBoxIsTrue("accessToInstanceProperty.kt");
|
testFooBoxIsTrue("accessToInstanceProperty.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void twoClassesWithProperties() throws Exception {
|
||||||
|
testFooBoxIsTrue("twoClassesWithProperties.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setter() throws Exception {
|
||||||
|
performTest("setter.kt", "foo", "f", 99.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void constructorWithParameter() throws Exception {
|
||||||
|
testFooBoxIsTrue("constructorWithParameter.kt");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
namespace foo
|
namespace foo
|
||||||
|
|
||||||
class Test() {
|
class Test() {
|
||||||
val a : Int = 1
|
var a : Int = 100
|
||||||
}
|
}
|
||||||
|
|
||||||
fun box() : Boolean {
|
fun box() : Boolean {
|
||||||
var test = Test()
|
var test = Test()
|
||||||
return (test.a == 1)
|
test.a = 1
|
||||||
|
return (1 == test.a)
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
namespace foo
|
||||||
|
|
||||||
|
class Test(var a : Int) {
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box() : Boolean {
|
||||||
|
var test = Test(1)
|
||||||
|
return (test.a == 1)
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
namespace foo
|
||||||
|
|
||||||
|
class Test() {
|
||||||
|
var a : Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
fun f() : Int {
|
||||||
|
var a = Test()
|
||||||
|
var b = Test()
|
||||||
|
b.a = 100
|
||||||
|
return (b.a - a.a)
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
namespace foo
|
||||||
|
|
||||||
|
class A() {
|
||||||
|
val a : Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
class B() {
|
||||||
|
val b : Int = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box() : Boolean {
|
||||||
|
return ((A().a == 1) && (B().b == 2);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user