On Oct 11, 2013, at 4:13 PM, Sean P. DeNigris <sean@clipperadams.com> wrote:
In 30456, I'm in the process of porting the Tiling Window Manager. I'm experiencing this confusing error...
TWMDockingBarMorph DNU @
In DockingBarMorph>>updatePosition there is the following code:
self isAdheringToLeft ifTrue: [| usedHeight usedWidth | usedHeight := self usedHeightByPredominantDockingBarsOfChastes: #(#top ). usedWidth := self usedWidthByPredominantDockingBarsOfChastes: #(#left ). (usedHeight isNumber not or: [usedWidth isNumber]) ifFalse: [ Halt once ]. usedHeight := 1000. usedWidth := 100. self topLeft: self owner topLeft - margin + (usedWidth @ usedHeight)].
Pharo is saying that usedWidth = aTWMDockingBarMorph, even though it's set to a number (for debugging) in the preceding statement. Any ideas?
So it seems the compiler (the semantic analysis phase, I think) does something wrong with defined temps in ifTrue: and other optimized blocks. I will -> commit an update where the code moves the temps to the method -> then fix the compiler next week Marcus