There seems to be a bug with the way MooseX::Alias interacts with
MooseX::StrictConstructor. Here is a repro case:

package Foo;
use Moose;
use MooseX::StrictConstructor;
use MooseX::Aliases;

has attr => (
    is => 'rw', isa => 'Str',
    alias => 'alias_attr',
);

no Moose;
__PACKAGE__->meta->make_immutable;
1;


perl -I. -MFoo -wle'my $obj = Foo->new(alias_attr=>"blah"); print 
$obj->alias_attr'
Found unknown attribute(s) passed to the constructor: alias_attr at generated 
method (unknown origin) line 23
        Foo::new('Foo', 'alias_attr', 'blah') called at -e line 1


If the make_immutable call is removed, the problem disappears. My guess is
that make_immutable does not take the alias into account when inlining the
constructor?


-- 
                         End random acts of parenting.
            .             .            .            .             .
Karen Etheridge, ka...@etheridge.ca       GCS C+++$ USL+++$ P+++$ w--- M++
http://etheridge.ca/                      PS++ PE-- b++ DI++++ e++ h(-)

Reply via email to