Pharo Metalink не работает на #ifTrue: отправить узел - PullRequest
1 голос
/ 03 апреля 2020

Когда я добавляю MetaLink ко всем отправляющим узлам в следующем коде, Metalink на #ifTrue: не работает:

aMethod
    10 = 11
        ifTrue: [ ^ 3 ]

код для добавления мета-ссылок:

ast sendNodes do: [ :n | 
            n link: (MetaLink new
                        metaObject: [ :node | 
                            Transcript show: node asString; cr ];
                        arguments: #(node);
                        selector: #value:;
                        control: #before;
                        yourself) ]

Может кто угодно объясните, почему это происходит? Как добавить MetaLink при отправке #ifTrue:?

1 Ответ

1 голос
/ 26 апреля 2020

Благодаря комментарию @ LeandroCaniglia, это из-за оптимизации компиляции.

Вы можете снять отметку Inline If в Opal Compiler settings и перекомпилировать метод.

После перекомпиляции переустановите ваши Metalinks, и вы увидите #ifTrue: как сообщение вызова.

...