Hi All,
can whoever broke menus in the PointerFinder please fix them? To reproduce, e.g. inspect some element in a tool, say a morph in the browser, use 'chase pointers' to bring up the path back to the roots, then chose an element form the list and menu click. Boom, MessageNotUnderstood: PointerFinder>>menu:for:shifted: _,,,^..^,,,_ best, Eliot |
I know it's slightly off-topic, but the PointerExplorer is broken as well.
It only shows WeakArrays used by the PointerExplorer itself. To reproduce evaluate [true explorePointers]. Levente On Tue, 6 Oct 2015, Eliot Miranda wrote: > Hi All, > can whoever broke menus in the PointerFinder please fix them? To reproduce, e.g. inspect some element in a tool, say a morph in the browser, > use 'chase pointers' to bring up the path back to the roots, then chose an element form the list and menu click. Boom, MessageNotUnderstood: > PointerFinder>>menu:for:shifted: > > _,,,^..^,,,_ > best, Eliot > > |
In reply to this post by Eliot Miranda-2
On 06.10.2015, at 23:49, Eliot Miranda <[hidden email]> wrote: > Hi All, > > can whoever broke menus in the PointerFinder please fix them? To reproduce, e.g. inspect some element in a tool, say a morph in the browser, use 'chase pointers' to bring up the path back to the roots, then chose an element form the list and menu click. Boom, MessageNotUnderstood: PointerFinder>>menu:for:shifted: > Thats probably me then? I'll have a look at it. I cannot promise anything before Saturday or so, no internet at home and some private things. Best regards -Tobias |
Hi All
On 07.10.2015, at 14:24, Tobias Pape <[hidden email]> wrote: > > On 06.10.2015, at 23:49, Eliot Miranda <[hidden email]> wrote: > >> Hi All, >> >> can whoever broke menus in the PointerFinder please fix them? To reproduce, e.g. inspect some element in a tool, say a morph in the browser, use 'chase pointers' to bring up the path back to the roots, then chose an element form the list and menu click. Boom, MessageNotUnderstood: PointerFinder>>menu:for:shifted: >> > > Thats probably me then? > I'll have a look at it. > I cannot promise anything before Saturday or so, > no internet at home and some private things. > > Best regards > -Tobias So, Tools-topa.636 should fix it. My apologies. Best regards -Tobias PS: When is a Model not a Tool, btw… |
Tobias,
no need to apologise. When we have a 100% test coverage, though, then you'll be in trouble ;-) Or rather, you won't because you'll know :-) Thanks!! On Wed, Oct 7, 2015 at 3:16 PM, <[hidden email]> wrote: Hi All _,,,^..^,,,_ best, Eliot |
On 08.10.2015, at 00:23, Eliot Miranda <[hidden email]> wrote: > Tobias, > > no need to apologise. When we have a 100% test coverage, though, then you'll be in trouble ;-) Or rather, you won't because you'll know :-) Because you touched the topic... ;D The changes to the shadowing code broke the decompiler and makes the DecompilerTest unhappy. Here's the before [1], here after [2]. Note how the o variable gets hoisted for the #ifNotNil: but then is being shadowed by the :o of the block tempVar. Where can we fix this? Best regards -Tobias [1]: >>> ProtoObjectTest>>#testIfNotNilIfNil | object returnValue block | object := ProtoObject new. returnValue := Object new. self should: [ object ifNotNil: [ self halt ] ifNil: [ self error ] ] raise: Halt. self should: [ object ifNotNil: [ :o | self halt ] ifNil: [ self error ] ] raise: Halt. self assert: (object ifNotNil: [ :o | o == object ] ifNil: [ false ]). self assert: (object ifNotNil: [ returnValue ] ifNil: [ false ]) == returnValue. self assert: (object ifNotNil: [ :o | returnValue ] ifNil: [ false ]) == returnValue. "Now the same without inlining." block := [ self halt ]. self should: [ object ifNotNil: block ifNil: [ self error ] ] raise: Halt. block := [ :o | self halt ]. self should: [ object ifNotNil: block ifNil: [ self error ] ] raise: Halt. block := [ :o | o == object ]. self assert: (object ifNotNil: block ifNil: [ false ]). block := [ returnValue ]. self assert: (object ifNotNil: block ifNil: [ false ]) == returnValue. block := [ :o | returnValue ]. self assert: (object ifNotNil: block ifNil: [ false ]) == returnValue [2]: >>> ProtoObjectTest>>#testIfNotNilIfNil | object returnValue o block | object := ProtoObject new. returnValue := Object new. self should: [object ifNil: [self error] ifNotNil: [self halt]] raise: Halt. self should: [object ifNil: [self error] ifNotNil: [:o | self halt]] raise: Halt. self assert: ((o := object) ifNil: [false] ifNotNil: [o == object]). self assert: (object ifNil: [false] ifNotNil: [returnValue]) == returnValue. self assert: ((o := object) ifNil: [false] ifNotNil: [returnValue]) == returnValue. block := [self halt]. self should: [object ifNotNil: block ifNil: [self error]] raise: Halt. block := [:o | self halt]. self should: [object ifNotNil: block ifNil: [self error]] raise: Halt. block := [:o | o == object]. self assert: (object ifNotNil: block ifNil: [false]). block := [returnValue]. self assert: (object ifNotNil: block ifNil: [false]) == returnValue. block := [:o | returnValue]. self assert: (object ifNotNil: block ifNil: [false]) == returnValue |
Free forum by Nabble | Edit this page |