ReturnNode.st
changeset 1403 1bc763430b94
parent 1383 3d485eefbb36
child 1578 1eb1feb57888
--- a/ReturnNode.st	Fri Apr 25 18:42:16 2003 +0200
+++ b/ReturnNode.st	Fri Apr 25 18:52:21 2003 +0200
@@ -45,20 +45,6 @@
 "
 ! !
 
-!ReturnNode class methodsFor:'code generation helpers'!
-
-codeSimpleReturnFor:expression inBlock:b on:aStream inLine:lineNrOrNil for:aCompiler
-    "/ let expression decide how to do it efficiently.
-    expression
-        codeForSimpleReturnOn:aStream 
-        inBlock:b 
-        lineNumber:lineNrOrNil 
-        for:aCompiler
-
-    "Created: 21.10.1996 / 14:37:35 / cg"
-    "Modified: 21.10.1996 / 14:43:11 / cg"
-! !
-
 !ReturnNode methodsFor:'accessing'!
 
 expression:e
@@ -84,21 +70,30 @@
     ^ self codeOn:aStream inBlock:b for:aCompiler
 !
 
+codeForSimpleReturnOn:aStream inBlock:b lineNumber:lineNrOrNil for:aCompiler
+    "generate code to return myself as a simple method return"
+
+    self codeOn:aStream inBlock:b for:aCompiler.
+
+    "as a ReturnNode, I did return, so retTop is not needed"
+"/    aStream nextPut:#retTop.
+!
+
 codeOn:aStream inBlock:b for:aCompiler
     b isNil ifTrue:[
         expression isNil ifTrue:[
             aStream nextPut:#retNil.
         ] ifFalse:[
-            self class
-                codeSimpleReturnFor:expression 
-                inBlock:nil 
-                on:aStream 
-                inLine:lineNr 
-                for:aCompiler.
+            expression
+                codeForSimpleReturnOn:aStream 
+                inBlock:b 
+                lineNumber:lineNr
+                for:aCompiler
         ].
         ^ self.
     ].
 
+    "special: return from homeContext in a block"
     expression codeOn:aStream inBlock:b for:aCompiler.
 
     lineNr notNil ifTrue:[
@@ -154,5 +149,5 @@
 !ReturnNode class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/ReturnNode.st,v 1.28 2003-03-28 14:39:23 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/ReturnNode.st,v 1.29 2003-04-25 16:52:21 stefan Exp $'
 ! !