parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

moko 28.09.2016 19:29

Добрался до задачи и возник вопрос: "не работает если методы существуют в виде ссылок" - это на самом деле означает, что у объекта есть свойство типа method-junction? Мне кажется, что это далеко не синоним "наличия метода у объекта" - этот method-junction вполне может быть и от другого объекта. То есть предлагаемая конструкция:
$def(^reflection:is[$method;junction;$object] || ^reflection:method[$object;$method] is junction)
вполне корректна. Хотя мне кажется в данном случае ее можно заменить на
$def($object.$method is junction || $object.CLASS.$method is junction)
Первую часть можно заменить, поскольку по формулировке задачи нас не интересует code-junction (да и класть его в поле объекта странно, он перестанет работать при выходе из метода).

Вторую часть можно заменить, поскольку мы не собираемся вызывать этот метод, а значит правильный self нас не интересует.