Changes for version 2.000000 - 2015-03-02
- Incompatible Changes
- Fatal warnings and the other additional checks from the strictures module will no longer be applied to modules using Moo or Moo::Role. We now only apply strict and (non-fatal) warnings, matching the behavior of Moose.
- Classes without attributes used to store everything passed to ->new in the object. This has been fixed to not store anything in the object, making it consistent with classes that had attributes.
- Moo will now pass __no_BUILD__ to parent constructors when inheriting from a Moose or Class::Tiny class, to prevent them from calling BUILD functions. Moo calls the BUILD functions itself, which previously led to them being called multiple times.
- Attempting to replace an existing constructor, or modify one that has been used, will throw an error. This includes adding attributes. Previously, this would result in some attributes being silently ignored by the constructor.
- If a class's @ISA is modified without using 'extends' in a way that affects object construction, Moo will detect this and throw an error. This can happen in code that uses ->load_components from Class::C3::Componentised, which is common in DBIx::Class modules.
- Bug Fixes
- Fix calling class methods on Moo::HandleMoose::FakeMetaClass, such as modules scanning all classes
- use Sub::Util instead of Sub::Name if available
- Method::Generate::Accessor in lib/Method/Generate/Accessor.pm
- Method::Generate::BuildAll in lib/Method/Generate/BuildAll.pm
- Method::Generate::Constructor in lib/Method/Generate/Constructor.pm
- Method::Generate::DemolishAll in lib/Method/Generate/DemolishAll.pm
- Method::Inliner in lib/Method/Inliner.pm
- Moo::HandleMoose in lib/Moo/HandleMoose.pm
- Moo::HandleMoose::FakeConstructor in lib/Moo/HandleMoose.pm
- Moo::HandleMoose::FakeMetaClass in lib/Moo/HandleMoose/FakeMetaClass.pm
- Moo::HandleMoose::_TypeMap in lib/Moo/HandleMoose/_TypeMap.pm
- Moo::Object in lib/Moo/Object.pm
- Moo::_Utils in lib/Moo/_Utils.pm
- Moo::_mro in lib/Moo/_mro.pm
- Moo::_strictures in lib/Moo/_strictures.pm
- Moo::sification in lib/Moo/sification.pm