Supported classes not calling ancestor constructor.

This commit is contained in:
Pavel Talanov
2011-11-28 16:43:33 +04:00
parent cd638cb954
commit 313b20c4f7
4 changed files with 116 additions and 99 deletions
+99 -88
View File
@@ -8,23 +8,10 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment=""> <list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/javascript/cases/enclosingThis.js" /> <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="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/JavascriptTest.java" /> <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="DELETED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\patternMatching\cases\whenConditionMethodCall.kt" afterPath="" />
<change type="DELETED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\patternMatching\cases\whenConditionPropertyAccess.kt" afterPath="" />
<change type="MOVED" beforePath="C:\Dev\Projects\jet-contrib\k2js\translator\testFiles\sortedTests\failed\enclosingThis.jet" afterPath="$PROJECT_DIR$/translator/testFiles/examples/cases/enclosingThis.jet" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/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/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/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/WhenTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.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/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/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" />
<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/test/org/jetbrains/k2js/test/ExampleTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExampleTest.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java" />
</list> </list>
<ignored path="k2js.iws" /> <ignored path="k2js.iws" />
<ignored path=".idea/workspace.xml" /> <ignored path=".idea/workspace.xml" />
@@ -202,7 +189,7 @@
<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="true">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java"> <entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="44" column="55" selection-start="1013" selection-end="1013" vertical-scroll-proportion="0.5206738"> <state line="44" column="55" selection-start="1013" selection-end="1013" vertical-scroll-proportion="0.618683">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -257,19 +244,19 @@
</split-first> </split-first>
<split-second> <split-second>
<leaf> <leaf>
<file leaf-file-name="ExampleTest.java" pinned="false" current="true" current-in-tab="true"> <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"> <entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExampleTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="18" column="5" selection-start="415" selection-end="415" vertical-scroll-proportion="0.42857143"> <state line="16" column="5" selection-start="391" selection-end="391" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="enclosingThis.js" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="simpleBox.jet" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/out/enclosingThis.js"> <entry file="file://$PROJECT_DIR$/translator/testFiles/sortedTests/unsupported/simpleBox.jet">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="11" column="32" selection-start="230" selection-end="230" vertical-scroll-proportion="0.0"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -278,17 +265,10 @@
<file leaf-file-name="PropertyAccessTranslator.java" pinned="false" current="false" current-in-tab="false"> <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"> <entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="95" column="0" selection-start="4046" selection-end="4046" vertical-scroll-proportion="-8.576923"> <state line="93" column="0" selection-start="3923" selection-end="3923" vertical-scroll-proportion="-8.576923">
<folding /> <folding>
</state> <element signature="imports" expanded="false" />
</provider> </folding>
</entry>
</file>
<file leaf-file-name="AbstractTranslator.java" pinned="false" current="false" current-in-tab="false">
<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> </state>
</provider> </provider>
</entry> </entry>
@@ -296,7 +276,7 @@
<file leaf-file-name="ReferenceTranslator.java" pinned="false" current="false" current-in-tab="false"> <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"> <entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="35" column="0" selection-start="1383" selection-end="1383" vertical-scroll-proportion="0.0"> <state line="47" column="0" selection-start="1789" selection-end="1789" vertical-scroll-proportion="0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -323,7 +303,25 @@
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="false" current-in-tab="false"> <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"> <entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="383" column="45" selection-start="16793" selection-end="16793" vertical-scroll-proportion="-19.923077"> <state line="25" column="0" selection-start="1035" selection-end="1035" vertical-scroll-proportion="-4.576923">
<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">
<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 /> <folding />
</state> </state>
</provider> </provider>
@@ -338,15 +336,6 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="kotlin_lib.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/kotlin_lib.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>
</file>
</leaf> </leaf>
</split-second> </split-second>
</splitter> </splitter>
@@ -368,7 +357,6 @@
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="changedFiles"> <option name="changedFiles">
<list> <list>
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/Translation.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/declaration/PropertyTranslator.java" /> <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/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java" />
<option value="$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenConditionPropertyAccess.kt" /> <option value="$PROJECT_DIR$/translator/testFiles/patternMatching/cases/whenConditionPropertyAccess.kt" />
@@ -384,6 +372,7 @@
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.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/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/test/org/jetbrains/k2js/test/ExampleTest.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java" />
</list> </list>
</option> </option>
</component> </component>
@@ -505,6 +494,24 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="k2js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="translator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="testFiles" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="sortedTests" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="k2js" /> <option name="myItemId" value="k2js" />
@@ -544,6 +551,10 @@
<option name="myItemId" value="examples" /> <option name="myItemId" value="examples" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="cases" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
@@ -1005,7 +1016,7 @@
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" /> <option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" /> <option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" /> <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="LAST_COMMIT_MESSAGE" value="Added and sorted tests from jet repository. Fixed a bug with custom setter." /> <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="MAKE_NEW_CHANGELIST_ACTIVE" value="true" /> <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" /> <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" /> <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
@@ -1018,7 +1029,6 @@
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" /> <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" /> <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" /> <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
<MESSAGE value="Fixed design flaw which prevented base class from being inherited if it was defined after the derived class." />
<MESSAGE value="Added test. Refactored test code: got rid of obsolete IncludeLibraryTest class." /> <MESSAGE value="Added test. Refactored test code: got rid of obsolete IncludeLibraryTest class." />
<MESSAGE value="Operator overloading: simple cases with ++ and --." /> <MESSAGE value="Operator overloading: simple cases with ++ and --." />
<MESSAGE value="Refactoring operation translator code." /> <MESSAGE value="Refactoring operation translator code." />
@@ -1043,6 +1053,7 @@
<MESSAGE value="Supported single file without namespace." /> <MESSAGE value="Supported single file without namespace." />
<MESSAGE value="Added array basic class." /> <MESSAGE value="Added array basic class." />
<MESSAGE value="Added and sorted tests from jet repository. Fixed a bug with custom setter." /> <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." />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager /> <breakpoint-manager />
@@ -1052,29 +1063,6 @@
<option name="FILTER_TARGETS" value="false" /> <option name="FILTER_TARGETS" value="false" />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/cases/enclosingThis.jet">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="18" selection-start="248" selection-end="249" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/expression/WhenTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="135" column="0" selection-start="5032" selection-end="5032" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="82" column="0" selection-start="2899" selection-end="3123" 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/JavascriptTest.java"> <entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/JavascriptTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="21" column="21" selection-start="480" selection-end="480" vertical-scroll-proportion="0.0"> <state line="21" column="21" selection-start="480" selection-end="480" vertical-scroll-proportion="0.0">
@@ -1098,13 +1086,6 @@
</state> </state>
</provider> </provider>
</entry> </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="383" column="45" selection-start="16793" selection-end="16793" vertical-scroll-proportion="-19.923077">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/out/enclosingThis.js"> <entry file="file://$PROJECT_DIR$/translator/testFiles/examples/out/enclosingThis.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="11" column="32" selection-start="230" selection-end="230" vertical-scroll-proportion="0.0"> <state line="11" column="32" selection-start="230" selection-end="230" vertical-scroll-proportion="0.0">
@@ -1128,8 +1109,10 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java"> <entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/reference/PropertyAccessTranslator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="95" column="0" selection-start="4046" selection-end="4046" vertical-scroll-proportion="-8.576923"> <state line="93" column="0" selection-start="3923" selection-end="3923" vertical-scroll-proportion="-8.576923">
<folding /> <folding>
<element signature="imports" expanded="false" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -1140,13 +1123,6 @@
</state> </state>
</provider> </provider>
</entry> </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="35" column="0" selection-start="1383" selection-end="1383" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslationContext.java"> <entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/general/TranslationContext.java">
<provider selected="true" editor-type-id="text-editor"> <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="46" column="78" selection-start="1833" selection-end="1833" vertical-scroll-proportion="0.0">
@@ -1156,14 +1132,49 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java"> <entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/PatternMatchingTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="44" column="55" selection-start="1013" selection-end="1013" vertical-scroll-proportion="0.5206738"> <state line="44" column="55" selection-start="1013" selection-end="1013" vertical-scroll-proportion="0.618683">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExampleTest.java"> <entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExampleTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="18" column="5" selection-start="415" selection-end="415" vertical-scroll-proportion="0.42857143"> <state line="16" column="5" selection-start="391" selection-end="391" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<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>
<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">
<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">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/examples/cases/inheritedMethod.jet">
<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>
<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 /> <folding />
</state> </state>
</provider> </provider>
@@ -3,6 +3,7 @@ package org.jetbrains.k2js.translate.initializer;
import com.google.dart.compiler.backend.js.ast.*; import com.google.dart.compiler.backend.js.ast.*;
import com.google.dart.compiler.util.AstUtil; import com.google.dart.compiler.util.AstUtil;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor; import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
import org.jetbrains.jet.lang.psi.JetClass; import org.jetbrains.jet.lang.psi.JetClass;
import org.jetbrains.jet.lang.psi.JetDelegationSpecifier; import org.jetbrains.jet.lang.psi.JetDelegationSpecifier;
@@ -39,7 +40,7 @@ public final class ClassInitializerTranslator extends AbstractInitializerTransla
//NOTE: that while we translate constructor parameters we also add property initializer statements //NOTE: that while we translate constructor parameters we also add property initializer statements
// for properties declared as constructor parameters // for properties declared as constructor parameters
result.setParameters(translatePrimaryConstructorParameters()); result.setParameters(translatePrimaryConstructorParameters());
addCallToSuperMethod(); mayBeAddCallToSuperMethod();
result.setBody(generateInitializerMethodBody()); result.setBody(generateInitializerMethodBody());
return result; return result;
} }
@@ -50,22 +51,27 @@ public final class ClassInitializerTranslator extends AbstractInitializerTransla
return AstUtil.newBlock(initializerStatements); return AstUtil.newBlock(initializerStatements);
} }
private void addCallToSuperMethod() { private void mayBeAddCallToSuperMethod() {
if (BindingUtils.hasAncestorClass(context().bindingContext(), classDeclaration)) { if (BindingUtils.hasAncestorClass(context().bindingContext(), classDeclaration)) {
JsName superMethodName = initializerMethodScope.declareName(Namer.SUPER_METHOD_NAME); JetDelegatorToSuperCall superCall = getSuperCall();
List<JsExpression> arguments = translateArguments(); if (superCall == null) return;
initializerStatements.add(AstUtil.convertToStatement addCallToSuperMethod(superCall);
(AstUtil.newInvocation(AstUtil.thisQualifiedReference(superMethodName), arguments)));
} }
} }
@NotNull private void addCallToSuperMethod(@NotNull JetDelegatorToSuperCall superCall) {
private List<JsExpression> translateArguments() { JsName superMethodName = initializerMethodScope.declareName(Namer.SUPER_METHOD_NAME);
JetDelegatorToSuperCall superCall = getSuperCall(); List<JsExpression> arguments = translateArguments(superCall);
return TranslationUtils.translateArgumentList(superCall.getValueArguments(), context()); initializerStatements.add(AstUtil.convertToStatement
(AstUtil.newInvocation(AstUtil.thisQualifiedReference(superMethodName), arguments)));
} }
@NotNull @NotNull
private List<JsExpression> translateArguments(@NotNull JetDelegatorToSuperCall superCall) {
return TranslationUtils.translateArgumentList(superCall.getValueArguments(), context());
}
@Nullable
private JetDelegatorToSuperCall getSuperCall() { private JetDelegatorToSuperCall getSuperCall() {
JetDelegatorToSuperCall result = null; JetDelegatorToSuperCall result = null;
for (JetDelegationSpecifier specifier : classDeclaration.getDelegationSpecifiers()) { for (JetDelegationSpecifier specifier : classDeclaration.getDelegationSpecifiers()) {
@@ -73,7 +79,7 @@ public final class ClassInitializerTranslator extends AbstractInitializerTransla
result = (JetDelegatorToSuperCall) specifier; result = (JetDelegatorToSuperCall) specifier;
} }
} }
assert result != null : "Class must call ancestor's constructor."; //assert result != null : "Class must call ancestor's constructor.";
return result; return result;
} }