basic intrinsic implementation. very hacky
This commit is contained in:
Generated
+353
-333
@@ -7,19 +7,25 @@
|
||||
<bookmark url="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/safeCallReturnsNullIfFails.kt" line="3" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="Work on reference expression. Test fixes to follow.">
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java" />
|
||||
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/BinaryOperationIntrinsic.java" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/Intrinsic.java" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/IntrinsicDeclarationVisitor.java" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/Intrinsics.java" />
|
||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/StaticContext.java" />
|
||||
<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/declarations/Declarations.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/Declarations.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/PatternTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/PatternTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/GenerationState.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/GenerationState.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslationContext.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslationContext.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/BinaryOperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/BinaryOperationTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/OperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/OperationTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/UnaryOperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/UnaryOperationTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java" />
|
||||
</list>
|
||||
<ignored path="k2js.iws" />
|
||||
<ignored path=".idea/workspace.xml" />
|
||||
@@ -90,6 +96,45 @@
|
||||
<option name="CONDITION" value="" />
|
||||
<option name="LOG_MESSAGE" value="" />
|
||||
</breakpoint>
|
||||
<breakpoint url="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/OperationTranslator.java" line="32" class="org.jetbrains.k2js.translate.operation.OperationTranslator" package="org.jetbrains.k2js.translate.operation">
|
||||
<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/src/org/jetbrains/k2js/intrinsic/IntrinsicDeclarationVisitor.java" line="33" class="org.jetbrains.k2js.intrinsic.IntrinsicDeclarationVisitor" package="org.jetbrains.k2js.intrinsic">
|
||||
<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/src/org/jetbrains/k2js/intrinsic/IntrinsicDeclarationVisitor.java" line="26" class="org.jetbrains.k2js.intrinsic.IntrinsicDeclarationVisitor" package="org.jetbrains.k2js.intrinsic">
|
||||
<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>
|
||||
</line_breakpoints>
|
||||
<breakpoint_any>
|
||||
<breakpoint>
|
||||
@@ -147,31 +192,154 @@
|
||||
<favorites_list name="k2js" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<splitter split-orientation="horizontal" split-proportion="0.41879195">
|
||||
<splitter split-orientation="horizontal" split-proportion="0.6067114">
|
||||
<split-first>
|
||||
<leaf>
|
||||
<file leaf-file-name="PropertyDescriptor.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java">
|
||||
<file leaf-file-name="Intrinsics.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/Intrinsics.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="175" column="0" selection-start="6343" selection-end="6343" vertical-scroll-proportion="0.0">
|
||||
<state line="39" column="91" selection-start="1477" selection-end="1477" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#616#647#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="StandardClassesTest.java" pinned="false" current="true" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/StandardClassesTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="20" column="27" selection-start="390" selection-end="390" vertical-scroll-proportion="0.48022598">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ReflectiveCallable.class" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://C:/Program Files (x86)/JetBrains/IntelliJ IDEA Community Edition 110.408/lib/junit-4.10.jar!/org/junit/internal/runners/model/ReflectiveCallable.class">
|
||||
<file leaf-file-name="breakDoWhile.js" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/while/out/breakDoWhile.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="11" column="40" selection-start="397" selection-end="397" vertical-scroll-proportion="0.0">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ParentRunner.class" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://C:/Program Files (x86)/JetBrains/IntelliJ IDEA Community Edition 110.408/lib/junit-4.10.jar!/org/junit/runners/ParentRunner.class">
|
||||
<file leaf-file-name="WhileTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/WhileTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="43" column="25" selection-start="2461" selection-end="2461" vertical-scroll-proportion="0.0">
|
||||
<state line="16" column="16" selection-start="297" selection-end="297" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="JetStandardLibrary.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardLibrary.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="30" column="13" selection-start="1140" selection-end="1140" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="e#14956#14978#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Library.jet" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Library.jet">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="DeclarationVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/DeclarationVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="70" column="42" selection-start="653" selection-end="2962" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="IntrinsicDeclarationVisitor.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/IntrinsicDeclarationVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="33" column="0" selection-start="1215" selection-end="1215" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="assign.js" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/operation/out/assign.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="DeclarationContext.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/DeclarationContext.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="9" column="19" selection-start="362" selection-end="362" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</split-first>
|
||||
<split-second>
|
||||
<leaf>
|
||||
<file leaf-file-name="BinaryOperationTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/BinaryOperationTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="42" column="47" selection-start="1748" selection-end="1748" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Declarations.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/Declarations.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="47" column="12" selection-start="1898" selection-end="1898" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="e#1007#1041#0" 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/operation/OperationTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="32" column="0" selection-start="1356" selection-end="1356" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="OperationTest.java" pinned="false" current="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperationTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="36" column="16" selection-start="814" selection-end="814" vertical-scroll-proportion="0.92727274">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="PatternMatchingTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="37" column="16" selection-start="772" selection-end="772" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@@ -180,47 +348,16 @@
|
||||
<file leaf-file-name="ClassInheritanceTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassInheritanceTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="17" column="16" selection-start="321" selection-end="321" vertical-scroll-proportion="0.0">
|
||||
<state line="47" column="16" selection-start="1168" selection-end="1168" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="TraitTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TraitTest.java">
|
||||
<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="17" column="16" selection-start="304" selection-end="304" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Declarations.java" pinned="false" current="true" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/Declarations.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="77" column="72" selection-start="3004" selection-end="3004" vertical-scroll-proportion="0.36939722">
|
||||
<folding>
|
||||
<element signature="e#912#946#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Aliaser.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Aliaser.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="32" column="0" selection-start="1097" selection-end="1097" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="e#922#953#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="OperatorOverloadingTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperatorOverloadingTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="47" column="16" selection-start="1070" selection-end="1070" vertical-scroll-proportion="0.0">
|
||||
<state line="37" column="16" selection-start="833" selection-end="833" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@@ -235,111 +372,26 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="classUsesNamespaceProperties.kt" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/classUsesNamespaceProperties.kt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="12" column="78" selection-start="94" selection-end="94" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</split-first>
|
||||
<split-second>
|
||||
<leaf>
|
||||
<file leaf-file-name="ReferenceTranslator.java" pinned="false" current="false" current-in-tab="true">
|
||||
<file leaf-file-name="ReferenceTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="68" column="0" selection-start="2643" selection-end="2643" vertical-scroll-proportion="0.3323398">
|
||||
<state line="73" column="0" selection-start="2860" selection-end="2860" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="UnaryOperationTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/UnaryOperationTranslator.java">
|
||||
<file leaf-file-name="ParentRunner.class" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="jar://C:/Program Files (x86)/JetBrains/IntelliJ IDEA Community Edition 110.408/lib/junit-4.10.jar!/org/junit/runners/ParentRunner.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="128" column="92" selection-start="5282" selection-end="5282" vertical-scroll-proportion="0.0">
|
||||
<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/reference/PropertyAccessTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="105" column="20" selection-start="5187" selection-end="5187" vertical-scroll-proportion="0.0">
|
||||
<state line="34" column="4" selection-start="2015" selection-end="2015" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#0#3733#0" expanded="true" />
|
||||
</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/expression/ExpressionVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="261" column="93" selection-start="11645" selection-end="11645" vertical-scroll-proportion="0.0">
|
||||
<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/operation/OperationTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="45" column="39" selection-start="1882" selection-end="1882" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="BinaryOperationTranslator.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/BinaryOperationTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="148" column="102" selection-start="5773" selection-end="5773" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="TranslationUtils.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="135" column="0" selection-start="6206" selection-end="6206" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="PropertyAccessTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PropertyAccessTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="63" column="16" selection-start="1470" selection-end="1470" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="namespaceCustomAccessors.js" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/out/namespaceCustomAccessors.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="TranslationTest.java" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TranslationTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="2" column="25" selection-start="59" selection-end="59" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</split-second>
|
||||
</splitter>
|
||||
@@ -361,22 +413,22 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="changedFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/class/out/classInstantiation.js" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/DeclarationVisitor.java" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/class/out/simpleInitializer.js" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceProvider.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/PatternTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/GenerationState.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/UnaryOperationTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/OperationTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/BinaryOperationTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/testFiles/propertyAccess/out/namespaceCustomAccessors.js" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/OperatorConventions.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/Intrinsic.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/BinaryOperationIntrinsic.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslationContext.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/StaticContext.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/BinaryOperationTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/OperationTranslator.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/Declarations.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/IntrinsicDeclarationVisitor.java" />
|
||||
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/Intrinsics.java" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -527,7 +579,11 @@
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="trait" />
|
||||
<option name="myItemId" value="expression" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="while" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
@@ -549,7 +605,11 @@
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="trait" />
|
||||
<option name="myItemId" value="expression" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="while" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
@@ -567,73 +627,7 @@
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="standardClasses" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="out" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="k2js" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="translator" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="testFiles" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="standardClasses" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="k2js" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="translator" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="testFiles" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="propertyAccess" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="out" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="k2js" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="translator" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="testFiles" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="propertyAccess" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cases" />
|
||||
<option name="myItemId" value="expression" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
@@ -695,11 +689,29 @@
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="translate" />
|
||||
<option name="myItemId" value="intrinsic" />
|
||||
<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="initializer" />
|
||||
<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>
|
||||
@@ -818,38 +830,6 @@
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager" selected="JUnit.All in jetTests">
|
||||
<configuration default="false" name="BasicClassTest.classInstantiation" type="JUnit" factoryName="JUnit" temporary="true">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="org.jetbrains.k2js.test.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<module name="jetTests" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.BasicClassTest" />
|
||||
<option name="METHOD_NAME" value="classInstantiation" />
|
||||
<option name="TEST_OBJECT" value="method" />
|
||||
<option name="VM_PARAMETERS" value="" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="ENV_VARIABLES" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="moduleWithDependencies" />
|
||||
</option>
|
||||
<envs />
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="false" name="ClassInheritanceTest.initializersOfBasicClassExecute" type="JUnit" factoryName="JUnit" temporary="true">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
|
||||
<pattern>
|
||||
@@ -971,6 +951,38 @@
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="false" name="OperationTest.assign" type="JUnit" factoryName="JUnit" temporary="true">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="org.jetbrains.k2js.test.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<module name="jetTests" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.k2js.test" />
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.k2js.test.OperationTest" />
|
||||
<option name="METHOD_NAME" value="assign" />
|
||||
<option name="TEST_OBJECT" value="method" />
|
||||
<option name="VM_PARAMETERS" value="-ea" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="ENV_VARIABLES" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="moduleWithDependencies" />
|
||||
</option>
|
||||
<envs />
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="Remote" factoryName="Remote">
|
||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||
<option name="SERVER_MODE" value="false" />
|
||||
@@ -1091,12 +1103,12 @@
|
||||
<method />
|
||||
</configuration>
|
||||
<list size="6">
|
||||
<item index="0" class="java.lang.String" itemvalue="JUnit.BasicClassTest.classInstantiation" />
|
||||
<item index="1" class="java.lang.String" itemvalue="JUnit.ClassInheritanceTest.initializersOfBasicClassExecute" />
|
||||
<item index="2" class="java.lang.String" itemvalue="JUnit.tests" />
|
||||
<item index="3" class="java.lang.String" itemvalue="JUnit.All in jetTests" />
|
||||
<item index="4" class="java.lang.String" itemvalue="JUnit.BasicClassTest.SimpleInitializer" />
|
||||
<item index="5" class="java.lang.String" itemvalue="JUnit.PropertyAccessTest.namespaceCustomAccessors" />
|
||||
<item index="0" class="java.lang.String" itemvalue="JUnit.ClassInheritanceTest.initializersOfBasicClassExecute" />
|
||||
<item index="1" class="java.lang.String" itemvalue="JUnit.tests" />
|
||||
<item index="2" class="java.lang.String" itemvalue="JUnit.All in jetTests" />
|
||||
<item index="3" class="java.lang.String" itemvalue="JUnit.BasicClassTest.SimpleInitializer" />
|
||||
<item index="4" class="java.lang.String" itemvalue="JUnit.PropertyAccessTest.namespaceCustomAccessors" />
|
||||
<item index="5" class="java.lang.String" itemvalue="JUnit.OperationTest.assign" />
|
||||
</list>
|
||||
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
||||
<Host>localhost</Host>
|
||||
@@ -1214,7 +1226,7 @@
|
||||
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
|
||||
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
|
||||
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Work on reference expression. Test fixes to follow." />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="fix test" />
|
||||
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
|
||||
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
|
||||
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
|
||||
@@ -1227,7 +1239,6 @@
|
||||
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
|
||||
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
|
||||
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
|
||||
<MESSAGE value="Refactoring BinaryOperationTranslator." />
|
||||
<MESSAGE value="Binary operation overloading for most cases (except contains, compareTo)." />
|
||||
<MESSAGE value="Added test for operator overloading." />
|
||||
<MESSAGE value="Lots of refactoring and code improvements." />
|
||||
@@ -1252,6 +1263,7 @@
|
||||
<MESSAGE value="Include standard library." />
|
||||
<MESSAGE value="Reworked ExtractionVisitor into Declaration visitor." />
|
||||
<MESSAGE value="Work on reference expression. Test fixes to follow." />
|
||||
<MESSAGE value="fix test" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager />
|
||||
@@ -1261,126 +1273,134 @@
|
||||
<option name="FILTER_TARGETS" value="false" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyAccessorDescriptor.java">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardLibrary.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="15" column="22" selection-start="457" selection-end="457" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="16" column="18" selection-start="420" selection-end="420" vertical-scroll-proportion="0.0">
|
||||
<state line="30" column="13" selection-start="1140" selection-end="1140" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#14956#14978#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TranslationTest.java">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/OperatorConventions.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="2" column="25" selection-start="59" selection-end="59" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/UnaryOperationTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="128" column="92" selection-start="5282" selection-end="5282" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="261" column="93" selection-start="11645" selection-end="11645" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/OperationTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="45" column="39" selection-start="1882" selection-end="1882" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/operation/BinaryOperationTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="148" column="102" selection-start="5773" selection-end="5773" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="105" column="20" selection-start="5187" selection-end="5187" vertical-scroll-proportion="0.0">
|
||||
<state line="35" column="61" selection-start="1142" selection-end="1142" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#1182#1204#0" expanded="true" />
|
||||
<element signature="e#2484#2512#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/out/namespaceCustomAccessors.js">
|
||||
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Library.jet">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PropertyAccessTest.java">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/StaticContext.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="63" column="16" selection-start="1470" selection-end="1470" vertical-scroll-proportion="0.0">
|
||||
<state line="86" column="90" selection-start="2721" selection-end="2721" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/TranslationUtils.java">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/TraitTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="135" column="0" selection-start="6206" selection-end="6206" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/propertyAccess/cases/classUsesNamespaceProperties.kt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="12" column="78" selection-start="94" selection-end="94" vertical-scroll-proportion="0.0">
|
||||
<state line="37" column="16" selection-start="836" selection-end="836" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/declarations/DeclarationVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="44" column="7" selection-start="1742" selection-end="1742" vertical-scroll-proportion="0.0">
|
||||
<state line="70" column="42" selection-start="653" selection-end="2962" 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/TraitTest.java">
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/OperationTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="17" column="16" selection-start="304" selection-end="304" vertical-scroll-proportion="0.0">
|
||||
<state line="36" column="16" selection-start="814" selection-end="814" vertical-scroll-proportion="0.92727274">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java">
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/operation/out/assign.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="68" column="0" selection-start="2643" selection-end="2643" vertical-scroll-proportion="0.3323398">
|
||||
<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/declarations/Declarations.java">
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/IntrinsicDeclarationVisitor.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="77" column="72" selection-start="3004" selection-end="3004" vertical-scroll-proportion="0.36939722">
|
||||
<state line="33" column="0" selection-start="1215" selection-end="1215" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="e#912#946#0" expanded="true" />
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://C:/Program Files (x86)/JetBrains/IntelliJ IDEA Community Edition 110.283/lib/guava-r09.jar!/com/google/common/collect/ImmutableBiMap.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="6" column="22" selection-start="255" selection-end="255" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/WhileTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="16" column="16" selection-start="297" selection-end="297" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/BinaryOperationIntrinsic.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="23" column="25" selection-start="965" selection-end="965" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/while/out/breakDoWhile.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/Intrinsics.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="39" column="91" selection-start="1477" selection-end="1477" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#616#647#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/intrinsic/Intrinsic.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="16" column="63" selection-start="376" selection-end="513" 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/StandardClassesTest.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="20" column="27" selection-start="390" selection-end="390" vertical-scroll-proportion="0.48022598">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
<component name="masterDetails">
|
||||
<states>
|
||||
|
||||
@@ -41,11 +41,10 @@ public final class Declarations {
|
||||
//TODO: provide a mechanism to do intrinsics
|
||||
public void extractStandardLibrary(@NotNull JetStandardLibrary standardLibrary) {
|
||||
DeclarationVisitor visitor = new DeclarationVisitor(this);
|
||||
// for (DeclarationDescriptor descriptor :
|
||||
// standardLibrary.getLibraryScope().getAllDescriptors()) {
|
||||
// descriptor.accept(visitor, rootScope);
|
||||
// }
|
||||
// standardLibrary.getArray().accept(visitor, rootScope);
|
||||
for (DeclarationDescriptor descriptor :
|
||||
standardLibrary.getLibraryScope().getAllDescriptors()) {
|
||||
descriptor.accept(visitor, DeclarationContext.rootContext(rootScope, null));
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package org.jetbrains.k2js.intrinsic;
|
||||
|
||||
import com.google.dart.compiler.backend.js.ast.JsExpression;
|
||||
import com.google.dart.compiler.backend.js.ast.JsThisRef;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Talanov Pavel
|
||||
*/
|
||||
public final class BinaryOperationIntrinsic implements Intrinsic {
|
||||
@NotNull
|
||||
@Override
|
||||
public JsExpression apply(@NotNull FunctionDescriptor descriptor, @NotNull JetExpression receiver,
|
||||
@NotNull List<JetExpression> arguments) {
|
||||
//TODO: implement
|
||||
//
|
||||
// JetToken correspondingToken = OperatorConventions.getTokenForMethodName(descriptor.getName());
|
||||
// JsBinaryOperator operator = OperatorTable.getBinaryOperator(correspondingToken);
|
||||
//
|
||||
// assert arguments.size() == 1 : "Binary operations expects 2 arguments.";
|
||||
// JsExpression argument = arguments.get(0);
|
||||
// assert argument != null;
|
||||
//
|
||||
// return new JsBinaryOperation(operator, receiver, argument);
|
||||
return new JsThisRef();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.jetbrains.k2js.intrinsic;
|
||||
|
||||
import com.google.dart.compiler.backend.js.ast.JsExpression;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Talanov Pavel
|
||||
*/
|
||||
public interface Intrinsic {
|
||||
|
||||
@NotNull
|
||||
JsExpression apply(@NotNull FunctionDescriptor descriptor, @NotNull JetExpression receiver,
|
||||
@NotNull List<JetExpression> arguments);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package org.jetbrains.k2js.intrinsic;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
|
||||
/**
|
||||
* @author Talanov Pavel
|
||||
*/
|
||||
public final class IntrinsicDeclarationVisitor extends DeclarationDescriptorVisitor<Void, Void> {
|
||||
|
||||
@NotNull
|
||||
private final Intrinsics intrinsics;
|
||||
|
||||
/*package*/ IntrinsicDeclarationVisitor(@NotNull Intrinsics intrinsics) {
|
||||
this.intrinsics = intrinsics;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitClassDescriptor(@NotNull ClassDescriptor descriptor, @Nullable Void nothing) {
|
||||
for (DeclarationDescriptor memberDescriptor :
|
||||
descriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
|
||||
memberDescriptor.accept(this, null);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitFunctionDescriptor(@NotNull FunctionDescriptor descriptor, @Nullable Void nothing) {
|
||||
intrinsics.declareIntrinsic(descriptor);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package org.jetbrains.k2js.intrinsic;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.types.JetStandardLibrary;
|
||||
import org.jetbrains.jet.lang.types.expressions.OperatorConventions;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Talanov Pavel
|
||||
*/
|
||||
public final class Intrinsics {
|
||||
|
||||
@NotNull
|
||||
private final Map<FunctionDescriptor, Intrinsic> descriptorToIntrinsicMap =
|
||||
new HashMap<FunctionDescriptor, Intrinsic>();
|
||||
|
||||
public static Intrinsics standardLibraryIntrinsics(@NotNull JetStandardLibrary library) {
|
||||
return new Intrinsics(library);
|
||||
}
|
||||
|
||||
private Intrinsics(@NotNull JetStandardLibrary library) {
|
||||
IntrinsicDeclarationVisitor visitor = new IntrinsicDeclarationVisitor(this);
|
||||
for (DeclarationDescriptor descriptor : library.getLibraryScope().getAllDescriptors()) {
|
||||
descriptor.accept(visitor, null);
|
||||
}
|
||||
}
|
||||
|
||||
/*package*/ void declareIntrinsic(@NotNull FunctionDescriptor descriptor) {
|
||||
//TODO: this is a hack
|
||||
// addBinaryIntrinsics(descriptor);
|
||||
// addUnaryIntrinsics(descriptor);
|
||||
// addAssignmentIntrinsics(descriptor);
|
||||
// addEqualsIntrinsics(descriptor);
|
||||
BinaryOperationIntrinsic binaryOperationIntrinsic = new BinaryOperationIntrinsic();
|
||||
descriptorToIntrinsicMap.put(descriptor, binaryOperationIntrinsic);
|
||||
}
|
||||
|
||||
private void addEqualsIntrinsics(FunctionDescriptor descriptor) {
|
||||
BinaryOperationIntrinsic binaryOperationIntrinsic = new BinaryOperationIntrinsic();
|
||||
String functionName = descriptor.getName();
|
||||
if (OperatorConventions.ASSIGNMENT_OPERATIONS.containsValue(functionName)) {
|
||||
descriptorToIntrinsicMap.put(descriptor, binaryOperationIntrinsic);
|
||||
}
|
||||
}
|
||||
|
||||
private void addUnaryIntrinsics(@NotNull FunctionDescriptor descriptor) {
|
||||
BinaryOperationIntrinsic binaryOperationIntrinsic = new BinaryOperationIntrinsic();
|
||||
String functionName = descriptor.getName();
|
||||
if (OperatorConventions.UNARY_OPERATION_NAMES.containsValue(functionName)) {
|
||||
descriptorToIntrinsicMap.put(descriptor, binaryOperationIntrinsic);
|
||||
}
|
||||
}
|
||||
|
||||
private void addBinaryIntrinsics(@NotNull FunctionDescriptor descriptor) {
|
||||
String functionName = descriptor.getName();
|
||||
if (OperatorConventions.BINARY_OPERATION_NAMES.containsValue(functionName)) {
|
||||
BinaryOperationIntrinsic binaryOperationIntrinsic = new BinaryOperationIntrinsic();
|
||||
descriptorToIntrinsicMap.put(descriptor, binaryOperationIntrinsic);
|
||||
}
|
||||
}
|
||||
|
||||
private void addAssignmentIntrinsics(@NotNull FunctionDescriptor descriptor) {
|
||||
String functionName = descriptor.getName();
|
||||
if (OperatorConventions.ASSIGNMENT_OPERATIONS.containsValue(functionName)) {
|
||||
BinaryOperationIntrinsic binaryOperationIntrinsic = new BinaryOperationIntrinsic();
|
||||
descriptorToIntrinsicMap.put(descriptor, binaryOperationIntrinsic);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isIntrinsic(@NotNull DeclarationDescriptor descriptor) {
|
||||
if (descriptor instanceof FunctionDescriptor) {
|
||||
FunctionDescriptor functionDescriptor = (FunctionDescriptor) descriptor;
|
||||
return descriptorToIntrinsicMap.containsKey(functionDescriptor);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -100,7 +100,7 @@ public final class ClassTranslator extends AbstractTranslator {
|
||||
@NotNull
|
||||
private JsNameRef getClassReference(@NotNull ClassDescriptor superClassDescriptor) {
|
||||
//TODO we actually know that in current implementation superclass must have an alias but
|
||||
// if future it might change
|
||||
// in future it might change
|
||||
return context().aliaser().getAliasForDeclaration(superClassDescriptor);
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,6 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
public JsNode visitBlockExpression(@NotNull JetBlockExpression jetBlock, @NotNull TranslationContext context) {
|
||||
List<JetElement> statements = jetBlock.getStatements();
|
||||
JsBlock jsBlock = new JsBlock();
|
||||
;
|
||||
for (JetElement statement : statements) {
|
||||
assert statement instanceof JetExpression : "Elements in JetBlockExpression " +
|
||||
"should be of type JetExpression";
|
||||
|
||||
@@ -45,6 +45,7 @@ public final class FunctionTranslator extends AbstractTranslator {
|
||||
//TODO: consider refactoring
|
||||
@NotNull
|
||||
public JsExpression translateAsLiteral() {
|
||||
//TODO: provide a way not to pollute global namespace
|
||||
JsName aliasForThis = context().enclosingScope().declareName("that");
|
||||
context().aliaser().setAliasForThis(aliasForThis);
|
||||
JsFunction function = generateFunctionObject();
|
||||
|
||||
@@ -2,7 +2,6 @@ package org.jetbrains.k2js.translate.expression;
|
||||
|
||||
import com.google.dart.compiler.backend.js.ast.JsExpression;
|
||||
import com.google.dart.compiler.backend.js.ast.JsInvocation;
|
||||
import com.google.dart.compiler.backend.js.ast.JsName;
|
||||
import com.google.dart.compiler.backend.js.ast.JsNameRef;
|
||||
import com.google.dart.compiler.util.AstUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -96,9 +95,6 @@ public final class PatternTranslator extends AbstractTranslator {
|
||||
private JsNameRef getClassNameReferenceForTypeReference(@NotNull JetTypeReference typeReference) {
|
||||
ClassDescriptor referencedClass = BindingUtils.getClassDescriptorForTypeReference
|
||||
(context().bindingContext(), typeReference);
|
||||
//TODO should reference class by full name here
|
||||
JsName className = context().getNameForDescriptor(referencedClass);
|
||||
assert TranslationUtils.hasQualifier(context(), referencedClass);
|
||||
return TranslationUtils.getQualifiedReference(context(), referencedClass);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.jetbrains.k2js.translate.utils.BindingUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
//TODO: rework this class and the outer API
|
||||
public final class GenerationState {
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
package org.jetbrains.k2js.translate.general;
|
||||
|
||||
import com.google.dart.compiler.backend.js.ast.JsName;
|
||||
import com.google.dart.compiler.backend.js.ast.JsProgram;
|
||||
import com.google.dart.compiler.backend.js.ast.JsRootScope;
|
||||
import com.google.dart.compiler.backend.js.ast.JsScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetElement;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.types.JetStandardLibrary;
|
||||
import org.jetbrains.k2js.declarations.Declarations;
|
||||
import org.jetbrains.k2js.intrinsic.Intrinsics;
|
||||
import org.jetbrains.k2js.translate.utils.Namer;
|
||||
|
||||
public class StaticContext {
|
||||
|
||||
public static StaticContext generateStaticContext(@NotNull JetStandardLibrary library,
|
||||
@NotNull BindingContext bindingContext) {
|
||||
JsProgram program = new JsProgram("main");
|
||||
JsRootScope rootScope = program.getRootScope();
|
||||
Namer namer = Namer.newInstance(rootScope);
|
||||
Aliaser aliaser = Aliaser.aliasesForStandardClasses(library, namer);
|
||||
Declarations declarations = Declarations.newInstance(rootScope);
|
||||
Intrinsics intrinsics = Intrinsics.standardLibraryIntrinsics(library);
|
||||
return new StaticContext(program, bindingContext, declarations, aliaser, namer, intrinsics);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private final JsProgram program;
|
||||
|
||||
@NotNull
|
||||
public final BindingContext bindingContext;
|
||||
|
||||
@NotNull
|
||||
private final Declarations declarations;
|
||||
|
||||
@NotNull
|
||||
private final Aliaser aliaser;
|
||||
|
||||
@NotNull
|
||||
private final Namer namer;
|
||||
|
||||
@NotNull
|
||||
private final Intrinsics intrinsics;
|
||||
|
||||
|
||||
private StaticContext(@NotNull JsProgram program, @NotNull BindingContext bindingContext,
|
||||
@NotNull Declarations declarations, @NotNull Aliaser aliaser,
|
||||
@NotNull Namer namer, @NotNull Intrinsics intrinsics) {
|
||||
this.program = program;
|
||||
this.bindingContext = bindingContext;
|
||||
this.declarations = declarations;
|
||||
this.aliaser = aliaser;
|
||||
this.namer = namer;
|
||||
this.intrinsics = intrinsics;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsProgram getProgram() {
|
||||
return program;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public BindingContext getBindingContext() {
|
||||
return bindingContext;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Declarations getDeclarations() {
|
||||
return declarations;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Aliaser getAliaser() {
|
||||
return aliaser;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Intrinsics getIntrinsics() {
|
||||
return intrinsics;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Namer getNamer() {
|
||||
return namer;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsScope getScopeForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
||||
return declarations.getScope(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsScope getScopeForElement(@NotNull JetElement element) {
|
||||
DeclarationDescriptor descriptor = getDescriptorForElement(element);
|
||||
return getScopeForDescriptor(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsName getNameForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
||||
return declarations.getName(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsName getNameForElement(@NotNull JetElement element) {
|
||||
DeclarationDescriptor descriptor = getDescriptorForElement(element);
|
||||
return getNameForDescriptor(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
DeclarationDescriptor getDescriptorForElement(@NotNull JetElement element) {
|
||||
DeclarationDescriptor descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, element);
|
||||
assert descriptor != null : "Element should have a descriptor";
|
||||
return descriptor;
|
||||
}
|
||||
|
||||
public boolean isDeclared(@NotNull DeclarationDescriptor descriptor) {
|
||||
return declarations.hasDeclaredName(descriptor);
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,6 @@ import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.types.JetStandardLibrary;
|
||||
import org.jetbrains.k2js.declarations.Declarations;
|
||||
import org.jetbrains.k2js.translate.declaration.ClassTranslator;
|
||||
import org.jetbrains.k2js.translate.declaration.NamespaceTranslator;
|
||||
import org.jetbrains.k2js.translate.expression.ExpressionVisitor;
|
||||
@@ -56,17 +55,20 @@ public final class Translation {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static public JsExpression translateAsExpression(@NotNull JetExpression expression, @NotNull TranslationContext context) {
|
||||
static public JsExpression translateAsExpression(@NotNull JetExpression expression,
|
||||
@NotNull TranslationContext context) {
|
||||
return AstUtil.convertToExpression(translateExpression(expression, context));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static public JsStatement translateAsStatement(@NotNull JetExpression expression, @NotNull TranslationContext context) {
|
||||
static public JsStatement translateAsStatement(@NotNull JetExpression expression,
|
||||
@NotNull TranslationContext context) {
|
||||
return AstUtil.convertToStatement(translateExpression(expression, context));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static public JsNode translateWhenExpression(@NotNull JetWhenExpression expression, @NotNull TranslationContext context) {
|
||||
static public JsNode translateWhenExpression(@NotNull JetWhenExpression expression,
|
||||
@NotNull TranslationContext context) {
|
||||
return WhenTranslator.translateWhenExpression(expression, context);
|
||||
}
|
||||
|
||||
@@ -84,16 +86,15 @@ public final class Translation {
|
||||
|
||||
public static JsProgram generateAst(@NotNull BindingContext bindingContext,
|
||||
@NotNull JetNamespace namespace, @NotNull Project project) {
|
||||
//TODO hardcoded
|
||||
JsProgram result = new JsProgram("main");
|
||||
JetStandardLibrary standardLibrary = JetStandardLibrary.getJetStandardLibrary(project);
|
||||
NamespaceDescriptor descriptor = BindingUtils.getNamespaceDescriptor(bindingContext, namespace);
|
||||
Declarations declarations = Declarations.newInstance(result.getRootScope());
|
||||
declarations.extractStandardLibrary(JetStandardLibrary.getJetStandardLibrary(project));
|
||||
declarations.extractDeclarations(descriptor);
|
||||
JsBlock block = result.getFragmentBlock(0);
|
||||
TranslationContext context = TranslationContext.rootContext(result, bindingContext, declarations, project);
|
||||
StaticContext staticContext = StaticContext.generateStaticContext(standardLibrary, bindingContext);
|
||||
staticContext.getDeclarations().extractStandardLibrary(standardLibrary);
|
||||
staticContext.getDeclarations().extractDeclarations(descriptor);
|
||||
JsBlock block = staticContext.getProgram().getFragmentBlock(0);
|
||||
TranslationContext context = TranslationContext.rootContext(staticContext);
|
||||
block.addStatement(Translation.translateNamespace(namespace, context));
|
||||
return result;
|
||||
return context.program();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3,13 +3,12 @@ package org.jetbrains.k2js.translate.general;
|
||||
import com.google.dart.compiler.backend.js.ast.JsName;
|
||||
import com.google.dart.compiler.backend.js.ast.JsProgram;
|
||||
import com.google.dart.compiler.backend.js.ast.JsScope;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.types.JetStandardLibrary;
|
||||
import org.jetbrains.k2js.declarations.Declarations;
|
||||
import org.jetbrains.k2js.intrinsic.Intrinsics;
|
||||
import org.jetbrains.k2js.translate.utils.BindingUtils;
|
||||
import org.jetbrains.k2js.translate.utils.Namer;
|
||||
|
||||
@@ -18,7 +17,6 @@ import org.jetbrains.k2js.translate.utils.Namer;
|
||||
*/
|
||||
public final class TranslationContext {
|
||||
|
||||
// TODO: extract different parts of this classes into separate classes
|
||||
private static class Scopes {
|
||||
public Scopes(@NotNull JsScope enclosingScope, @NotNull JsScope functionScope, @NotNull JsScope namespaceScope) {
|
||||
this.enclosingScope = enclosingScope;
|
||||
@@ -35,72 +33,50 @@ public final class TranslationContext {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static TranslationContext rootContext(@NotNull JsProgram program, @NotNull BindingContext bindingContext,
|
||||
@NotNull Declarations extractor, @NotNull Project project) {
|
||||
JsScope rootScope = program.getRootScope();
|
||||
public static TranslationContext rootContext(@NotNull StaticContext staticContext) {
|
||||
JsScope rootScope = staticContext.getProgram().getRootScope();
|
||||
Scopes scopes = new Scopes(rootScope, rootScope, rootScope);
|
||||
Namer namer = Namer.newInstance(rootScope);
|
||||
Aliaser aliaser = Aliaser.aliasesForStandardClasses
|
||||
(JetStandardLibrary.getJetStandardLibrary(project), namer);
|
||||
return new TranslationContext(program, bindingContext,
|
||||
scopes, extractor, aliaser, namer);
|
||||
return new TranslationContext(staticContext, scopes);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private final JsProgram program;
|
||||
@NotNull
|
||||
private final BindingContext bindingContext;
|
||||
@NotNull
|
||||
private final Scopes scopes;
|
||||
@NotNull
|
||||
private final Declarations declarations;
|
||||
@NotNull
|
||||
private final Aliaser aliaser;
|
||||
@NotNull
|
||||
private final Namer namer;
|
||||
private final StaticContext staticContext;
|
||||
|
||||
|
||||
private TranslationContext(@NotNull JsProgram program,
|
||||
@NotNull BindingContext bindingContext, @NotNull Scopes scopes,
|
||||
@NotNull Declarations declarations, @NotNull Aliaser aliaser,
|
||||
@NotNull Namer namer) {
|
||||
this.program = program;
|
||||
this.bindingContext = bindingContext;
|
||||
private TranslationContext(@NotNull StaticContext staticContext, @NotNull Scopes scopes) {
|
||||
this.scopes = scopes;
|
||||
this.declarations = declarations;
|
||||
this.aliaser = aliaser;
|
||||
this.namer = namer;
|
||||
this.staticContext = staticContext;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public TranslationContext newNamespace(@NotNull JetNamespace declaration) {
|
||||
return newNamespace(BindingUtils.getNamespaceDescriptor(bindingContext, declaration));
|
||||
return newNamespace(BindingUtils.getNamespaceDescriptor(staticContext.getBindingContext(), declaration));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public TranslationContext newNamespace(@NotNull NamespaceDescriptor descriptor) {
|
||||
JsScope namespaceScope = declarations.getScope(descriptor);
|
||||
JsScope namespaceScope = staticContext.getDeclarations().getScope(descriptor);
|
||||
Scopes newScopes = new Scopes(namespaceScope, namespaceScope, namespaceScope);
|
||||
return new TranslationContext(program, bindingContext, newScopes,
|
||||
declarations, aliaser, namer);
|
||||
return new TranslationContext(staticContext, newScopes);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public TranslationContext newClass(@NotNull JetClass declaration) {
|
||||
return newClass(BindingUtils.getClassDescriptor(bindingContext, declaration));
|
||||
return newClass(BindingUtils.getClassDescriptor(staticContext.getBindingContext(), declaration));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public TranslationContext newClass(@NotNull ClassDescriptor descriptor) {
|
||||
JsScope classScope = declarations.getScope(descriptor);
|
||||
JsScope classScope = staticContext.getDeclarations().getScope(descriptor);
|
||||
Scopes newScopes = new Scopes(classScope, classScope, scopes.namespaceScope);
|
||||
return new TranslationContext(program, bindingContext,
|
||||
newScopes, declarations, aliaser, namer);
|
||||
return new TranslationContext(staticContext, newScopes);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public TranslationContext newPropertyAccess(@NotNull JetPropertyAccessor declaration) {
|
||||
return newPropertyAccess(BindingUtils.getPropertyAccessorDescriptor(bindingContext, declaration));
|
||||
return newPropertyAccess(BindingUtils.getPropertyAccessorDescriptor(staticContext.getBindingContext(), declaration));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -110,33 +86,31 @@ public final class TranslationContext {
|
||||
|
||||
@NotNull
|
||||
public TranslationContext newFunctionDeclaration(@NotNull JetNamedFunction declaration) {
|
||||
return newFunctionDeclaration(BindingUtils.getFunctionDescriptor(bindingContext, declaration));
|
||||
return newFunctionDeclaration(BindingUtils.getFunctionDescriptor(staticContext.getBindingContext(), declaration));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public TranslationContext newFunctionDeclaration(@NotNull FunctionDescriptor descriptor) {
|
||||
JsScope functionScope = declarations.getScope(descriptor);
|
||||
JsScope functionScope = staticContext.getDeclarations().getScope(descriptor);
|
||||
Scopes newScopes = new Scopes(functionScope, scopes.classScope, scopes.namespaceScope);
|
||||
return new TranslationContext(program, bindingContext,
|
||||
newScopes, declarations, aliaser, namer);
|
||||
return new TranslationContext(staticContext, newScopes);
|
||||
}
|
||||
|
||||
// Note: Should be used if and only if scope has no corresponding descriptor
|
||||
@NotNull
|
||||
public TranslationContext newEnclosingScope(@NotNull JsScope enclosingScope) {
|
||||
Scopes newScopes = new Scopes(enclosingScope, scopes.classScope, scopes.namespaceScope);
|
||||
return new TranslationContext(program, bindingContext,
|
||||
newScopes, declarations, aliaser, namer);
|
||||
return new TranslationContext(staticContext, newScopes);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public BindingContext bindingContext() {
|
||||
return bindingContext;
|
||||
return staticContext.getBindingContext();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsProgram program() {
|
||||
return program;
|
||||
return staticContext.getProgram();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -157,49 +131,50 @@ public final class TranslationContext {
|
||||
|
||||
@NotNull
|
||||
public JsScope getScopeForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
||||
return declarations.getScope(descriptor);
|
||||
return staticContext.getScopeForDescriptor(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsScope getScopeForElement(@NotNull JetElement element) {
|
||||
DeclarationDescriptor descriptor = getDescriptorForElement(element);
|
||||
return getScopeForDescriptor(descriptor);
|
||||
return staticContext.getScopeForElement(element);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsName getNameForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
||||
return declarations.getName(descriptor);
|
||||
return staticContext.getNameForDescriptor(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsName getNameForElement(@NotNull JetElement element) {
|
||||
DeclarationDescriptor descriptor = getDescriptorForElement(element);
|
||||
return getNameForDescriptor(descriptor);
|
||||
return staticContext.getNameForElement(element);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private DeclarationDescriptor getDescriptorForElement(@NotNull JetElement element) {
|
||||
DeclarationDescriptor descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, element);
|
||||
assert descriptor != null : "Element should have a descriptor";
|
||||
return descriptor;
|
||||
return staticContext.getDescriptorForElement(element);
|
||||
}
|
||||
|
||||
public boolean isDeclared(@NotNull DeclarationDescriptor descriptor) {
|
||||
return declarations.hasDeclaredName(descriptor);
|
||||
return staticContext.isDeclared(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Aliaser aliaser() {
|
||||
return aliaser;
|
||||
return staticContext.getAliaser();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Namer namer() {
|
||||
return namer;
|
||||
return staticContext.getNamer();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Declarations declarations() {
|
||||
return declarations;
|
||||
return staticContext.getDeclarations();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Intrinsics intrinsics() {
|
||||
return staticContext.getIntrinsics();
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -61,9 +61,9 @@ public final class BinaryOperationTranslator extends OperationTranslator {
|
||||
private JsExpression asCompareToOverload() {
|
||||
JetToken operationToken = getOperationToken();
|
||||
assert (OperatorConventions.COMPARISON_OPERATIONS.contains(operationToken));
|
||||
JsNumberLiteral zetoLiteral = program().getNumberLiteral(0);
|
||||
JsNumberLiteral zeroLiteral = program().getNumberLiteral(0);
|
||||
JsBinaryOperator correspondingOperator = OperatorTable.getBinaryOperator(operationToken);
|
||||
return new JsBinaryOperation(correspondingOperator, overloadedMethodInvocation(), zetoLiteral);
|
||||
return new JsBinaryOperation(correspondingOperator, overloadedMethodInvocation(), zeroLiteral);
|
||||
}
|
||||
|
||||
private boolean isOverloadedCall() {
|
||||
|
||||
@@ -29,6 +29,9 @@ public class OperationTranslator extends AbstractTranslator {
|
||||
if (operationDescriptor == null) {
|
||||
return null;
|
||||
}
|
||||
if (context().intrinsics().isIntrinsic(operationDescriptor)) {
|
||||
return null;
|
||||
}
|
||||
if (!context().isDeclared(operationDescriptor)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -107,7 +107,6 @@ public final class UnaryOperationTranslator extends OperationTranslator {
|
||||
return AstUtil.newSequence(t1.assignmentExpression(), t2.assignmentExpression(), methodCall, returnedValue);
|
||||
}
|
||||
|
||||
//TODO: should modify this for properties
|
||||
@NotNull
|
||||
private JsExpression variableReassignment(@NotNull JsExpression toCallMethodUpon) {
|
||||
if (isPropertyAccess) {
|
||||
|
||||
+10
-2
@@ -23,7 +23,6 @@ import org.jetbrains.k2js.translate.utils.TranslationUtils;
|
||||
/**
|
||||
* @author Talanov Pavel
|
||||
*/
|
||||
//TODO Refactor.
|
||||
public final class PropertyAccessTranslator extends AbstractTranslator {
|
||||
|
||||
private static String MESSAGE = "Cannot be accessor call. Use canBeProperty*Call to ensure this method " +
|
||||
@@ -219,6 +218,15 @@ public final class PropertyAccessTranslator extends AbstractTranslator {
|
||||
|
||||
@Nullable
|
||||
private JsName getNullableSetterName() {
|
||||
PropertySetterDescriptor setter = getSetterDescriptor();
|
||||
|
||||
if (setter == null) return null;
|
||||
|
||||
return context().getNameForDescriptor(setter);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PropertySetterDescriptor getSetterDescriptor() {
|
||||
PropertyDescriptor property = getNullablePropertyDescriptor();
|
||||
if (property == null) {
|
||||
return null;
|
||||
@@ -227,7 +235,7 @@ public final class PropertyAccessTranslator extends AbstractTranslator {
|
||||
if (setter == null) {
|
||||
return null;
|
||||
}
|
||||
return context().getNameForDescriptor(setter);
|
||||
return setter;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user