[Pharo-project] Which methods are really not executed?
Hi folks. I would like to know which are the messages that are not really executed, thus not being intercepted by proxies. So far, I know: 1) MessageNode >> initialize MacroSelectors := #( ifTrue: ifFalse: ifTrue:ifFalse: ifFalse:ifTrue: and: or: whileFalse: whileTrue: whileFalse whileTrue to:do: to:by:do: caseOf: caseOf:otherwise: ifNil: ifNotNil: ifNil:ifNotNil: ifNotNil:ifNil:). those are inlined by the compiler... 2) Special shorcut bytecodes that are in "Smalltalk specialSelectors" / "ParseNode classVarNamed: 'StdSelectors'" / "Smalltalk specialObjectsArray at: 24" Here I have a question...if I understand correctly, in this list of selectors there are 3 cases: 2.1) methods may or may not be executed depending on the receiver/arguments. For example 1 + 2 will never send the message #+ to 1. but 1 + 'mariano' will do. 2.2) methods that are NEVER sent, like #class and #== 2.3) methods that are ALWAYS sent, like #new, #next, #nextPut:, #size, etc. So...did I understand correclty this part? are there more cases where a message may not be really executed? thanks Mariano
participants (1)
-
Mariano Martinez Peck