Skip to content

Instantly share code, notes, and snippets.

@tokuhirom
Created August 28, 2008 12:00
Show Gist options
  • Save tokuhirom/7712 to your computer and use it in GitHub Desktop.
Save tokuhirom/7712 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl
with Moose 0.55_01 & Class::MOP 0.64_6
### code.
use strict;
use warnings;
use Class::MOP;
use Moose::Meta::Class;
require Moose;
{
package R1;
use Moose::Role;
sub b { warn "FOO" }
}
{
package R2;
use Moose::Role;
with 'R1';
sub b { warn "FOO" }
}
my $class = Moose::Meta::Class->create(
'Target' => (
superclasses => ['Moose::Meta::Class'],
roles => ['R2'],
)
);
warn "OK";
### result
'R2' requires the method 'b' to be implemented by 'Target' at /home/tokuhirom/project/perl-5.10//lib/site_perl/5.10.0/Moose/Meta/Role/Application/ToClass.pm line 50
Moose::Meta::Role::Application::ToClass::check_required_methods('Moose::Meta::Role::Application::ToClass=HASH(0x8593198)', 'Moose::Meta::Role=HASH(0x8591e40)', 'Moose::Meta::Class=HASH(0x8592e98)') called at /home/tokuhirom/project/perl-5.10//lib/site_perl/5.10.0/Moose/Meta/Role/Application.pm line 59
Moose::Meta::Role::Application::apply('Moose::Meta::Role::Application::ToClass=HASH(0x8593198)', 'Moose::Meta::Role=HASH(0x8591e40)', 'Moose::Meta::Class=HASH(0x8592e98)') called at /home/tokuhirom/project/perl-5.10//lib/site_perl/5.10.0/Moose/Meta/Role/Application/ToClass.pm line 20
Moose::Meta::Role::Application::ToClass::apply('Moose::Meta::Role::Application::ToClass=HASH(0x8593198)', 'Moose::Meta::Role=HASH(0x8591e40)', 'Moose::Meta::Class=HASH(0x8592e98)') called at /home/tokuhirom/project/perl-5.10//lib/site_perl/5.10.0/Moose/Meta/Role.pm line 460
Moose::Meta::Role::apply('Moose::Meta::Role=HASH(0x8591e40)', 'Moose::Meta::Class=HASH(0x8592e98)') called at /home/tokuhirom/project/perl-5.10//lib/site_perl/5.10.0/Moose/Util.pm line 102
Moose::Util::apply_all_roles_with_method('Moose::Meta::Class=HASH(0x8592e98)', 'apply', 'ARRAY(0x85928b8)') called at /home/tokuhirom/project/perl-5.10//lib/site_perl/5.10.0/Moose/Util.pm line 76
Moose::Util::apply_all_roles('Moose::Meta::Class=HASH(0x8592e98)', 'R2') called at /home/tokuhirom/project/perl-5.10//lib/site_perl/5.10.0/Moose/Meta/Class.pm line 47
Moose::Meta::Class::create('Moose::Meta::Class', 'Target', 'superclasses', 'ARRAY(0x815f530)', 'roles', 'ARRAY(0x8150318)') called at foo.pl line 23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment