Pharo Metalink在#ifTrue上不起作用:发送节点

问题描述 投票:1回答:1

当我在以下代码中将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?

pharo
1个回答
1
投票

感谢@ LeandroCaniglia的评论,这是由于编译优化。

您可以在Inline If中取消选中Opal Compiler settings并重新编译该方法。

重新编译后,重新安装Metalinks,您将看到#ifTrue:作为消息呼叫。

© www.soinside.com 2019 - 2024. All rights reserved.