Hi,

I am not quite sure where the issue is because I cannot seem to reproduce the 
problem.

I try this Playground script:

Object subclass: #ABC
        instanceVariableNames: ''
        classVariableNames: ''
        package: 'ABC'.

ABC compile: 'doesNotUnderstand: aMessage
        "support sending message to access properties"

        | selector |
        selector := aMessage selector.
        self halt: aMessage selector.
        ^ selector isUnary
                ifTrue: [ (self hasPropertyAt: selector)
                                ifTrue: [ self propertyAt: aMessage selector 
asSymbol ]
                                ifFalse: [ super doesNotUnderstand: aMessage ] ]
                ifFalse: [ selector numArgs = 1
                                ifTrue: [ self propertyAt: aMessage selector 
allButLast asSymbol put: aMessage argument ]
                                ifFalse: [ super doesNotUnderstand: aMessage ] 
]'.
                        
ABC new bla.



And I get a debugger. What am I missing?

Cheers,
Doru



> On May 13, 2017, at 6:05 PM, Stephane Ducasse <[email protected]> wrote:
> 
> Hi 
> 
> In the past it was possible to step throw such code and now we cannot anymore 
> because of a smart trick. I should say that I hate when we break the 
> reachibility and understandibility of the system.
> So why I cannot get a debugger opens after the halt: ?
> How do I get that ?
> 
> Now I will put traces: super cool!
> 
> Stef
> 
> doesNotUnderstand: aMessage
>       "support sending message to access properties"
> 
>       | selector |
>       selector := aMessage selector.
>       self halt: aMessage selector.
>       ^ selector isUnary
>               ifTrue: [ (self hasPropertyAt: selector)
>                               ifTrue: [ self propertyAt: aMessage selector 
> asSymbol ]
>                               ifFalse: [ super doesNotUnderstand: aMessage ] ]
>               ifFalse: [ selector numArgs = 1
>                               ifTrue: [ self propertyAt: aMessage selector 
> allButLast asSymbol put: aMessage argument ]
>                               ifFalse: [ super doesNotUnderstand: aMessage ] ]

--
www.tudorgirba.com
www.feenk.com 

“Live like you mean it."


Reply via email to