X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FAttribute.pm;h=71a2bbdf178659ab4c40eb3d155210f13efa9a6d;hp=5bb0da11b9bb4ccb3a22af19bb20b073ac696900;hb=1372fcc0864d73696fe1b926d489b455be26229e;hpb=a25ca8d637c040b2f929b1a23dd62ff63d85f5d1 diff --git a/lib/Mouse/Meta/Attribute.pm b/lib/Mouse/Meta/Attribute.pm index 5bb0da1..71a2bbd 100644 --- a/lib/Mouse/Meta/Attribute.pm +++ b/lib/Mouse/Meta/Attribute.pm @@ -214,17 +214,21 @@ sub interpolate_class{ my @traits; if(my $traits_ref = delete $args->{traits}){ - for (my $i = 0; $i < @{$traits_ref}; $i++) { - my $trait = Mouse::Util::resolve_metaclass_alias(Attribute => $traits_ref->[$i], trait => 1); + local $@; + eval{ + for (my $i = 0; $i < @{$traits_ref}; $i++) { + my $trait = Mouse::Util::resolve_metaclass_alias(Attribute => $traits_ref->[$i], trait => 1); - next if $class->does($trait); + next if $class->does($trait); - push @traits, $trait; + push @traits, $trait; - # are there options? - push @traits, $traits_ref->[++$i] - if ref($traits_ref->[$i+1]); - } + # are there options? + push @traits, $traits_ref->[++$i] + if ref($traits_ref->[$i+1]); + } + }; + warn "Fatal error in traits: $@" if _MOUSE_VERBOSE; if (@traits) { $class = Mouse::Meta::Class->create_anon_class( @@ -464,7 +468,7 @@ Mouse::Meta::Attribute - The Mouse attribute metaclass =head1 VERSION -This document describes Mouse version 0.37_06 +This document describes Mouse version 0.39 =head1 METHODS