use overload::StrVal in type-constraint errors
Shawn M Moore [Tue, 10 Jun 2008 04:14:57 +0000 (04:14 +0000)]
lib/Mouse/Attribute.pm
t/024-isa.t

index 7d3c380..a2569d4 100644 (file)
@@ -60,7 +60,7 @@ sub generate_accessor {
 
         if ($constraint) {
             $accessor .= 'do {
-                my $display = defined($_) ? $_ : "undef";
+                my $display = defined($_) ? overload::StrVal($_) : "undef";
                 Carp::confess("Attribute ($name) does not pass the type constraint because: Validation failed for \'$type\' failed with value $display") unless $constraint->();
             };'
         }
index ae8a594..670a611 100644 (file)
@@ -84,7 +84,7 @@ for my $type (@types) {
     }
 
     for my $value (@{ $values_for_type{$type}{invalid} }) {
-        my $display = defined($value) ? $value : 'undef';
+        my $display = defined($value) ? overload::StrVal($value) : 'undef';
         my $via_new;
         throws_ok {
             $via_new = Class->new($type => $value);