Please fix menus in the PointerFinder

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Please fix menus in the PointerFinder

Eliot Miranda-2
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


Reply | Threaded
Open this post in threaded view
|

Re: Please fix menus in the PointerFinder

Levente Uzonyi-2
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
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Please fix menus in the PointerFinder

Tobias Pape
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
Reply | Threaded
Open this post in threaded view
|

Re: Please fix menus in the PointerFinder

Tobias Pape
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…
Reply | Threaded
Open this post in threaded view
|

Re: Please fix menus in the PointerFinder

Eliot Miranda-2
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
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…



--
_,,,^..^,,,_
best, Eliot


Reply | Threaded
Open this post in threaded view
|

Re: Please fix menus in the PointerFinder

Tobias Pape

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