~$ cat -n BB.pm ; cat -n C.pm ; cat -n M.pm
1 use Moops; role BB { } 1
1 use Moops; role C {} 1
1 use Moops;
2 class M {
3 has m => ( is=>'ro', isa=>'MongoDB::Cursor' );
4 with qw(C BB);
5 }
~$ perl -c M.pm
Due to a method name conflict between roles 'BB and C', the method 'before' must be implemented by 'M'
Due to a method name conflict between roles 'BB and C', the method 'fun' must be implemented by 'M'
Due to a method name conflict between roles 'BB and C', the method 'multi' must be implemented by 'M'
Due to a method name conflict between roles 'BB and C', the method 'method' must be implemented by 'M'
Due to a method name conflict between roles 'BB and C', the method 'after' must be implemented by 'M'
Due to a method name conflict between roles 'BB and C', the method 'around' must be implemented by 'M' at /usr/local/share/perl/5.20.1/Role/Tiny.pm line 212.
BEGIN failed--compilation aborted at M.pm line 5.
~$
I'm not entirely sure what the real underlying error is, but the error messages displayed is irrelevant. Depending on which module is referred to in isa=>'' either this error message or no error message is displayed, but I can't identify the pattern.
Migrated from rt.cpan.org #100650 (status was 'new')
Requestors:
From sauber@cpan.org on 2014-12-02 00:16:50 :
Take the following minimal example:
~$ cat -n BB.pm ; cat -n C.pm ; cat -n M.pm 1 use Moops; role BB { } 1 1 use Moops; role C {} 1 1 use Moops; 2 class M { 3 has m => ( is=>'ro', isa=>'MongoDB::Cursor' ); 4 with qw(C BB); 5 } ~$ perl -c M.pm Due to a method name conflict between roles 'BB and C', the method 'before' must be implemented by 'M' Due to a method name conflict between roles 'BB and C', the method 'fun' must be implemented by 'M' Due to a method name conflict between roles 'BB and C', the method 'multi' must be implemented by 'M' Due to a method name conflict between roles 'BB and C', the method 'method' must be implemented by 'M' Due to a method name conflict between roles 'BB and C', the method 'after' must be implemented by 'M' Due to a method name conflict between roles 'BB and C', the method 'around' must be implemented by 'M' at /usr/local/share/perl/5.20.1/Role/Tiny.pm line 212. BEGIN failed--compilation aborted at M.pm line 5. ~$
I'm not entirely sure what the real underlying error is, but the error messages displayed is irrelevant. Depending on which module is referred to in isa=>'' either this error message or no error message is displayed, but I can't identify the pattern.