我正在尝试#new覆盖MyObject. 问题是当文本被编译时,局部变量disp和oldNew分别更改为t1和t2(我使用的是 Squeak 4.3),然后它不能发送oldNew到self.
我可以更改他们的名字,但我不确定这是个好主意。这是我所拥有的基本概述:
MyObject class methodDict at: #new put:
(Object compilerClass new
compile: 'new
| disp oldNew |
oldNew := MyObject class methodDict at: #new.
disp := Dispatcher new.
^disp xxxViewedObject: self oldNew'
in: MyObject
notifying: nil
ifFail: []) generate
我不是 100% 确定我正在做的事情是否是正确的方法,所以欢迎其他想法。
编辑:好的,所以我现在意识到它正在寻找中oldNew的消息MyObject,但是我该如何运行编译的方法?