IRBuilderTest.st
changeset 11 0a50d475c1ff
parent 10 0fd549e0c784
child 14 9369d251b3ed
--- a/IRBuilderTest.st	Mon Mar 30 17:49:01 2009 +0000
+++ b/IRBuilderTest.st	Wed Apr 01 21:13:00 2009 +0000
@@ -766,6 +766,64 @@
 
     "Created: / 30-03-2009 / 14:26:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 30-03-2009 / 19:16:25 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+testBlock_blockTempVar
+    |aCompiledMethod irBuilder|
+
+    irBuilder := (IRBuilder new)
+                numRargs:1;
+                addTemps:#( #self );
+                pushBlockUsingBuilder:[:builder | 
+                        builder
+                            numRargs:0;
+                            addTemps:#( #bvar1 );
+                            pushLiteral: 22;
+                            storeTemp:#bvar1;
+                            pushTemp: #bvar1;
+                            returnTop
+                    ];
+                send:#value;
+                returnTop;
+                ir.
+    "
+        irBuilder ir
+    "
+
+    aCompiledMethod := irBuilder compiledCode.
+    self assert:(aCompiledMethod isKindOf:CompiledMethod).
+    self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = 22).
+
+    "Created: / 30-03-2009 / 23:03:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+testBlock_methodTempVar
+    |aCompiledMethod irBuilder|
+
+    irBuilder := (IRBuilder new)
+                numRargs:1;
+                addTemps:#( #self #a);
+                pushLiteral: 22;
+                storeTemp: #a;
+                pushBlockUsingBuilder:[:builder | 
+                        builder
+                            numRargs:0;
+                            pushTemp: #a;
+                            returnTop
+                    ];
+                send:#value;
+                returnTop;
+                ir.
+    "
+        irBuilder ir
+    "
+
+    aCompiledMethod := irBuilder compiledCode.
+    self assert:(aCompiledMethod isKindOf:CompiledMethod).
+    self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = 22).
+
+    "Created: / 30-03-2009 / 23:05:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 01-04-2009 / 19:43:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
 ! !
 
 !IRBuilderTest class methodsFor:'documentation'!