make_immutable bug?

[email protected] ("woosley. xu.")
Newsgroups perl.moose
Message-ID <CAG6tKJNzJ482Dqv3Bxh5P2VS=oSBUVj8aZf6o-0fvOPsfWDLfA@mail.gmail.com>
Hi all,
    Is this a Moose make_immutable bug?


# a.pm

package a;
use Moose::Role;

1;

# b.pm
package b;
use Moose;
around 'BUILDARGS' => sub {
    my $orig = shift;
    my $self = shift;
    with 'a';
    $self->$orig;
};
sub BUILD {
    my $self  = shift;
    $self->meta->make_immutable;
}

1;

#a.pl
#!/usr/bin/perl
use strict;
use warnings;

use b;

my $c = b->new();
my $d = b->new();




$perl a.pl
The 'Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)'
method cannot be called on an immutable instance at
/opt/csw/lib/perl/site_perl/Class/MOP/Class/Immutable/Trait.pm line 32

Class::MOP::Class::Immutable::Trait::_immutable_cannot_call('Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)')
called at /opt/csw/lib/perl/site_perl/Moose/Meta/Class/Immutable/Trait.pm
line 17
        Class::MOP::Class:::around('CODE(0x3b3580)',
'Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)',
'Moose::Meta::Role=HASH(0x7cdaa0)') called at
/opt/csw/lib/perl/site_perl/Class/MOP/Method/Wrapped.pm line 162

Class::MOP::Method::Wrapped::__ANON__('Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)',
'Moose::Meta::Role=HASH(0x7cdaa0)') called at
/opt/csw/lib/perl/site_perl/Class/MOP/Method/Wrapped.pm line 91

Class::MOP::Class::Immutable::Moose::Meta::Class::add_role('Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)',
'Moose::Meta::Role=HASH(0x7cdaa0)') called at
/opt/csw/lib/perl/site_perl/Moose/Meta/Role/Application/ToClass.pm line 38

Moose::Meta::Role::Application::ToClass::apply('Moose::Meta::Role::Application::ToClass=HASH(0x7bd1b0)',
'Moose::Meta::Role=HASH(0x7cdaa0)',
'Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)',
'HASH(0x7d22d0)') called at /opt/csw/lib/perl/site_perl/Moose/Meta/Role.pm
line 470
        Moose::Meta::Role::apply('Moose::Meta::Role=HASH(0x7cdaa0)',
'Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)') called
at /opt/csw/lib/perl/site_perl/Moose/Util.pm line 160

Moose::Util::_apply_all_roles('Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)',
undef, 'a') called at /opt/csw/lib/perl/site_perl/Moose/Util.pm line 99

Moose::Util::apply_all_roles('Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)',
'a') called at /opt/csw/lib/perl/site_perl/Moose.pm line 67

Moose::with('Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x6d7a90)',
'a') called at /opt/csw/lib/perl/site_perl/Moose/Exporter.pm line 370
        Moose::with('a') called at b.pm line 6
        Class::MOP::Class:::around('CODE(0x626410)', 'b') called at
/opt/csw/lib/perl/site_perl/Class/MOP/Method/Wrapped.pm line 162
        Class::MOP::Method::Wrapped::__ANON__('b') called at
/opt/csw/lib/perl/site_perl/Class/MOP/Method/Wrapped.pm line 91
        b::BUILDARGS('b') called at constructor b::new (defined at
b.pmline 11) line 6
        b::new('b') called at a.pl line 8



-- 
woosley.xu.    http://twitter.com/redicaps
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.