Added default getter/setter support and initializer support.
This commit is contained in:
Generated
+320
-266
@@ -6,11 +6,25 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<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$/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$/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$/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$/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$/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/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>
|
||||
<ignored path="k2js.iws" />
|
||||
<ignored path=".idea/workspace.xml" />
|
||||
@@ -35,7 +49,20 @@
|
||||
</component>
|
||||
<component name="DebuggerManager">
|
||||
<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="LOG_ENABLED" value="false" />
|
||||
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||
@@ -88,78 +115,9 @@
|
||||
<favorites_list name="k2js" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<splitter split-orientation="horizontal" split-proportion="0.38839287">
|
||||
<splitter split-orientation="horizontal" split-proportion="0.27544528">
|
||||
<split-first>
|
||||
<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">
|
||||
<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">
|
||||
@@ -189,14 +147,46 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</split-first>
|
||||
<split-second>
|
||||
<leaf>
|
||||
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="true" current-in-tab="true">
|
||||
<file leaf-file-name="twoClassesWithProperties.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<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>
|
||||
</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">
|
||||
<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>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
@@ -204,10 +194,32 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ClassBodyVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java">
|
||||
<file leaf-file-name="constructorWithParameter.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test_files/test_cases/constructorWithParameter.kt">
|
||||
<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>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
@@ -215,10 +227,66 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</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">
|
||||
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java">
|
||||
<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>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
@@ -226,70 +294,19 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="FunctionTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/FunctionTranslator.java">
|
||||
<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="26" column="30" selection-start="831" selection-end="831" 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">
|
||||
<state line="39" column="28" selection-start="1478" selection-end="1478" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</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">
|
||||
<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">
|
||||
<state line="10" column="19" selection-start="250" selection-end="250" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@@ -311,22 +328,22 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="changedFiles">
|
||||
<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/ClassTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/BindingUtils.java" />
|
||||
<option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsFunction.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/test_files/test_cases/twoClassesProperties.kt" />
|
||||
<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/JsBlock.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/test/org/jetbrains/k2js/test/FunctionTest.java" />
|
||||
<option value="$PROJECT_DIR$/translator/test_files/test_cases/functionUsedBeforeDeclaration.kt" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Namer.java" />
|
||||
<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>
|
||||
</option>
|
||||
</component>
|
||||
@@ -463,6 +480,50 @@
|
||||
<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="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_ELEMENT>
|
||||
<option name="myItemId" value="k2js" />
|
||||
@@ -554,7 +615,7 @@
|
||||
<recent name="C:\Dev\Projects\k2js\src\org\jetbrains\k2js\translate" />
|
||||
</key>
|
||||
</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">
|
||||
<module name="translator" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
@@ -577,17 +638,17 @@
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</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" />
|
||||
<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="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="pattern" />
|
||||
<option name="VM_PARAMETERS" value="-ea" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/translator" />
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.FunctionTest" />
|
||||
<option name="METHOD_NAME" />
|
||||
<option name="TEST_OBJECT" value="class" />
|
||||
<option name="VM_PARAMETERS" />
|
||||
<option name="PARAMETERS" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="ENV_VARIABLES" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
@@ -595,21 +656,17 @@
|
||||
</option>
|
||||
<envs />
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="50097" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</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" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.ClassTest" />
|
||||
<option name="METHOD_NAME" value="methodDeclarationAndCall" />
|
||||
<option name="METHOD_NAME" value="twoClassesWithProperties" />
|
||||
<option name="TEST_OBJECT" value="method" />
|
||||
<option name="VM_PARAMETERS" value="-ea" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
@@ -622,7 +679,7 @@
|
||||
<envs />
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="50132" />
|
||||
<option name="DEBUG_PORT" value="53339" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
@@ -651,13 +708,13 @@
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</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" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.FunctionTest" />
|
||||
<option name="METHOD_NAME" value="functionUsedBeforeDeclaration" />
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.ClassTest" />
|
||||
<option name="METHOD_NAME" value="setter" />
|
||||
<option name="TEST_OBJECT" value="method" />
|
||||
<option name="VM_PARAMETERS" value="-ea" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
@@ -670,13 +727,11 @@
|
||||
<envs />
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="52447" />
|
||||
<option name="DEBUG_PORT" value="53959" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="Remote" factoryName="Remote">
|
||||
@@ -755,10 +810,10 @@
|
||||
</configuration>
|
||||
<list size="5">
|
||||
<item index="0" class="java.lang.String" itemvalue="JUnit.ClassTest" />
|
||||
<item index="1" class="java.lang.String" itemvalue="JUnit.Temp suite" />
|
||||
<item index="2" class="java.lang.String" itemvalue="JUnit.ClassTest.methodDeclarationAndCall" />
|
||||
<item index="1" class="java.lang.String" itemvalue="JUnit.FunctionTest" />
|
||||
<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="4" class="java.lang.String" itemvalue="JUnit.FunctionTest.functionUsedBeforeDeclaration" />
|
||||
<item index="4" class="java.lang.String" itemvalue="JUnit.ClassTest.setter" />
|
||||
</list>
|
||||
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
||||
<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="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="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="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="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="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="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="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="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="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="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="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="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="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="11" 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="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="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="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>
|
||||
</component>
|
||||
<component name="VcsContentAnnotationSettings">
|
||||
@@ -848,7 +903,7 @@
|
||||
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
|
||||
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
|
||||
<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="OPTIMIZE_IMPORTS_BEFORE_PROJECT_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 simple method call support." />
|
||||
<MESSAGE value="Added DeclarationExtractor logic." />
|
||||
<MESSAGE value="Added a test for extractor." />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager />
|
||||
@@ -880,132 +936,130 @@
|
||||
<option name="FILTER_TARGETS" value="false" />
|
||||
</component>
|
||||
<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">
|
||||
<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>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</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">
|
||||
<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 />
|
||||
</state>
|
||||
</provider>
|
||||
</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">
|
||||
<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>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</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">
|
||||
<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>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</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">
|
||||
<state line="14" column="23" selection-start="450" selection-end="450" vertical-scroll-proportion="0.32425067">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
<state line="12" column="48" selection-start="297" selection-end="297" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</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>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java">
|
||||
<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>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</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">
|
||||
<state line="10" column="103" selection-start="294" selection-end="294" 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">
|
||||
<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$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
|
||||
<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>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</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 name="masterDetails">
|
||||
<states>
|
||||
|
||||
@@ -12,38 +12,44 @@ import java.util.List;
|
||||
*/
|
||||
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(JsStatement stmt) {
|
||||
stmts.add(stmt);
|
||||
}
|
||||
|
||||
public List<JsStatement> getStatements() {
|
||||
return stmts;
|
||||
}
|
||||
|
||||
public void addStatement(JsStatement statement) {
|
||||
assert statement != null;
|
||||
stmts.add(statement);
|
||||
}
|
||||
|
||||
public boolean isGlobalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void traverse(JsVisitor v, JsContext ctx) {
|
||||
if (v.visit(this, ctx)) {
|
||||
v.acceptWithInsertRemove(stmts);
|
||||
public JsBlock() {
|
||||
}
|
||||
|
||||
public JsBlock(JsStatement stmt) {
|
||||
stmts.add(stmt);
|
||||
}
|
||||
|
||||
public List<JsStatement> getStatements() {
|
||||
return stmts;
|
||||
}
|
||||
|
||||
public void addStatement(JsStatement statement) {
|
||||
assert statement != null;
|
||||
stmts.add(statement);
|
||||
}
|
||||
|
||||
public boolean isGlobalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void traverse(JsVisitor v, JsContext ctx) {
|
||||
if (v.visit(this, ctx)) {
|
||||
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() {
|
||||
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;
|
||||
|
||||
import com.google.dart.compiler.backend.js.ast.JsName;
|
||||
import com.google.dart.compiler.backend.js.ast.JsScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
@@ -13,6 +14,8 @@ import java.util.Map;
|
||||
public final class DeclarationExtractor {
|
||||
private final Map<DeclarationDescriptor, JsScope> descriptorToScopeMap
|
||||
= new HashMap<DeclarationDescriptor, JsScope>();
|
||||
private final Map<DeclarationDescriptor, JsName> descriptorToNameMap
|
||||
= new HashMap<DeclarationDescriptor, JsName>();
|
||||
|
||||
public DeclarationExtractor() {
|
||||
|
||||
@@ -30,7 +33,18 @@ public final class DeclarationExtractor {
|
||||
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);
|
||||
}
|
||||
|
||||
/*package*/ void putName(@NotNull DeclarationDescriptor descriptor, @NotNull JsName name) {
|
||||
descriptorToNameMap.put(descriptor, name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
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.intellij.codeInspection.ex.Descriptor;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.k2js.translate.Namer;
|
||||
@@ -20,11 +18,11 @@ public final class ExtractionVisitor extends DeclarationDescriptorVisitor<Void,
|
||||
|
||||
|
||||
@Override
|
||||
public Void visitClassDescriptor(ClassDescriptor descriptor, JsScope enclosingScope) {
|
||||
public Void visitClassDescriptor(@NotNull ClassDescriptor descriptor, @NotNull JsScope enclosingScope) {
|
||||
String className = descriptor.getName();
|
||||
enclosingScope.declareName(className);
|
||||
JsScope classScope = new JsScope(enclosingScope, "Scope for class " + className);
|
||||
extractor.put(descriptor, classScope);
|
||||
extractor.putName(descriptor, enclosingScope.declareName(className));
|
||||
JsScope classScope = new JsScope(enclosingScope, "class " + className);
|
||||
extractor.putScope(descriptor, classScope);
|
||||
for (DeclarationDescriptor memberDescriptor :
|
||||
descriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
|
||||
memberDescriptor.accept(this, classScope);
|
||||
@@ -33,28 +31,50 @@ public final class ExtractionVisitor extends DeclarationDescriptorVisitor<Void,
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitFunctionDescriptor(FunctionDescriptor descriptor, JsScope enclosingScope) {
|
||||
public Void visitFunctionDescriptor(@NotNull FunctionDescriptor descriptor, @NotNull JsScope enclosingScope) {
|
||||
String functionName = descriptor.getName();
|
||||
enclosingScope.declareName(functionName);
|
||||
JsScope functionScope = new JsScope(enclosingScope, "Scope for function " + functionName);
|
||||
extractor.put(descriptor, functionScope);
|
||||
extractor.putName(descriptor, enclosingScope.declareName(functionName));
|
||||
JsScope functionScope = new JsScope(enclosingScope, "function " + functionName);
|
||||
extractor.putScope(descriptor, functionScope);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitPropertyDescriptor(PropertyDescriptor descriptor, JsScope enclosingScope) {
|
||||
String propertyName = descriptor.getName();
|
||||
enclosingScope.declareName(Namer.getNameForSetter(propertyName));
|
||||
enclosingScope.declareName(Namer.getNameForGetter(propertyName));
|
||||
public Void visitPropertyDescriptor(@NotNull PropertyDescriptor descriptor, @NotNull JsScope enclosingScope) {
|
||||
PropertySetterDescriptor setter = descriptor.getSetter();
|
||||
if (setter != null) {
|
||||
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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitNamespaceDescriptor(NamespaceDescriptor descriptor, JsScope enclosingScope) {
|
||||
String namespaceName = descriptor.getName();
|
||||
enclosingScope.declareName(namespaceName);
|
||||
JsScope namespaceScope = new JsScope(enclosingScope, "Scope for namespace " + namespaceName);
|
||||
extractor.put(descriptor, namespaceScope);
|
||||
extractor.putName(descriptor, enclosingScope.declareName(namespaceName));
|
||||
JsScope namespaceScope = new JsScope(enclosingScope, "namespace " + namespaceName);
|
||||
extractor.putScope(descriptor, namespaceScope);
|
||||
for (DeclarationDescriptor memberDescriptor :
|
||||
descriptor.getMemberScope().getAllDescriptors()) {
|
||||
memberDescriptor.accept(this, namespaceScope);
|
||||
|
||||
@@ -75,11 +75,13 @@ public final class ClassBodyVisitor extends TranslatorVisitor<List<JsPropertyIni
|
||||
private JsFunction generateDefaultGetterFunction(@NotNull JetProperty expression,
|
||||
@NotNull TranslationContext context) {
|
||||
JsNameRef backingFieldRef = declareOrGetBackingFieldName(getPropertyName(expression), context).makeRef();
|
||||
backingFieldRef.setQualifier(new JsThisRef());
|
||||
JsReturn returnExpression = new JsReturn(backingFieldRef);
|
||||
return AstUtil.newFunction
|
||||
(context.enclosingScope(), null, new ArrayList<JsParameter>(), AstUtil.convertToBlock(returnExpression));
|
||||
}
|
||||
|
||||
//TODO rewrite
|
||||
@NotNull
|
||||
private JsName declareOrGetBackingFieldName(@NotNull String propertyName, @NotNull TranslationContext context) {
|
||||
String backingFieldName = Namer.getBackingFieldNameForProperty(propertyName);
|
||||
@@ -113,6 +115,7 @@ public final class ClassBodyVisitor extends TranslatorVisitor<List<JsPropertyIni
|
||||
private JsBinaryOperation assignmentToBackingFieldFromDefaultParameter
|
||||
(@NotNull JetProperty expression, @NotNull TranslationContext context, @NotNull JsParameter defaultParameter) {
|
||||
JsNameRef backingFieldRef = declareOrGetBackingFieldName(getPropertyName(expression), context).makeRef();
|
||||
backingFieldRef.setQualifier(new JsThisRef());
|
||||
JsBinaryOperation assignExpression = new JsBinaryOperation(JsBinaryOperator.ASG);
|
||||
assignExpression.setArg1(backingFieldRef);
|
||||
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.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.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetClass;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
import sun.org.mozilla.javascript.internal.Function;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -59,8 +63,16 @@ public final class ClassTranslator extends AbstractTranslator {
|
||||
return initializer;
|
||||
}
|
||||
|
||||
private JsFunction generateInitializeMethodBody(JetClass classDeclaration) {
|
||||
return AstUtil.newFunction(scope(), null, null, new JsBlock());
|
||||
// Note: we explicitly create JsFunction here because initialize function itself has no descriptor and
|
||||
// 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 {
|
||||
|
||||
final private ExpressionVisitor visitor = new ExpressionVisitor();
|
||||
final private ExpressionVisitor visitor = new ExpressionVisitor(translationContext());
|
||||
|
||||
public ExpressionTranslator(@NotNull TranslationContext 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.JsReturn;
|
||||
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.Nullable;
|
||||
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 java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -24,6 +24,8 @@ import java.util.List;
|
||||
*/
|
||||
public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
|
||||
public ExpressionVisitor(TranslationContext context) {
|
||||
}
|
||||
|
||||
//TODO method too long
|
||||
@Override
|
||||
@@ -87,13 +89,39 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
@NotNull
|
||||
public JsNode visitBinaryExpression(@NotNull JetBinaryExpression expression,
|
||||
@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));
|
||||
JetExpression rightExpression = expression.getRight();
|
||||
if (rightExpression == null) {
|
||||
throw new AssertionError("BinaryExpression with no right parameter");
|
||||
}
|
||||
assert rightExpression != null : "Selector should not be null";
|
||||
JsExpression right = AstUtil.convertToExpression(rightExpression.accept(this, context));
|
||||
//TODO cast dangerous?
|
||||
JetToken jetOperationToken = (JetToken)expression.getOperationToken();
|
||||
return new JsBinaryOperation(OperationTranslator.getBinaryOperator(jetOperationToken), left, right);
|
||||
}
|
||||
@@ -281,6 +309,25 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
@NotNull
|
||||
public JsNode visitDotQualifiedExpression(@NotNull JetDotQualifiedExpression expression,
|
||||
@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));
|
||||
JetExpression jetSelector = expression.getSelectorExpression();
|
||||
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)
|
||||
: "Selector should be a name reference or a method invocation in dot qualified expression.";
|
||||
if (selector instanceof JsInvocation) {
|
||||
JsInvocation result = (JsInvocation)selector;
|
||||
JsExpression qualifier = result.getQualifier();
|
||||
JsNameRef nameRef = (JsNameRef)qualifier;
|
||||
nameRef.setQualifier(receiver);
|
||||
return result;
|
||||
return translateAsQualifiedInvocation(receiver, (JsInvocation) selector);
|
||||
} else {
|
||||
JsNameRef result = (JsNameRef)selector;
|
||||
result.setQualifier(receiver);
|
||||
return result;
|
||||
return translateAsQualifiedNameReference(receiver, (JsNameRef) selector);
|
||||
}
|
||||
}
|
||||
|
||||
@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";
|
||||
private static final String CLASS_OBJECT_NAME = "Class";
|
||||
//private static final String CLASS_CREATE_METHOD_NAME = "create";
|
||||
private static final String SETTER_PREFIX = "_set_";
|
||||
private static final String GETTER_PREFIX = "_get_";
|
||||
private static final String BACKING_FIELD_PREFIX = "_$_";
|
||||
private static final String SETTER_PREFIX = "set_";
|
||||
private static final String GETTER_PREFIX = "get_";
|
||||
private static final String BACKING_FIELD_PREFIX = "_";
|
||||
// public static final String DEFAULT_SETTER_PARAM_NAME = "val";
|
||||
|
||||
public static String getClassObjectName() {
|
||||
|
||||
@@ -27,6 +27,7 @@ public final class OperationTranslator {
|
||||
map.put(JetTokens.LT, JsBinaryOperator.LT);
|
||||
map.put(JetTokens.LTEQ, JsBinaryOperator.LTE);
|
||||
map.put(JetTokens.EQEQ, JsBinaryOperator.EQ);
|
||||
map.put(JetTokens.ANDAND, JsBinaryOperator.AND);
|
||||
}
|
||||
|
||||
public static JsBinaryOperator getBinaryOperator(JetToken token) {
|
||||
@@ -38,5 +39,8 @@ public final class OperationTranslator {
|
||||
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";
|
||||
return getScopeForDescriptor(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public DeclarationExtractor declarations() {
|
||||
return extractor;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,4 +57,19 @@ public final class ClassTest extends TranslationTest {
|
||||
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
|
||||
|
||||
class Test() {
|
||||
val a : Int = 1
|
||||
var a : Int = 100
|
||||
}
|
||||
|
||||
fun box() : Boolean {
|
||||
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