Отключение встроенных конструкторов с помощью MooseX :: Declare

StackOverflow https://stackoverflow.com/questions/1060470

  •  21-08-2019
  •  | 
  •  

Вопрос

Приветствую

В ответ на мой предыдущий вопрос о лосе ястолкнулся с новой проблемой.У меня есть класс Moose, который использует Рецепт 12 для расширения родительского класса, отличного от Moose.Вот он:

родовое слово

Отлично работает.У меня также есть подкласс этого класса, который использует MooseX::Declare.Однако, поскольку я теперь переопределяю конструктор Moose по умолчанию, мой подкласс выдает следующее предупреждение:

родовое слово

Поскольку MooseX::Declare автоматически вызывает make_immutable за кулисами, я не смог понять, как заставить его включить параметр inline_constructor => 0.

Это было полезно?

Решение

Благодаря некоторым людям из IRC я смог взломать этот.Объявить класс mutable было достаточно, чтобы отключить флаг auto_make_immutable в MooseX::Declare, так что я мог сделать это вручную.(Конечно, это также работает с классом, отличным от MX :: Declare.)

Исправленная версия:

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top