r29000 - in /branches/upstream/libclass-mop-perl/current: ./ lib/ lib/Class/ lib/Class/MOP/ lib/Class/MOP/Method/ t/
gregoa at users.alioth.debian.org
gregoa at users.alioth.debian.org
Thu Jan 1 15:58:22 UTC 2009
Author: gregoa
Date: Thu Jan 1 15:58:19 2009
New Revision: 29000
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=29000
Log:
[svn-upgrade] Integrating new upstream version, libclass-mop-perl (0.75)
Modified:
branches/upstream/libclass-mop-perl/current/Changes
branches/upstream/libclass-mop-perl/current/META.yml
branches/upstream/libclass-mop-perl/current/MOP.xs
branches/upstream/libclass-mop-perl/current/README
branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Attribute.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Immutable.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Instance.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Accessor.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Generated.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Wrapped.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Module.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Object.pm
branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Package.pm
branches/upstream/libclass-mop-perl/current/lib/metaclass.pm
branches/upstream/libclass-mop-perl/current/t/000_load.t
branches/upstream/libclass-mop-perl/current/t/071_immutable_w_custom_metaclass.t
branches/upstream/libclass-mop-perl/current/t/073_make_mutable.t
Modified: branches/upstream/libclass-mop-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/Changes?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/Changes (original)
+++ branches/upstream/libclass-mop-perl/current/Changes Thu Jan 1 15:58:19 2009
@@ -1,4 +1,11 @@
Revision history for Perl extension Class-MOP.
+
+0.75 Tue, December 31, 2008
+ * Class::MOP::Class
+ - A class that was made immutable and then mutable could end up
+ sharing an immutable transformer object
+ (Class::MOP::Immutable) with other classes, leading to all
+ sorts of odd bugs. Reported by t0m. (Dave Rolsky)
0.74 Tue, December 25, 2008
* MOP.xs
@@ -8,7 +15,7 @@
error-prone. (Florian Ragwitz)
* Class::MOP::Class
- Fix documentation to show that around modifiers happen on both
- sides of the primary method. (Dave Rolsky)
+ sides of the modified method. (Dave Rolsky)
0.73 Tue, December 16, 2008
* MOP.xs
Modified: branches/upstream/libclass-mop-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/META.yml?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/META.yml (original)
+++ branches/upstream/libclass-mop-perl/current/META.yml Thu Jan 1 15:58:19 2009
@@ -1,6 +1,6 @@
--- #YAML:1.0
name: Class-MOP
-version: 0.74
+version: 0.75
abstract: A Meta Object Protocol for Perl 5
author:
- Stevan Little <stevan at iinteractive.com>
Modified: branches/upstream/libclass-mop-perl/current/MOP.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/MOP.xs?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/MOP.xs (original)
+++ branches/upstream/libclass-mop-perl/current/MOP.xs Thu Jan 1 15:58:19 2009
@@ -327,12 +327,13 @@
associated_metaclass = newSVpvs("associated_metaclass");
-PROTOTYPES: ENABLE
-
-
+PROTOTYPES: DISABLE
+
+# use prototype here to be compatible with get_code_info from Sub::Identify
void
get_code_info(coderef)
SV *coderef
+ PROTOTYPE: $
PREINIT:
char *pkg = NULL;
char *name = NULL;
@@ -343,8 +344,6 @@
PUSHs(newSVpv(name, 0));
}
-PROTOTYPES: DISABLE
-
void
is_class_loaded(klass=&PL_sv_undef)
SV *klass
@@ -396,13 +395,10 @@
MODULE = Class::MOP PACKAGE = Class::MOP::Package
-PROTOTYPES: ENABLE
-
void
get_all_package_symbols(self, filter=TYPE_FILTER_NONE)
SV *self
type_filter_t filter
- PROTOTYPE: $;$
PREINIT:
HV *stash = NULL;
HV *symbols = NULL;
Modified: branches/upstream/libclass-mop-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/README?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/README (original)
+++ branches/upstream/libclass-mop-perl/current/README Thu Jan 1 15:58:19 2009
@@ -1,4 +1,4 @@
-Class::MOP version 0.74
+Class::MOP version 0.75
===========================
See the individual module documentation for more information
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm Thu Jan 1 15:58:19 2009
@@ -31,7 +31,7 @@
*check_package_cache_flag = \&mro::get_pkg_gen;
}
-our $VERSION = '0.74';
+our $VERSION = '0.75';
our $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Attribute.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Attribute.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Attribute.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Attribute.pm Thu Jan 1 15:58:19 2009
@@ -9,7 +9,7 @@
use Carp 'confess';
use Scalar::Util 'blessed', 'weaken';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm Thu Jan 1 15:58:19 2009
@@ -11,7 +11,7 @@
use Carp 'confess';
use Scalar::Util 'blessed', 'weaken';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
@@ -1055,8 +1055,7 @@
sub get_immutable_transformer {
my $self = shift;
if( $self->is_mutable ){
- my $class = ref $self || $self;
- return $IMMUTABLE_TRANSFORMERS{$class} ||= $self->create_immutable_transformer;
+ return $IMMUTABLE_TRANSFORMERS{$self->name} ||= $self->create_immutable_transformer;
}
confess "unable to find transformer for immutable class"
unless exists $IMMUTABLE_OPTIONS{$self->name};
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Immutable.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Immutable.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Immutable.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Immutable.pm Thu Jan 1 15:58:19 2009
@@ -9,7 +9,7 @@
use Carp 'confess';
use Scalar::Util 'blessed';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Instance.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Instance.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Instance.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Instance.pm Thu Jan 1 15:58:19 2009
@@ -6,7 +6,7 @@
use Scalar::Util 'weaken', 'blessed';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method.pm Thu Jan 1 15:58:19 2009
@@ -7,7 +7,7 @@
use Carp 'confess';
use Scalar::Util 'weaken';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Accessor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Accessor.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Accessor.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Accessor.pm Thu Jan 1 15:58:19 2009
@@ -7,7 +7,7 @@
use Carp 'confess';
use Scalar::Util 'blessed', 'weaken';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm Thu Jan 1 15:58:19 2009
@@ -7,7 +7,7 @@
use Carp 'confess';
use Scalar::Util 'blessed', 'weaken', 'looks_like_number';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Generated.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Generated.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Generated.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Generated.pm Thu Jan 1 15:58:19 2009
@@ -6,7 +6,7 @@
use Carp 'confess';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Wrapped.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Wrapped.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Wrapped.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Wrapped.pm Thu Jan 1 15:58:19 2009
@@ -7,7 +7,7 @@
use Carp 'confess';
use Scalar::Util 'blessed';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Module.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Module.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Module.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Module.pm Thu Jan 1 15:58:19 2009
@@ -7,7 +7,7 @@
use Carp 'confess';
use Scalar::Util 'blessed';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Object.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Object.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Object.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Object.pm Thu Jan 1 15:58:19 2009
@@ -6,7 +6,7 @@
use Scalar::Util 'blessed';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Package.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Package.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Package.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Package.pm Thu Jan 1 15:58:19 2009
@@ -8,7 +8,7 @@
use Scalar::Util 'blessed';
use Carp 'confess';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/lib/metaclass.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/lib/metaclass.pm?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/metaclass.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/metaclass.pm Thu Jan 1 15:58:19 2009
@@ -7,7 +7,7 @@
use Carp 'confess';
use Scalar::Util 'blessed';
-our $VERSION = '0.74';
+our $VERSION = '0.75';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
Modified: branches/upstream/libclass-mop-perl/current/t/000_load.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/t/000_load.t?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/t/000_load.t (original)
+++ branches/upstream/libclass-mop-perl/current/t/000_load.t Thu Jan 1 15:58:19 2009
@@ -7,23 +7,24 @@
BEGIN {
use_ok('Class::MOP');
- use_ok('Class::MOP::Package');
- use_ok('Class::MOP::Module');
+ use_ok('Class::MOP::Package');
+ use_ok('Class::MOP::Module');
use_ok('Class::MOP::Class');
- use_ok('Class::MOP::Immutable');
+ use_ok('Class::MOP::Immutable');
use_ok('Class::MOP::Attribute');
- use_ok('Class::MOP::Method');
- use_ok('Class::MOP::Method::Wrapped');
- use_ok('Class::MOP::Method::Generated');
- use_ok('Class::MOP::Method::Accessor');
- use_ok('Class::MOP::Method::Constructor');
- use_ok('Class::MOP::Instance');
- use_ok('Class::MOP::Object');
+ use_ok('Class::MOP::Method');
+ use_ok('Class::MOP::Method::Wrapped');
+ use_ok('Class::MOP::Method::Generated');
+ use_ok('Class::MOP::Method::Accessor');
+ use_ok('Class::MOP::Method::Constructor');
+ use_ok('Class::MOP::Instance');
+ use_ok('Class::MOP::Object');
}
# make sure we are tracking metaclasses correctly
-my $CLASS_MOP_CLASS_IMMUTABLE_CLASS = 'Class::MOP::Class::__ANON__::SERIAL::1';
+my @CLASS_MOP_CLASS_IMMUTABLE_CLASSES
+ = map { 'Class::MOP::Class::__ANON__::SERIAL::' . $_ } 1..11;
my %METAS = (
'Class::MOP::Attribute' => Class::MOP::Attribute->meta,
@@ -40,81 +41,112 @@
'Class::MOP::Object' => Class::MOP::Object->meta,
);
-ok(Class::MOP::is_class_loaded($_), '... ' . $_ . ' is loaded') for keys %METAS;
+ok( Class::MOP::is_class_loaded($_), '... ' . $_ . ' is loaded' )
+ for keys %METAS;
-ok($_->is_immutable(), '... ' . $_->name . ' is immutable') for values %METAS;
+ok( $_->is_immutable(), '... ' . $_->name . ' is immutable' )
+ for values %METAS;
is_deeply(
- { Class::MOP::get_all_metaclasses },
+ {Class::MOP::get_all_metaclasses},
{
%METAS,
- $CLASS_MOP_CLASS_IMMUTABLE_CLASS => $CLASS_MOP_CLASS_IMMUTABLE_CLASS->meta
+ map { $_ => $_->meta } @CLASS_MOP_CLASS_IMMUTABLE_CLASSES
},
- '... got all the metaclasses');
+ '... got all the metaclasses'
+);
is_deeply(
- [ sort { $a->name cmp $b->name } Class::MOP::get_all_metaclass_instances ],
- [
- Class::MOP::Attribute->meta,
- Class::MOP::Class->meta,
- $CLASS_MOP_CLASS_IMMUTABLE_CLASS->meta,
- Class::MOP::Instance->meta,
+ [
+ sort { $a->name cmp $b->name } Class::MOP::get_all_metaclass_instances
+ ],
+ [
+ Class::MOP::Attribute->meta,
+ Class::MOP::Class->meta,
+ ( map { $_->meta } sort @CLASS_MOP_CLASS_IMMUTABLE_CLASSES ),
+ Class::MOP::Instance->meta,
Class::MOP::Method->meta,
Class::MOP::Method::Accessor->meta,
- Class::MOP::Method::Constructor->meta,
- Class::MOP::Method::Generated->meta,
+ Class::MOP::Method::Constructor->meta,
+ Class::MOP::Method::Generated->meta,
Class::MOP::Method::Wrapped->meta,
- Class::MOP::Module->meta,
- Class::MOP::Object->meta,
- Class::MOP::Package->meta,
+ Class::MOP::Module->meta,
+ Class::MOP::Object->meta,
+ Class::MOP::Package->meta,
],
- '... got all the metaclass instances');
+ '... got all the metaclass instances'
+);
is_deeply(
[ sort { $a cmp $b } Class::MOP::get_all_metaclass_names() ],
- [ sort qw/
- Class::MOP::Attribute
- Class::MOP::Class
- Class::MOP::Instance
- Class::MOP::Method
- Class::MOP::Method::Accessor
- Class::MOP::Method::Constructor
- Class::MOP::Method::Generated
- Class::MOP::Method::Wrapped
- Class::MOP::Module
- Class::MOP::Object
- Class::MOP::Package
- /, $CLASS_MOP_CLASS_IMMUTABLE_CLASS ],
- '... got all the metaclass names');
-
+ [
+ sort qw/
+ Class::MOP::Attribute
+ Class::MOP::Class
+ Class::MOP::Instance
+ Class::MOP::Method
+ Class::MOP::Method::Accessor
+ Class::MOP::Method::Constructor
+ Class::MOP::Method::Generated
+ Class::MOP::Method::Wrapped
+ Class::MOP::Module
+ Class::MOP::Object
+ Class::MOP::Package
+ /, @CLASS_MOP_CLASS_IMMUTABLE_CLASSES
+ ],
+ '... got all the metaclass names'
+);
+
is_deeply(
- [ map { $_->meta->identifier } sort { $a cmp $b } Class::MOP::get_all_metaclass_names() ],
- [
- "Class::MOP::Attribute-" . $Class::MOP::Attribute::VERSION . "-cpan:STEVAN",
- "Class::MOP::Class-" . $Class::MOP::Class::VERSION . "-cpan:STEVAN",
- $CLASS_MOP_CLASS_IMMUTABLE_CLASS,
- "Class::MOP::Instance-" . $Class::MOP::Instance::VERSION . "-cpan:STEVAN",
- "Class::MOP::Method-" . $Class::MOP::Method::VERSION . "-cpan:STEVAN",
- "Class::MOP::Method::Accessor-" . $Class::MOP::Method::Accessor::VERSION . "-cpan:STEVAN",
- "Class::MOP::Method::Constructor-" . $Class::MOP::Method::Constructor::VERSION . "-cpan:STEVAN",
- "Class::MOP::Method::Generated-" . $Class::MOP::Method::Generated::VERSION . "-cpan:STEVAN",
- "Class::MOP::Method::Wrapped-" . $Class::MOP::Method::Wrapped::VERSION . "-cpan:STEVAN",
- "Class::MOP::Module-" . $Class::MOP::Module::VERSION . "-cpan:STEVAN",
- "Class::MOP::Object-" . $Class::MOP::Object::VERSION . "-cpan:STEVAN",
- "Class::MOP::Package-" . $Class::MOP::Package::VERSION . "-cpan:STEVAN",
+ [
+ map { $_->meta->identifier }
+ sort { $a cmp $b } Class::MOP::get_all_metaclass_names()
],
- '... got all the metaclass identifiers');
-
+ [
+ "Class::MOP::Attribute-"
+ . $Class::MOP::Attribute::VERSION
+ . "-cpan:STEVAN",
+ "Class::MOP::Class-" . $Class::MOP::Class::VERSION . "-cpan:STEVAN",
+ ( sort @CLASS_MOP_CLASS_IMMUTABLE_CLASSES ),
+ "Class::MOP::Instance-"
+ . $Class::MOP::Instance::VERSION
+ . "-cpan:STEVAN",
+ "Class::MOP::Method-" . $Class::MOP::Method::VERSION . "-cpan:STEVAN",
+ "Class::MOP::Method::Accessor-"
+ . $Class::MOP::Method::Accessor::VERSION
+ . "-cpan:STEVAN",
+ "Class::MOP::Method::Constructor-"
+ . $Class::MOP::Method::Constructor::VERSION
+ . "-cpan:STEVAN",
+ "Class::MOP::Method::Generated-"
+ . $Class::MOP::Method::Generated::VERSION
+ . "-cpan:STEVAN",
+ "Class::MOP::Method::Wrapped-"
+ . $Class::MOP::Method::Wrapped::VERSION
+ . "-cpan:STEVAN",
+ "Class::MOP::Module-" . $Class::MOP::Module::VERSION . "-cpan:STEVAN",
+ "Class::MOP::Object-" . $Class::MOP::Object::VERSION . "-cpan:STEVAN",
+ "Class::MOP::Package-"
+ . $Class::MOP::Package::VERSION
+ . "-cpan:STEVAN",
+ ],
+ '... got all the metaclass identifiers'
+);
+
# testing the meta-circularity of the system
-is(Class::MOP::Class->meta, Class::MOP::Class->meta->meta,
- '... Class::MOP::Class->meta == Class::MOP::Class->meta->meta');
-
-is(Class::MOP::Class->meta, Class::MOP::Class->meta->meta->meta,
- '... Class::MOP::Class->meta == Class::MOP::Class->meta->meta->meta');
+is(
+ Class::MOP::Class->meta, Class::MOP::Class->meta->meta,
+ '... Class::MOP::Class->meta == Class::MOP::Class->meta->meta'
+);
-is(Class::MOP::Class->meta, Class::MOP::Class->meta->meta->meta->meta,
- '... Class::MOP::Class->meta == Class::MOP::Class->meta->meta->meta->meta');
+is(
+ Class::MOP::Class->meta, Class::MOP::Class->meta->meta->meta,
+ '... Class::MOP::Class->meta == Class::MOP::Class->meta->meta->meta'
+);
+is(
+ Class::MOP::Class->meta, Class::MOP::Class->meta->meta->meta->meta,
+ '... Class::MOP::Class->meta == Class::MOP::Class->meta->meta->meta->meta'
+);
-
Modified: branches/upstream/libclass-mop-perl/current/t/071_immutable_w_custom_metaclass.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/t/071_immutable_w_custom_metaclass.t?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/t/071_immutable_w_custom_metaclass.t (original)
+++ branches/upstream/libclass-mop-perl/current/t/071_immutable_w_custom_metaclass.t Thu Jan 1 15:58:19 2009
@@ -49,7 +49,8 @@
{
my $meta = Baz->meta;
ok($meta->is_mutable, '... Baz is mutable');
- is(Scalar::Util::blessed(Foo->meta), Scalar::Util::blessed(Bar->meta), 'Foo and Bar immutable metaclasses match');
+ isnt(Scalar::Util::blessed(Foo->meta), Scalar::Util::blessed(Bar->meta),
+ 'Foo and Bar immutable metaclasses do not match');
is(Scalar::Util::blessed($meta), 'MyMetaClass', 'Baz->meta blessed as MyMetaClass');
ok(Baz->can('mymetaclass_attributes'), '... Baz can do method before immutable');
ok($meta->can('mymetaclass_attributes'), '... meta can do method before immutable');
Modified: branches/upstream/libclass-mop-perl/current/t/073_make_mutable.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-mop-perl/current/t/073_make_mutable.t?rev=29000&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/t/073_make_mutable.t (original)
+++ branches/upstream/libclass-mop-perl/current/t/073_make_mutable.t Thu Jan 1 15:58:19 2009
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 113;
+use Test::More tests => 114;
use Test::Exception;
use Scalar::Util;
@@ -228,3 +228,12 @@
for qw(get_meta_instance compute_all_applicable_attributes
class_precedence_list get_method_map );
}
+
+{
+ Foo->meta->make_immutable;
+ Bar->meta->make_immutable;
+ Bar->meta->make_mutable;
+
+ isnt( Foo->meta->get_immutable_transformer, Bar->meta->get_immutable_transformer,
+ 'Foo and Bar should have different immutable transformer objects' );
+}
More information about the Pkg-perl-cvs-commits
mailing list