Added tests for remaining unary operators (!,+, -).Verified that generated code is what expected.

This commit is contained in:
Pavel Talanov
2011-11-14 22:11:35 +04:00
parent 2ef2eee03e
commit ed0c9f621d
4 changed files with 132 additions and 112 deletions
+108 -112
View File
@@ -6,12 +6,9 @@
</component>
<component name="ChangeListManager">
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/cases/postfixIntOperations.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/cases/prefixIntOperations.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/cases/notBoolean.kt" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/testFiles/expression/cases/positiveAndNegativeNumbers.kt" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExpressionTest.java" afterPath="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExpressionTest.java" />
</list>
<ignored path="k2js.iws" />
@@ -132,19 +129,10 @@
<splitter split-orientation="horizontal" split-proportion="0.5997249">
<split-first>
<leaf>
<file leaf-file-name="ExpressionVisitor.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="328" column="82" selection-start="14675" selection-end="14675" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="postfixIntOperations.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/cases/postfixIntOperations.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="15" selection-start="102" selection-end="102" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="124" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -159,31 +147,56 @@
</provider>
</entry>
</file>
<file leaf-file-name="ExpressionTest.java" pinned="false" current="true" current-in-tab="true">
<file leaf-file-name="ExpressionTest.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExpressionTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="95" column="46" selection-start="2375" selection-end="2375" vertical-scroll-proportion="0.7575277">
<state line="105" column="52" selection-start="2623" selection-end="2623" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="if.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/cases/if.kt">
<file leaf-file-name="positiveAndNegativeNumbers.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/out/positiveAndNegativeNumbers.js">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="236" 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="OperationTranslator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java">
<file leaf-file-name="postfixIntOperations.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/out/postfixIntOperations.js">
<provider selected="true" editor-type-id="text-editor">
<state line="35" column="27" selection-start="1211" selection-end="1211" vertical-scroll-proportion="0.0">
<folding>
<element signature="imports" expanded="true" />
</folding>
<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="prefixIntOperations.js" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/out/prefixIntOperations.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="notBoolean.js" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/out/notBoolean.js">
<provider selected="true" editor-type-id="text-editor">
<state line="8" column="11" selection-start="87" selection-end="87" vertical-scroll-proportion="0.21794872">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="notBoolean.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/cases/notBoolean.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="4" column="18" selection-start="55" selection-end="55" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
@@ -191,34 +204,16 @@
<file leaf-file-name="OperatorTable.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java">
<provider selected="true" editor-type-id="text-editor">
<state line="53" column="60" selection-start="2386" selection-end="2386" vertical-scroll-proportion="0.0">
<state line="51" column="60" selection-start="2261" selection-end="2261" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JsUnaryOperation.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsUnaryOperation.java">
<file leaf-file-name="positiveAndNegativeNumbers.kt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/cases/positiveAndNegativeNumbers.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="29" column="20" selection-start="718" selection-end="718" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JsUnaryOperator.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsUnaryOperator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="9" column="12" selection-start="319" selection-end="319" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="JetBinaryExpression.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetBinaryExpression.java">
<provider selected="true" editor-type-id="text-editor">
<state line="54" column="0" selection-start="1504" selection-end="1504" vertical-scroll-proportion="0.0">
<state line="6" column="23" selection-start="90" selection-end="90" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -339,8 +334,6 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/PropertyAccessTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslatorVisitor.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/InitializerVisitor.java" />
@@ -352,8 +345,10 @@
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/cases/postfixIntOperations.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/cases/prefixIntOperations.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/cases/postfixIntOperations.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/cases/notBoolean.kt" />
<option value="$PROJECT_DIR$/translator/testFiles/expression/cases/positiveAndNegativeNumbers.kt" />
<option value="$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExpressionTest.java" />
</list>
</option>
@@ -996,7 +991,7 @@
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
<editor active="false" />
<editor active="true" />
<layout>
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32907662" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
@@ -1012,7 +1007,7 @@
<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.2224599" sideWeight="0.6637931" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.33620688" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.33620688" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="true" content_ui="tabs" />
@@ -1050,7 +1045,7 @@
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="LAST_COMMIT_MESSAGE" value="Introduced OperationTranslator class and started work on Unary Expression." />
<option name="LAST_COMMIT_MESSAGE" value="Implemented basic version of unary operation translation(valid for primitive types) and added a 2 tests for it." />
<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" />
@@ -1083,6 +1078,7 @@
<MESSAGE value="Renamed function test suite to expression test suite. Work in progress on constructor parameters." />
<MESSAGE value="Found a bug so work on constructor parameters has stopped.&#10;i" />
<MESSAGE value="Introduced OperationTranslator class and started work on Unary Expression." />
<MESSAGE value="Implemented basic version of unary operation translation(valid for primitive types) and added a 2 tests for it." />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
@@ -1092,48 +1088,6 @@
<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/PropertyDescriptor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="139" column="0" selection-start="4861" selection-end="4861" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="266" column="39" selection-start="15807" selection-end="15807" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetBinaryExpression.java">
<provider selected="true" editor-type-id="text-editor">
<state line="54" column="0" selection-start="1504" selection-end="1504" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/class/cases/constructorWithParameter.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="42" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/BasicClassTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="36" column="70" selection-start="957" selection-end="957" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsUnaryOperation.java">
<provider selected="true" editor-type-id="text-editor">
<state line="29" column="20" selection-start="718" selection-end="718" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ClassInheritanceTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="25" column="11" selection-start="575" selection-end="575" vertical-scroll-proportion="0.0">
@@ -1148,13 +1102,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java">
<provider selected="true" editor-type-id="text-editor">
<state line="53" column="60" selection-start="2386" selection-end="2386" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperationTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="35" column="27" selection-start="1211" selection-end="1211" vertical-scroll-proportion="0.0">
@@ -1166,7 +1113,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="328" column="82" selection-start="14675" selection-end="14675" vertical-scroll-proportion="0.0">
<state line="328" column="82" selection-start="14676" selection-end="14676" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -1185,13 +1132,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/cases/postfixIntOperations.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="15" selection-start="102" selection-end="102" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/cases/prefixIntOperations.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="30" selection-start="117" selection-end="117" vertical-scroll-proportion="0.0">
@@ -1199,9 +1139,65 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/cases/postfixIntOperations.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="124" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/cases/notBoolean.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="4" column="18" selection-start="55" selection-end="55" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/OperatorTable.java">
<provider selected="true" editor-type-id="text-editor">
<state line="51" column="60" selection-start="2261" selection-end="2261" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/cases/positiveAndNegativeNumbers.kt">
<provider selected="true" editor-type-id="text-editor">
<state line="6" column="23" selection-start="90" selection-end="90" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/test/org/jetbrains/k2js/test/ExpressionTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="95" column="46" selection-start="2375" selection-end="2375" vertical-scroll-proportion="0.7575277">
<state line="105" column="52" selection-start="2623" selection-end="2623" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/testFiles/expression/out/positiveAndNegativeNumbers.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/testFiles/expression/out/postfixIntOperations.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/testFiles/expression/out/prefixIntOperations.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/testFiles/expression/out/notBoolean.js">
<provider selected="true" editor-type-id="text-editor">
<state line="8" column="11" selection-start="87" selection-end="87" vertical-scroll-proportion="0.21794872">
<folding />
</state>
</provider>
@@ -95,4 +95,14 @@ public final class ExpressionTest extends TranslationTest {
public void postfixIntOperations() throws Exception {
testFooBoxIsTrue("postfixIntOperations.kt");
}
@Test
public void notBoolean() throws Exception {
testFooBoxIsTrue("notBoolean.kt");
}
@Test
public void positiveAndNegativeNumbers() throws Exception {
testFooBoxIsTrue("positiveAndNegativeNumbers.kt");
}
}
@@ -0,0 +1,6 @@
namespace foo
fun box() : Boolean
{
return !false;
}
@@ -0,0 +1,8 @@
namespace foo
fun box() : Boolean
{
val b = -3
val c = +3
return (c - b) == 6
}