Well, in fact Boolean class has no instances, the boolean value true is an
instance of True class, you should look at the ifTrue: methods in the
subclasses of Boolean True and False.

But also, ifTrue: expressions are inlined, as the comment says in the code
you posted. So I think that all this ifTrue: methods are never actually
executed.

2016-10-31 14:17 GMT+01:00 CodeDmitry <dimamakh...@gmail.com>:

> I am looking at
>
> ifTrue: alternativeBlock
>         "If the receiver is false (i.e., the condition is false), then the
> value is
> the
>         false alternative, which is nil. Otherwise answer the result of
> evaluating
>         the argument, alternativeBlock. Create an error notification if the
>         receiver is nonBoolean. Execution does not actually reach here
> because
>         the expression is compiled in-line."
>
>         self subclassResponsibility
>
> In order to perform the block, ifTrue must somehow end up evaluating the
> block, but this code only sends a subclassResponsibility message to itself
> and implicitly returns itself.
>
> Where does the block actually get evaluated?
>
>
>
>
> --
> View this message in context: http://forum.world.st/How-
> does-Boolean-ifTrue-work-tp4920873.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>

Reply via email to