parser

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

 

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

Ответ

MoKo 02.05.2017 00:16

Т.е. пытаемся из класса START переопределить $MAIN:autouse. Только такой autouse автоматически не вызывается. В версии 3.4.4 такой код работал.
Ну вот если бы этот тест был прислан не спустя полтора месяца, а раньше, то в 3.4.5 осталось бы старое поведение. А теперь, увы. С точки зрения документации все корректно: "вызывается метод autouse класса MAIN". А конструкция $MAIN:autouse[$self.autouse] не добавляет метод в класс, а добавляет свойство, содержащее ссылку на метод.

Старое поведение мы вернем (изменение поведения не планировалось, это побочный эффект небольшой оптимизации), но теперь это получится сделать только в ночных сборках. А для 3.4.5 исправить проще всего именно добавлением метода в MAIN, для чего есть новый функционал. То есть заменить
$MAIN:autouse[$self.autouse]
на
^reflection:mixin[$self; $.to[$MAIN:CLASS] $.name[autouse] $.overwrite(true) ]