You would find the error in that case, but

'a' = 'a' | 'a' = 'b' ifTrue: []

runs runs without error, although probably not the way the author intended. Just for fun I have modified my image to insist the arg be a boolean. Nothing unexpected so far.


On 1/3/17 1:22 PM, Louis LaBrunda wrote:
Hi Bob,

It is the same in VA Smalltalk.  The code of false>>| is:

| aBoolean

	"Answer true if either the receiver or aBoolean
	 is true; answer false otherwise."

	^aBoolean

This is about as simple an implementation as one can have.  Anything else would require testing
the class of the parameter (aBoolean) adding a fair amount of overhead for what I think is very
little gain.  I expect the error would be found soon anyway when the result is sent an #ifTrue:
like message.

Lou

On Tue, 3 Jan 2017 07:17:45 -0500, Bob Arning <arning315@comcast.net> wrote:

This has been this way for aeons, but it surprised me:

false | 'hello'  ==> 'hello'

Does anything actually depend on this being this way?