r37750 - in /trunk/libclass-mop-perl: ./ debian/ lib/ lib/Class/ lib/Class/MOP/ lib/Class/MOP/Class/Immutable/ lib/Class/MOP/Class/Immutable/Class/MOP/ lib/Class/MOP/Method/ t/

carnil-guest at users.alioth.debian.org carnil-guest at users.alioth.debian.org
Sun Jun 7 05:44:13 UTC 2009


Author: carnil-guest
Date: Sun Jun  7 05:43:04 2009
New Revision: 37750

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=37750
Log:
new upstream release 

Added:
    trunk/libclass-mop-perl/t/032_universal_methods.t
      - copied unchanged from r37748, branches/upstream/libclass-mop-perl/current/t/032_universal_methods.t
    trunk/libclass-mop-perl/t/087_subclasses.t
      - copied unchanged from r37748, branches/upstream/libclass-mop-perl/current/t/087_subclasses.t
    trunk/libclass-mop-perl/t/309_subname.t
      - copied unchanged from r37748, branches/upstream/libclass-mop-perl/current/t/309_subname.t
Modified:
    trunk/libclass-mop-perl/Changes
    trunk/libclass-mop-perl/MANIFEST
    trunk/libclass-mop-perl/META.yml
    trunk/libclass-mop-perl/README
    trunk/libclass-mop-perl/debian/changelog
    trunk/libclass-mop-perl/lib/Class/MOP.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Class.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Class/MOP/Class.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Trait.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method/Inlined.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Module.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Object.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Package.pm
    trunk/libclass-mop-perl/lib/metaclass.pm
    trunk/libclass-mop-perl/t/003_methods.t
    trunk/libclass-mop-perl/t/010_self_introspection.t
    trunk/libclass-mop-perl/t/020_attribute.t

Modified: trunk/libclass-mop-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/Changes?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/Changes (original)
+++ trunk/libclass-mop-perl/Changes Sun Jun  7 05:43:04 2009
@@ -1,4 +1,26 @@
 Revision history for Perl extension Class-MOP.
+
+0.85 Sat, Jun 6, 2009
+    * Class::MOP::Attribute
+      - Allow default values to be Class::MOP::Methods.  (Florian
+        Ragwitz)
+      - Test the above. (Rhesa Rozendaal)
+      - Tweak original commit so the intent matches the accepted
+        behavior (Nicholas Perez)
+
+    * Class::MOP
+      - Localize $SIG{__DIE__} inside _try_load_one_class (Sartak)
+
+    * Class::MOP::Class
+      - Add direct_subclasses method (Sartak)
+        - Tests for subclasses and direct_subclasses (Sartak)
+      - subname is no longer used unconditionally in add_method, but
+        only if the code reference's name is '__ANON__' (nothingmuch)
+      - Add a hook for _superclasses_updated (Sartak)
+
+    * Class::MOP::Method
+      - Remove long, old warning about possibly outdated modules
+        (Sartak)
 
 0.84 Tue, May 12, 2009
     * Makefile.PL

Modified: trunk/libclass-mop-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/MANIFEST?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/MANIFEST (original)
+++ trunk/libclass-mop-perl/MANIFEST Sun Jun  7 05:43:04 2009
@@ -65,6 +65,7 @@
 t/024_attribute_initializer.t
 t/030_method.t
 t/031_method_modifiers.t
+t/032_universal_methods.t
 t/040_metaclass.t
 t/041_metaclass_incompatibility.t
 t/042_metaclass_incompatibility_dyn.t
@@ -88,6 +89,7 @@
 t/084_get_method_map.t
 t/085_load_class_gvstash_detect_bug.t
 t/086_rebless_instance_away.t
+t/087_subclasses.t
 t/100_BinaryTree_test.t
 t/101_InstanceCountingClass_test.t
 t/102_InsideOutClass_test.t
@@ -107,6 +109,7 @@
 t/306_rebless_overload.t
 t/307_null_stash.t
 t/308_insertion_order.t
+t/309_subname.t
 t/lib/BinaryTree.pm
 t/lib/MyMetaClass.pm
 t/lib/MyMetaClass/Attribute.pm

Modified: trunk/libclass-mop-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/META.yml?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/META.yml (original)
+++ trunk/libclass-mop-perl/META.yml Sun Jun  7 05:43:04 2009
@@ -32,4 +32,4 @@
   perl: 5.8.1
 resources:
   license: http://dev.perl.org/licenses/
-version: 0.84
+version: 0.85

Modified: trunk/libclass-mop-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/README?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/README (original)
+++ trunk/libclass-mop-perl/README Sun Jun  7 05:43:04 2009
@@ -1,4 +1,4 @@
-Class::MOP version 0.84
+Class::MOP version 0.85
 ===========================
 
 See the individual module documentation for more information

