MessageNode.st
changeset 3385 0c211183027f
parent 3356 3c0e828c3f36
child 3409 1e083fdee371
--- a/MessageNode.st	Sun Feb 23 04:23:50 2014 +0100
+++ b/MessageNode.st	Tue Feb 25 15:30:06 2014 +0100
@@ -1520,7 +1520,9 @@
                 eachCaseArg isMessage ifFalse:[ ^ false].
                 eachCaseArg selector == #'->' ifFalse:[ ^ false].
                 eachCaseArg receiver isBlock ifFalse:[ ^ false].
-                (caseBlock := eachCaseArg arg1) isBlock ifFalse:[ ^ false].
+                (caseBlock := eachCaseArg arg1) isBlock ifFalse:[
+                    caseBlock isVariable ifFalse:[ ^ false].
+                ].
                 "the case-value-block must consist of a single expression"
                 eachCaseArg receiver isSingleExpressionBlock ifFalse:[ ^ false].
                 (caseValueExpression := eachCaseArg receiver simpleSendBlockExpression) notNil ifFalse:[ ^ false].
@@ -1563,7 +1565,9 @@
     ].
     argArray size > 1 ifTrue:[
         otherwiseArg := argArray at:2.
-        otherwiseArg isBlock ifFalse:[^ false]
+        otherwiseArg isBlock ifFalse:[
+            otherwiseArg isVariable ifFalse:[^ false]
+        ]
     ].
     "compile as a nested if"
 
@@ -3392,11 +3396,11 @@
 !MessageNode class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.207 2014-02-12 23:47:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.208 2014-02-25 14:30:06 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.207 2014-02-12 23:47:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.208 2014-02-25 14:30:06 cg Exp $'
 !
 
 version_SVN