Refactor: Extracted Aliaser entity from context.

This commit is contained in:
Pavel Talanov
2011-11-28 17:40:02 +04:00
parent 313b20c4f7
commit 99114132ac
31 changed files with 476 additions and 233 deletions
+378 -176
View File
@@ -8,10 +8,38 @@
</component>
<component name="ChangeListManager">
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\failed\simpleBox.jet" afterPath="$PROJECT_DIR$/translator/testFiles/sortedTests/unsupported/simpleBox.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\obscure\inheritedMethod.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/cases/inheritedMethod.jet" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Aliaser.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/forwardTypeParameter.jet" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/exceptionConstructor.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unexpectedError\exceptionConstructor.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/exceptionConstructor.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\basicproperty.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/basicproperty.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\classObject.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/classObject.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\classObjectInterface.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/classObjectInterface.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\classObjectMethod.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/classObjectMethod.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\enclosed.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/enclosed.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\extensionClosure.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/extensionClosure.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\inheritance.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/inheritance.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\inheritedInnerClass.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/inheritedInnerClass.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\propertyInInitializer.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/propertyInInitializer.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\simpleBox.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/simpleBox.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\unsupported\traitproperty.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/traitproperty.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\usesJava\basicmethod.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/basicmethod.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\usesJava\inheritingFromArrayList.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/inheritingFromArrayList.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\usesJava\initializerBlockDImpl.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/initializerBlockDImpl.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\usesJava\innerClass.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/innerClass.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\usesJava\overloadBinaryOperator.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/overloadBinaryOperator.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\usesJava\overloadPlusAssign.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/overloadPlusAssign.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\usesJava\overloadPlusAssignReturn.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/overloadPlusAssignReturn.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\usesJava\overloadPlusToPlusAssign.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/overloadPlusToPlusAssign.jet" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\usesJava\overloadUnaryOperator.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/overloadUnaryOperator.jet" />
<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/initializer/ClassInitializerTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.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/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/reference/ReferenceProvider.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceProvider.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" />
</list>
<ignored path="k2js.iws" />
<ignored path=".idea/workspace.xml" />
@@ -165,40 +193,13 @@
<favorites_list name="k2js" />
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.33043477">
<splitter split-orientation="horizontal" split-proportion="0.22338204">
<split-first>
<leaf>
<file leaf-file-name="newInstanceDefaultConstructor.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/out/newInstanceDefaultConstructor.js">
<provider selected="true" editor-type-id="text-editor">
<state line="19" column="51" selection-start="385" selection-end="385" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="WhenTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="135" column="0" selection-start="5032" selection-end="5032" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PatternMatchingTest.java" pinned="false" current="false" current-in-tab="true">
<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="44" column="55" selection-start="1013" selection-end="1013" vertical-scroll-proportion="0.618683">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="whenValueOrType.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenValueOrType.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="24" column="78" selection-start="291" selection-end="291" vertical-scroll-proportion="0.0">
<state line="44" column="55" selection-start="1013" selection-end="1013" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -207,14 +208,59 @@
<file leaf-file-name="JetStandardClasses.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardClasses.java">
<provider selected="true" editor-type-id="text-editor">
<state line="41" column="0" selection-start="1429" selection-end="1429" vertical-scroll-proportion="0.0">
<state line="234" column="34" selection-start="10162" selection-end="10162" vertical-scroll-proportion="82.84615">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JavaClassDescriptor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="18" column="13" selection-start="585" selection-end="585" vertical-scroll-proportion="0.0">
<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="100" column="71" selection-start="2281" selection-end="2281" 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="162" column="61" selection-start="6953" selection-end="6958" vertical-scroll-proportion="-92.19231">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="forwardTypeParameter.jet" pinned="false" current="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/forwardTypeParameter.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="JetScope.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java">
<provider selected="true" editor-type-id="text-editor">
<state line="14" column="17" selection-start="374" selection-end="374" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="basicproperty.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/sortedTests/unsupported/basicproperty.jet">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/basicproperty.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 />
@@ -223,7 +269,7 @@
</entry>
</file>
<file leaf-file-name="enclosed.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/sortedTests/unsupported/enclosed.jet">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/enclosed.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 />
@@ -232,7 +278,7 @@
</entry>
</file>
<file leaf-file-name="traitproperty.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/sortedTests/unsupported/traitproperty.jet">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/traitproperty.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 />
@@ -244,39 +290,37 @@
</split-first>
<split-second>
<leaf>
<file leaf-file-name="ExampleTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExampleTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="16" column="5" selection-start="391" selection-end="391" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="simpleBox.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/sortedTests/unsupported/simpleBox.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="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="93" column="0" selection-start="3923" selection-end="3923" vertical-scroll-proportion="-8.576923">
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
</file>
<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="47" column="0" selection-start="1789" selection-end="1789" vertical-scroll-proportion="0.0">
<state line="62" column="23" selection-start="2556" selection-end="2556" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ClassDeclarationTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="124" column="50" selection-start="4953" selection-end="4953" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ReferenceProvider.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceProvider.java">
<provider selected="true" editor-type-id="text-editor">
<state line="60" column="58" selection-start="2537" selection-end="2537" vertical-scroll-proportion="0.9131653">
<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/declaration/ClassTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="102" column="104" selection-start="4389" selection-end="4389" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -285,16 +329,38 @@
<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/general/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="46" column="78" selection-start="1833" selection-end="1833" vertical-scroll-proportion="0.0">
<state line="22" column="0" selection-start="773" selection-end="773" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</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/general/GenerationState.java">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="19" selection-start="497" selection-end="497" vertical-scroll-proportion="0.0">
<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="56" column="36" selection-start="1867" selection-end="1867" vertical-scroll-proportion="0.0">
<folding>
<element signature="e#448#472#0" expanded="true" />
</folding>
</state>
</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/expression/FunctionTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="49" column="0" selection-start="1828" selection-end="1828" vertical-scroll-proportion="0.0">
<state line="50" column="28" selection-start="1922" selection-end="1922" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -303,34 +369,16 @@
<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="25" column="0" selection-start="1035" selection-end="1035" vertical-scroll-proportion="-4.576923">
<state line="383" column="26" selection-start="16796" selection-end="16796" vertical-scroll-proportion="-15.5">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="inheritedMethod.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/cases/inheritedMethod.jet">
<file leaf-file-name="array.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlinLib/cases/array.js">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="211" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ClassInitializerTranslator.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="56" column="29" selection-start="2382" selection-end="2382" vertical-scroll-proportion="0.5714286">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ReferenceProvider.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceProvider.java">
<provider selected="true" editor-type-id="text-editor">
<state line="32" column="0" selection-start="1342" selection-end="1342" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -357,22 +405,22 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/PropertyTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" />
<option value="$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenConditionPropertyAccess.kt" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/JavascriptTest.java" />
<option value="$PROJECT_DIR$/translator/testFiles/javascript/cases/enclosingThis.js" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceProvider.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslationContext.java" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExampleTest.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java" />
<option value="$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/jet/Library.jet" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslationContext.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Aliaser.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceProvider.java" />
</list>
</option>
</component>
@@ -508,7 +556,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="sortedTests" />
<option name="myItemId" value="standardClasses" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@@ -530,7 +578,25 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="out" />
<option name="myItemId" value="sortedTests" />
<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="examples" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@@ -570,6 +636,142 @@
<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>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translate" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translate" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="general" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="frontend.java" />
<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="frontend.java" />
<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="java" />
<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="frontend" />
<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="frontend" />
<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>
<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="frontend" />
<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="jet" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
@@ -639,11 +841,11 @@
<recent name="org.jetbrains.k2js.backend" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\examples\new" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\javascript\cases" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\js\cases" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\examples\cases" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\examples" />
<recent name="C:\Dev\Projects\jet-contrib\k2js\translator\lib" />
</key>
<key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
<recent name="org.jetbrains.k2js.test.examples" />
@@ -971,7 +1173,7 @@
<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.32977018" sideWeight="0.728146" 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.2624265" sideWeight="0.7329491" 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.23196152" sideWeight="0.7329491" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.26705092" sideWeight="0.64190274" 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" />
@@ -1016,7 +1218,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="Fixed a bug where you could not reference an object from a function literal defined inside a method.&#10;Also removed when conditional call code." />
<option name="LAST_COMMIT_MESSAGE" value="Supported classes not calling ancestor constructor." />
<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" />
@@ -1029,7 +1231,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="Added test. Refactored test code: got rid of obsolete IncludeLibraryTest class." />
<MESSAGE value="Operator overloading: simple cases with ++ and --." />
<MESSAGE value="Refactoring operation translator code." />
<MESSAGE value="Refactoring property access translation code." />
@@ -1054,6 +1255,7 @@
<MESSAGE value="Added array basic class." />
<MESSAGE value="Added and sorted tests from jet repository. Fixed a bug with custom setter." />
<MESSAGE value="Fixed a bug where you could not reference an object from a function literal defined inside a method.&#10;Also removed when conditional call code." />
<MESSAGE value="Supported classes not calling ancestor constructor." />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
@@ -1063,76 +1265,16 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/JavascriptTest.java">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/forwardTypeParameter.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="21" column="21" selection-start="480" selection-end="480" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/javascript/cases/enclosingThis.js">
<provider selected="true" editor-type-id="text-editor">
<state line="14" column="52" selection-start="350" selection-end="350" 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/testFiles/kotlin_lib.js">
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlinLib/cases/array.js">
<provider selected="true" editor-type-id="text-editor">
<state line="56" column="43" selection-start="1368" selection-end="1368" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/out/enclosingThis.js">
<provider selected="true" editor-type-id="text-editor">
<state line="11" column="32" selection-start="230" selection-end="230" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/AbstractTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="24" column="0" selection-start="544" selection-end="544" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceProvider.java">
<provider selected="true" editor-type-id="text-editor">
<state line="32" column="0" selection-start="1342" selection-end="1342" 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="93" column="0" selection-start="3923" selection-end="3923" vertical-scroll-proportion="-8.576923">
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="49" column="0" selection-start="1828" selection-end="1828" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="46" column="78" selection-start="1833" selection-end="1833" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="44" column="55" selection-start="1013" selection-end="1013" vertical-scroll-proportion="0.618683">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -1144,23 +1286,39 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/sortedTests/unsupported/simpleBox.jet">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/GenerationState.java">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="19" selection-start="497" selection-end="497" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/unsupported/simpleBox.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/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state line="47" column="0" selection-start="1789" selection-end="1789" vertical-scroll-proportion="0.0">
<folding />
<state line="22" column="0" selection-start="773" selection-end="773" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="25" column="0" selection-start="1035" selection-end="1035" vertical-scroll-proportion="-4.576923">
<state line="383" column="26" selection-start="16796" selection-end="16796" vertical-scroll-proportion="-15.5">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/FunctionTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="50" column="28" selection-start="1922" selection-end="1922" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -1172,9 +1330,53 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="102" column="104" selection-start="4389" selection-end="4389" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="62" column="23" selection-start="2556" selection-end="2556" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="56" column="29" selection-start="2382" selection-end="2382" vertical-scroll-proportion="0.5714286">
<state line="57" column="52" selection-start="2440" selection-end="2440" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Aliaser.java">
<provider selected="true" editor-type-id="text-editor">
<state line="56" column="36" selection-start="1867" selection-end="1867" vertical-scroll-proportion="0.0">
<folding>
<element signature="e#448#472#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="124" column="50" selection-start="4953" selection-end="4953" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/sortedTests/usesJava/exceptionConstructor.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/src/org/jetbrains/k2js/translate/reference/ReferenceProvider.java">
<provider selected="true" editor-type-id="text-editor">
<state line="60" column="58" selection-start="2537" selection-end="2537" vertical-scroll-proportion="0.9131653">
<folding />
</state>
</provider>
@@ -95,7 +95,7 @@ public final class ClassDeclarationTranslator extends AbstractTranslator {
private void removeAliases() {
for (JetClass jetClass : getClassDeclarations()) {
context().aliases().remove(jetClass);
context().aliaser().removeAliasForDeclaration(jetClass);
}
}
@@ -122,7 +122,7 @@ public final class ClassDeclarationTranslator extends AbstractTranslator {
JsName globalClassName = context().getNameForElement(declaration);
JsName localAlias = dummyFunctionScope.declareName(globalClassName.getIdent());
localToGlobalClassName.put(localAlias, globalClassName);
context().aliases().put(declaration, localAlias);
context().aliaser().setAliasForDeclaration(declaration, localAlias);
return localAlias;
}
}
@@ -102,8 +102,8 @@ public final class ClassTranslator extends AbstractTranslator {
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
return context().aliases().get
(BindingUtils.getClassForDescriptor(context().bindingContext(), superClassDescriptor)).makeRef();
return context().aliaser().getAliasForDeclaration(
BindingUtils.getClassForDescriptor(context().bindingContext(), superClassDescriptor));
}
@Nullable
@@ -100,7 +100,7 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
@NotNull
// assume it is a local variable declaration
public JsNode visitProperty(@NotNull JetProperty expression, @NotNull TranslationContext context) {
JsName jsPropertyName = context.declareLocalName(getPropertyName(expression));
JsName jsPropertyName = context.enclosingScope().declareName(getPropertyName(expression));
JsExpression jsInitExpression = translateInitializerForProperty(expression, context);
return AstUtil.newVar(jsPropertyName, jsInitExpression);
}
@@ -380,8 +380,8 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
@NotNull
public JsNode visitThisExpression(@NotNull JetThisExpression expression,
@NotNull TranslationContext context) {
if (context.hasAliasForThis()) {
return context.getAliasForThis();
if (context.aliaser().hasAliasForThis()) {
return context.aliaser().getAliasForThis();
}
return new JsThisRef();
}
@@ -46,9 +46,9 @@ public final class FunctionTranslator extends AbstractTranslator {
@NotNull
public JsExpression translateAsLiteral() {
JsName aliasForThis = context().enclosingScope().declareName("that");
context().setAliasForThis(aliasForThis);
context().aliaser().setAliasForThis(aliasForThis);
JsFunction function = generateFunctionObject();
context().removeAliasForThis();
context().aliaser().removeAliasForThis();
JsExpression assignThatToThis = AstUtil.newAssignment(aliasForThis.makeRef(), new JsThisRef());
return AstUtil.newSequence(assignThatToThis, function);
}
@@ -0,0 +1,59 @@
package org.jetbrains.k2js.translate.general;
import com.google.dart.compiler.backend.js.ast.JsName;
import com.google.dart.compiler.backend.js.ast.JsNameRef;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetDeclaration;
import java.util.HashMap;
import java.util.Map;
public class Aliaser {
@NotNull
private final Map<JetDeclaration, JsName> aliases = new HashMap<JetDeclaration, JsName>();
@Nullable
private JsName aliasForThis = null;
public Aliaser() {
}
@NotNull
public JsNameRef getAliasForThis() {
assert aliasForThis != null : "Alias is null. Use hasAliasForThis function to check.";
return aliasForThis.makeRef();
}
public void setAliasForThis(@NotNull JsName alias) {
aliasForThis = alias;
}
public void removeAliasForThis() {
aliasForThis = null;
}
public boolean hasAliasForThis() {
return (aliasForThis != null);
}
public boolean hasAliasForDeclaration(@NotNull JetDeclaration declaration) {
return aliases.containsKey(declaration);
}
@NotNull
public JsNameRef getAliasForDeclaration(@NotNull JetDeclaration declaration) {
JsName alias = aliases.get(declaration);
assert alias != null : "Use has alias for declaration to check.";
return alias.makeRef();
}
public void setAliasForDeclaration(@NotNull JetDeclaration declaration, @NotNull JsName alias) {
assert (!hasAliasForDeclaration(declaration)) : "This declaration already has an alias!";
aliases.put(declaration, alias);
}
public void removeAliasForDeclaration(@NotNull JetDeclaration declaration) {
assert (hasAliasForDeclaration(declaration)) : "This declaration does not has an alias!";
aliases.remove(declaration);
}
}
@@ -13,15 +13,11 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.k2js.declarations.Declarations;
import org.jetbrains.k2js.translate.utils.BindingUtils;
import java.util.HashMap;
import java.util.Map;
/**
* @author Talanov Pavel
*/
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) {
@@ -44,7 +40,7 @@ public final class TranslationContext {
JsScope rootScope = program.getRootScope();
Scopes scopes = new Scopes(rootScope, rootScope, rootScope);
return new TranslationContext(null, program, bindingContext,
scopes, extractor, new HashMap<JetDeclaration, JsName>(), null);
scopes, extractor, new Aliaser());
}
@NotNull
@@ -58,22 +54,18 @@ public final class TranslationContext {
@NotNull
private final Declarations declarations;
@NotNull
private final Map<JetDeclaration, JsName> aliases;
@Nullable
private JsName aliasForThis;
private final Aliaser aliaser;
private TranslationContext(@Nullable JsName namespaceName, @NotNull JsProgram program,
@NotNull BindingContext bindingContext, @NotNull Scopes scopes,
@NotNull Declarations declarations, @NotNull Map<JetDeclaration, JsName> aliases,
@Nullable JsName aliasForThis) {
@NotNull Declarations declarations, @NotNull Aliaser aliaser) {
this.program = program;
this.bindingContext = bindingContext;
this.namespaceName = namespaceName;
this.scopes = scopes;
this.declarations = declarations;
this.aliases = aliases;
this.aliasForThis = aliasForThis;
this.aliaser = aliaser;
}
@NotNull
@@ -87,7 +79,7 @@ public final class TranslationContext {
JsName namespaceName = getNameForDescriptor(descriptor);
Scopes newScopes = new Scopes(namespaceScope, namespaceScope, namespaceScope);
return new TranslationContext(namespaceName, program, bindingContext, newScopes,
declarations, aliases, aliasForThis);
declarations, new Aliaser());
}
@NotNull
@@ -100,7 +92,7 @@ public final class TranslationContext {
JsScope classScope = declarations.getScope(descriptor);
Scopes newScopes = new Scopes(classScope, classScope, scopes.namespaceScope);
return new TranslationContext(namespaceName, program, bindingContext,
newScopes, declarations, aliases, aliasForThis);
newScopes, declarations, aliaser);
}
@NotNull
@@ -123,7 +115,7 @@ public final class TranslationContext {
JsScope functionScope = declarations.getScope(descriptor);
Scopes newScopes = new Scopes(functionScope, scopes.classScope, scopes.namespaceScope);
return new TranslationContext(namespaceName, program, bindingContext,
newScopes, declarations, aliases, aliasForThis);
newScopes, declarations, aliaser);
}
// @NotNull TranslationContext newAliases(Map<JetDeclaration, JsName> newAliases) {
@@ -137,7 +129,7 @@ public final class TranslationContext {
public TranslationContext newEnclosingScope(@NotNull JsScope enclosingScope) {
Scopes newScopes = new Scopes(enclosingScope, scopes.classScope, scopes.namespaceScope);
return new TranslationContext(namespaceName, program, bindingContext,
newScopes, declarations, aliases, aliasForThis);
newScopes, declarations, aliaser);
}
@@ -174,15 +166,6 @@ public final class TranslationContext {
return scopes.classScope;
}
@NotNull
public Map<JetDeclaration, JsName> aliases() {
return aliases;
}
@NotNull
public JsName declareLocalName(@NotNull String name) {
return scopes.enclosingScope.declareFreshName(name);
}
@NotNull
public JsScope getScopeForDescriptor(@NotNull DeclarationDescriptor descriptor) {
@@ -213,25 +196,11 @@ public final class TranslationContext {
return descriptor;
}
@NotNull
public JsNameRef getAliasForThis() {
assert aliasForThis != null : "Alias is null. Use hasAliasForThis function to check.";
return aliasForThis.makeRef();
}
public void setAliasForThis(@NotNull JsName alias) {
aliasForThis = alias;
}
public void removeAliasForThis() {
aliasForThis = null;
}
public boolean hasAliasForThis() {
return (aliasForThis != null);
}
public boolean isDeclared(@NotNull DeclarationDescriptor descriptor) {
return declarations.isDeclared(descriptor);
}
public Aliaser aliaser() {
return aliaser;
}
}
@@ -54,11 +54,11 @@ public final class ReferenceProvider {
}
private JsNameRef thisQualifiedReference() {
if (!context.hasAliasForThis()) {
if (!context.aliaser().hasAliasForThis()) {
return AstUtil.thisQualifiedReference(referencedName);
}
JsNameRef reference = referencedName.makeRef();
AstUtil.setQualifier(reference, context.getAliasForThis());
AstUtil.setQualifier(reference, context.aliaser().getAliasForThis());
return reference;
}
@@ -59,10 +59,11 @@ public class ReferenceTranslator extends AbstractTranslator {
BindingUtils.getDeclarationForDescriptor(context().bindingContext(), referencedDescriptor);
if (declaration == null) return null;
JsName alias = context().aliases().get(declaration);
if (alias == null) return null;
if (!context().aliaser().hasAliasForDeclaration(declaration)) {
return null;
}
return alias.makeRef();
return context().aliaser().getAliasForDeclaration(declaration);
}
@Nullable
@@ -0,0 +1,12 @@
class Foo() { }
class Bar() { }
fun isInstance<T>(obj: Any?) = obj is T
fun isInstance2<T>(obj: Any?) = isInstance<T>(obj)
fun box(): String {
if (! isInstance2<Foo>(Foo())) return "fail 1"
if (isInstance2<Bar>(Foo())) return "fail 2"
return "OK"
}