It feels to me as if this code wants to be on the temp. So perhaps,
> | temp |
> temp := <a long expression>.
> temp <aComplexTest>
> ifTrue: [ temp <something> ]
> ifFalse: [ temp <something else> ].
can become
<a long expression> doSomething
and on Temp:
doSomething
self <aComplexTest>
ifTrue: [ self <something> ]
ifFalse: [ self <something else> ]
It often works out nicer if you move the code around closer to where
it belongs. Make <a long expression> a method somewhere and it may end
up being simpler.
my2c