Modified: trunk/libclass-mop-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/debian/changelog?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/debian/changelog (original)
+++ trunk/libclass-mop-perl/debian/changelog Sun Jun  7 05:43:04 2009
@@ -1,8 +1,13 @@
-libclass-mop-perl (0.84-2) UNRELEASED; urgency=low
-
+libclass-mop-perl (0.85-1) UNRELEASED; urgency=low
+
+  [ Nathan Handler ]
   * debian/watch: Update to ignore development releases.
 
- -- Nathan Handler <nhandler at ubuntu.com>  Sat, 06 Jun 2009 01:33:14 +0000
+  [ Salvatore Bonaccorso ]
+  * New upstream release 
+  * debian/control: Add myself to Uploaders. 
+
+ -- Salvatore Bonaccorso <salvatore.bonaccorso at gmail.com>  Sun, 07 Jun 2009 07:41:44 +0200
 
 libclass-mop-perl (0.84-1) unstable; urgency=low
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP.pm Sun Jun  7 05:43:04 2009
@@ -29,7 +29,7 @@
     *check_package_cache_flag = \&mro::get_pkg_gen;
 }
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 our $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
@@ -131,6 +131,7 @@
 
     return do {
         local $@;
+        local $SIG{__DIE__};
         eval { require($file) };
         $@;
     };

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm Sun Jun  7 05:43:04 2009
@@ -9,7 +9,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -248,7 +248,9 @@
 }
 
 sub is_default_a_coderef {
-    ('CODE' eq ref($_[0]->{'default'}))
+    my ($value) = $_[0]->{'default'};
+    return unless ref($value);
+    return ref($value) eq 'CODE' || (blessed($value) && $value->isa('Class::MOP::Method'));
 }
 
 sub default {

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Class.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Class.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Class.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Class.pm Sun Jun  7 05:43:04 2009
@@ -15,7 +15,7 @@
 use Sub::Name 'subname';
 use Devel::GlobalDestruction 'in_global_destruction';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -517,11 +517,16 @@
         # we don't know about
 
         $self->_check_metaclass_compatibility();
-        $self->update_meta_instance_dependencies();
+        $self->_superclasses_updated();
     }
     @{$self->get_package_symbol($var_spec)};
 }
 
+sub _superclasses_updated {
+    my $self = shift;
+    $self->update_meta_instance_dependencies();
+}
+
 sub subclasses {
     my $self = shift;
     my $super_class = $self->name;
@@ -529,6 +534,16 @@
     return @{ $super_class->mro::get_isarev() };
 }
 
+sub direct_subclasses {
+    my $self = shift;
+    my $super_class = $self->name;
+
+    return grep {
+        grep {
+            $_ eq $super_class
+        } Class::MOP::Class->initialize($_)->superclasses
+    } $self->subclasses;
+}
 
 sub linearized_isa {
     return @{ mro::get_linear_isa( (shift)->name ) };
@@ -609,10 +624,16 @@
     # method. This is hackier, but quicker too.
     $self->{methods}{$method_name} = $method;
     
-    my $full_method_name = ($self->name . '::' . $method_name);    
+    my ( $current_package, $current_name ) = Class::MOP::get_code_info($body);
+
+    if ( $current_name eq '__ANON__' ) {
+        my $full_method_name = ($self->name . '::' . $method_name);
+        subname($full_method_name => $body);
+    }
+
     $self->add_package_symbol(
-        { sigil => '&', type => 'CODE', name => $method_name }, 
-        subname($full_method_name => $body)
+        { sigil => '&', type => 'CODE', name => $method_name },
+        $body,
     );
 }
 
@@ -1454,7 +1475,13 @@
 
 =item B<< $metaclass->subclasses >>
 
-This returns a list of subclasses for this class.
+This returns a list of all subclasses for this class, even indirect
+subclasses.
+
+=item B<< $metaclass->direct_subclasses >>
+
+This returns a list of immediate subclasses for this class, which does not
+include indirect subclasses.
 
 =back
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Class/MOP/Class.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Class/MOP/Class.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Class/MOP/Class.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Class/MOP/Class.pm Sun Jun  7 05:43:04 2009
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Trait.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Trait.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Trait.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Class/Immutable/Trait.pm Sun Jun  7 05:43:04 2009
@@ -8,7 +8,7 @@
 use Carp 'confess';
 use Scalar::Util 'blessed', 'weaken';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm Sun Jun  7 05:43:04 2009
@@ -6,7 +6,7 @@
 
 use Scalar::Util 'weaken', 'blessed';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method.pm Sun Jun  7 05:43:04 2009
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'weaken';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -18,15 +18,6 @@
 # they should act like CODE refs.
 use overload '&{}' => sub { $_[0]->body }, fallback => 1;
 
