Отключение встроенных конструкторов с помощью MooseX :: Declare
Вопрос
Приветствую
В ответ на мой предыдущий вопрос о лосе ястолкнулся с новой проблемой.У меня есть класс Moose, который использует Рецепт 12 для расширения родительского класса, отличного от Moose.Вот он:
родовое слово Отлично работает.У меня также есть подкласс этого класса, который использует MooseX::Declare
.Однако, поскольку я теперь переопределяю конструктор Moose по умолчанию, мой подкласс выдает следующее предупреждение:
Поскольку MooseX::Declare
автоматически вызывает make_immutable
за кулисами, я не смог понять, как заставить его включить параметр inline_constructor => 0
.
Решение
Благодаря некоторым людям из IRC я смог взломать этот.Объявить класс mutable
было достаточно, чтобы отключить флаг auto_make_immutable
в MooseX::Declare
, так что я мог сделать это вручную.(Конечно, это также работает с классом, отличным от MX :: Declare.)
Исправленная версия:
родовое слово