--- 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'!