当我在以下代码中将MetaLink添加到所有发送节点时,#ifTrue:
上的Metalink不起作用:
aMethod
10 = 11
ifTrue: [ ^ 3 ]
添加MetaLink的代码:
ast sendNodes do: [ :n |
n link: (MetaLink new
metaObject: [ :node |
Transcript show: node asString; cr ];
arguments: #(node);
selector: #value:;
control: #before;
yourself) ]
谁能解释为什么会这样?如何在#ifTrue:
发送中添加MetaLink?
感谢@ LeandroCaniglia的评论,这是由于编译优化。
您可以在Inline If
中取消选中Opal Compiler settings
并重新编译该方法。
重新编译后,重新安装Metalinks,您将看到#ifTrue:
作为消息呼叫。