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=415ad53bed1784699852b25934b6629309fda03d;hb=1372fcc0864d73696fe1b926d489b455be26229e;hpb=ce5920b75da54ce1977fc44cd89b400175b6d034 diff --git a/lib/Mouse/Meta/Attribute.pm b/lib/Mouse/Meta/Attribute.pm index 415ad53..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( @@ -462,6 +466,10 @@ __END__ Mouse::Meta::Attribute - The Mouse attribute metaclass +=head1 VERSION + +This document describes Mouse version 0.39 + =head1 METHODS =head2 C<< new(%options) -> Mouse::Meta::Attribute >>