diff options
Diffstat (limited to 'lib/Moose/Exception/AttributeConflictInRoles.pm')
-rw-r--r-- | lib/Moose/Exception/AttributeConflictInRoles.pm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/Moose/Exception/AttributeConflictInRoles.pm b/lib/Moose/Exception/AttributeConflictInRoles.pm new file mode 100644 index 0000000..00d7b56 --- /dev/null +++ b/lib/Moose/Exception/AttributeConflictInRoles.pm @@ -0,0 +1,31 @@ +package Moose::Exception::AttributeConflictInRoles; +our $VERSION = '2.1405'; + +use Moose; +extends 'Moose::Exception'; +with 'Moose::Exception::Role::Role'; + +has 'second_role_name' => ( + is => 'ro', + isa => 'Str', + required => 1 +); + +has 'attribute_name' => ( + is => 'ro', + isa => 'Str', + required => 1 +); + +sub _build_message { + my $self = shift; + my $role_name = $self->role_name; + my $second_role_name = $self->second_role_name; + my $attribute_name = $self->attribute_name; + "Role '$role_name' has encountered an attribute conflict" + . " while being composed into '$second_role_name'." + . " This is a fatal error and cannot be disambiguated." + . " The conflicting attribute is named '$attribute_name'."; +} + +1; |