-our $UPGRADE_ERROR_TEXT = q{
----------------------------------------------------------
-NOTE: this error is likely not an error, but a regression
-caused by the latest upgrade to Moose/Class::MOP. Consider
-upgrading any MooseX::* modules to their latest versions
-before spending too much time chasing this one down.
----------------------------------------------------------
-};
-
 # construction
 
 sub wrap {
@@ -41,7 +32,7 @@
         || confess "You must supply a CODE reference to bless, not (" . ($code || 'undef') . ")";
 
     ($params{package_name} && $params{name})
-        || confess "You must supply the package_name and name parameters $UPGRADE_ERROR_TEXT";
+        || confess "You must supply the package_name and name parameters";
 
     my $self = $class->_new(\%params);
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm Sun Jun  7 05:43:04 2009
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm Sun Jun  7 05:43:04 2009
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken', 'looks_like_number';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm Sun Jun  7 05:43:04 2009
@@ -6,7 +6,7 @@
 
 use Carp 'confess';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method/Inlined.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method/Inlined.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method/Inlined.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method/Inlined.pm Sun Jun  7 05:43:04 2009
@@ -6,7 +6,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken', 'looks_like_number', 'refaddr';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm Sun Jun  7 05:43:04 2009
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Module.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Module.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Module.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Module.pm Sun Jun  7 05:43:04 2009
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Object.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Object.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Object.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Object.pm Sun Jun  7 05:43:04 2009
@@ -6,7 +6,7 @@
 
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Package.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Package.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Package.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Package.pm Sun Jun  7 05:43:04 2009
@@ -8,7 +8,7 @@
 use Scalar::Util 'blessed';
 use Carp         'confess';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/lib/metaclass.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/metaclass.pm?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/metaclass.pm (original)
+++ trunk/libclass-mop-perl/lib/metaclass.pm Sun Jun  7 05:43:04 2009
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.84';
+our $VERSION   = '0.85';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 

Modified: trunk/libclass-mop-perl/t/003_methods.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/t/003_methods.t?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/t/003_methods.t (original)
+++ trunk/libclass-mop-perl/t/003_methods.t Sun Jun  7 05:43:04 2009
@@ -1,7 +1,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 65;
+use Test::More tests => 66;
 use Test::Exception;
 
 use Scalar::Util qw/reftype/;
@@ -199,6 +199,8 @@
 lives_ok {
     $Bar->add_method('foo' => sub { 'Bar::foo v2' });
 } '... overwriting a method is fine';
+
+is_deeply( [ Class::MOP::get_code_info($Bar->get_method('foo')->body) ], [ "Bar", "foo" ], "subname applied to anonymous method" );
 
 ok($Bar->has_method('foo'), '... Bar-> (still) has_method(foo)');
 is(Bar->foo, 'Bar::foo v2', '... Bar->foo == "Bar::foo v2"');

Modified: trunk/libclass-mop-perl/t/010_self_introspection.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/t/010_self_introspection.t?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/t/010_self_introspection.t (original)
+++ trunk/libclass-mop-perl/t/010_self_introspection.t Sun Jun  7 05:43:04 2009
@@ -1,7 +1,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 294;
+use Test::More tests => 298;
 use Test::Exception;
 
 use Class::MOP;
@@ -72,7 +72,8 @@
 
     attribute_metaclass method_metaclass wrapped_method_metaclass
 
-    superclasses subclasses class_precedence_list linearized_isa
+    superclasses subclasses direct_subclasses class_precedence_list
+    linearized_isa _superclasses_updated
 
     has_method get_method add_method remove_method alias_method wrap_method_body
     get_method_list get_method_map get_all_method_names get_all_methods compute_all_applicable_methods

Modified: trunk/libclass-mop-perl/t/020_attribute.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/t/020_attribute.t?rev=37750&op=diff
==============================================================================
--- trunk/libclass-mop-perl/t/020_attribute.t (original)
+++ trunk/libclass-mop-perl/t/020_attribute.t Sun Jun  7 05:43:04 2009
@@ -3,11 +3,12 @@
 
 use Scalar::Util 'reftype', 'blessed';
 
-use Test::More tests => 100;
+use Test::More tests => 104;
 use Test::Exception;
 
 use Class::MOP;
 use Class::MOP::Attribute;
+use Class::MOP::Method;
 
 
 dies_ok { Class::MOP::Attribute->name } q{... can't call name() as a class method};
@@ -225,3 +226,21 @@
     is($attr->builder, 'foo_builder', '... $attr->builder == foo_builder');
 
 }
+
+{
+    for my $value ({}, bless({}, 'Foo')) {
+        throws_ok {
+            Class::MOP::Attribute->new('$foo', default => $value);
+        } qr/References are not allowed as default values/;
+    }
+}
+
+{
+    my $attr;
+    lives_ok {
+        my $meth = Class::MOP::Method->wrap(sub {shift}, name => 'foo', package_name => 'bar');
+        $attr = Class::MOP::Attribute->new('$foo', default => $meth);
+    } 'Class::MOP::Methods accepted as default';
+
+    is($attr->default(42), 42, 'passthrough for default on attribute');
+}




More information about the Pkg-perl-cvs-commits mailing list