MessageNode.st
changeset 4137 0954014c1068
parent 3985 2b2a2ee12cdc
child 4138 f5d3b5441a87
equal deleted inserted replaced
4136:926d1bd50818 4137:0954014c1068
   691 
   691 
   692     argArray size > 0 ifTrue:[
   692     argArray size > 0 ifTrue:[
   693         "/ check for a beginners error (using super as arg)
   693         "/ check for a beginners error (using super as arg)
   694         "/ as in (something ? super) foo
   694         "/ as in (something ? super) foo
   695         "/ let him know, that this will not be a "super foo"
   695         "/ let him know, that this will not be a "super foo"
   696         argArray do:[:arg | arg isSuper ifTrue:[
   696         argArray do:[:arg | 
   697                                 ^ 'super special semantic only with receiver of message sends'
   697             arg isSuper ifTrue:[
   698                             ]
   698                 ^ 'super special semantic only with receiver of message sends'
   699                     ].
   699             ]
       
   700         ].
   700     ].
   701     ].
   701 
   702 
   702     (selector = #'handle:do:' 
   703     (selector = #'handle:do:' 
   703     or:[ selector = #'handle:from:do:'
   704     or:[ selector = #'handle:from:do:'
   704     or:[ selector = #'ignoreIn:'
   705     or:[ selector = #'ignoreIn:'
   719 "/    ].
   720 "/    ].
   720 
   721 
   721     ^ nil
   722     ^ nil
   722 
   723 
   723     "Modified: / 28-03-2007 / 14:14:28 / cg"
   724     "Modified: / 28-03-2007 / 14:14:28 / cg"
       
   725     "Modified (format): / 08-03-2017 / 11:36:03 / cg"
   724 ! !
   726 ! !
   725 
   727 
   726 !MessageNode methodsFor:'code generation'!
   728 !MessageNode methodsFor:'code generation'!
   727 
   729 
   728 codeOn:aStream inBlock:b for:aCompiler
   730 codeOn:aStream inBlock:b for:aCompiler
  1155     receiver variableNodesDo:aBlock.
  1157     receiver variableNodesDo:aBlock.
  1156     argArray notNil ifTrue:[
  1158     argArray notNil ifTrue:[
  1157         argArray do:[:arg | arg variableNodesDo:aBlock].
  1159         argArray do:[:arg | arg variableNodesDo:aBlock].
  1158     ]
  1160     ]
  1159 ! !
  1161 ! !
       
  1162 
  1160 
  1163 
  1161 !MessageNode methodsFor:'evaluation'!
  1164 !MessageNode methodsFor:'evaluation'!
  1162 
  1165 
  1163 evaluateForCascadeIn:anEnvironment
  1166 evaluateForCascadeIn:anEnvironment
  1164     ^ self evaluateIn:anEnvironment forCascade:true
  1167     ^ self evaluateIn:anEnvironment forCascade:true
  1231 !
  1234 !
  1232 
  1235 
  1233 evaluationSelector
  1236 evaluationSelector
  1234     ^ selector asSymbol
  1237     ^ selector asSymbol
  1235 ! !
  1238 ! !
       
  1239 
  1236 
  1240 
  1237 !MessageNode methodsFor:'optimized code generation'!
  1241 !MessageNode methodsFor:'optimized code generation'!
  1238 
  1242 
  1239 codeAndIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
  1243 codeAndIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
  1240     "generate code for (x and:[y]) ifxxx:[ ... ] ifyyy:[ ... ]"
  1244     "generate code for (x and:[y]) ifxxx:[ ... ] ifyyy:[ ... ]"