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."