r71422 - in /branches/upstream/libmouse-perl/current: ./ lib/ lib/Mouse/ lib/Mouse/Meta/ lib/Mouse/Meta/Method/ lib/Mouse/Meta/Role/ lib/Mouse/Util/ t/001_mouse/ xs-src/
jawnsy-guest at users.alioth.debian.org
jawnsy-guest at users.alioth.debian.org
Mon Mar 14 23:45:15 UTC 2011
Author: jawnsy-guest
Date: Mon Mar 14 23:45:07 2011
New Revision: 71422
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=71422
Log:
[svn-upgrade] new version libmouse-perl (0.91)
Added:
branches/upstream/libmouse-perl/current/t/001_mouse/072_tc_extra_args.t
Modified:
branches/upstream/libmouse-perl/current/Changes
branches/upstream/libmouse-perl/current/MANIFEST
branches/upstream/libmouse-perl/current/META.yml
branches/upstream/libmouse-perl/current/lib/Mouse.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Application.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm
branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod
branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm
branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm
branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod
branches/upstream/libmouse-perl/current/xs-src/MouseTypeConstraints.xs
Modified: branches/upstream/libmouse-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/Changes?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/Changes (original)
+++ branches/upstream/libmouse-perl/current/Changes Mon Mar 14 23:45:07 2011
@@ -1,4 +1,9 @@
Revision history for Mouse
+
+0.91 2011-03-14 13:12:35
+ [CHANGES]
+ * $type_constraint->check() accepts extra arguments for extensibility
+ (requested by @lestrrat)
0.90 2011-02-21 10:48:58
[BUG FIXES]
Modified: branches/upstream/libmouse-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/MANIFEST?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/MANIFEST (original)
+++ branches/upstream/libmouse-perl/current/MANIFEST Mon Mar 14 23:45:07 2011
@@ -142,6 +142,7 @@
t/001_mouse/069-add-modifier.t
t/001_mouse/070-inherit-role-attr.t
t/001_mouse/071_tc_dualvar.t
+t/001_mouse/072_tc_extra_args.t
t/001_mouse/100-meta-class.t
t/001_mouse/101-meta-attribute.t
t/001_mouse/301-bugs-non-mouse.t
Modified: branches/upstream/libmouse-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/META.yml?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/META.yml (original)
+++ branches/upstream/libmouse-perl/current/META.yml Mon Mar 14 23:45:07 2011
@@ -31,4 +31,4 @@
resources:
license: http://dev.perl.org/licenses/
repository: git://git.moose.perl.org/Mouse.git
-version: 0.90
+version: 0.91
Modified: branches/upstream/libmouse-perl/current/lib/Mouse.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse.pm Mon Mar 14 23:45:07 2011
@@ -3,7 +3,7 @@
use Mouse::Exporter; # enables strict and warnings
-our $VERSION = '0.90';
+our $VERSION = '0.91';
use Carp ();
use Scalar::Util ();
@@ -155,7 +155,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SYNOPSIS
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm Mon Mar 14 23:45:07 2011
@@ -267,7 +267,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SYNOPSIS
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm Mon Mar 14 23:45:07 2011
@@ -255,8 +255,15 @@
if(exists $attribute->{$type}){
my $generator = '_generate_' . $type;
my $code = $accessor_class->$generator($attribute, $metaclass);
- $metaclass->add_method($attribute->{$type} => $code);
- $attribute->associate_method($attribute->{$type});
+ my $name = $attribute->{$type};
+# TODO: do something for compatibility
+# if( $metaclass->name->can($name) ) {
+# my $t = $metaclass->has_method($name) ? 'method' : 'function';
+# Carp::cluck("You are overwriting a locally defined $t"
+# . " ($name) with an accessor");
+# }
+ $metaclass->add_method($name => $code);
+ $attribute->associate_method($name);
}
}
@@ -342,7 +349,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 DESCRIPTION
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm Mon Mar 14 23:45:07 2011
@@ -470,7 +470,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 DESCRIPTION
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm Mon Mar 14 23:45:07 2011
@@ -54,7 +54,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 DESCRIPTION
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm Mon Mar 14 23:45:07 2011
@@ -187,7 +187,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SEE ALSO
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm Mon Mar 14 23:45:07 2011
@@ -232,7 +232,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SEE ALSO
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm Mon Mar 14 23:45:07 2011
@@ -61,7 +61,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SEE ALSO
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm Mon Mar 14 23:45:07 2011
@@ -65,7 +65,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SEE ALSO
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm Mon Mar 14 23:45:07 2011
@@ -311,7 +311,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 DESCRIPTION
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm Mon Mar 14 23:45:07 2011
@@ -131,7 +131,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 DESCRIPTION
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Application.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Application.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Application.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Application.pm Mon Mar 14 23:45:07 2011
@@ -209,7 +209,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SEE ALSO
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm Mon Mar 14 23:45:07 2011
@@ -156,7 +156,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SEE ALSO
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm Mon Mar 14 23:45:07 2011
@@ -23,7 +23,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SEE ALSO
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm Mon Mar 14 23:45:07 2011
@@ -276,7 +276,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 DESCRIPTION
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm Mon Mar 14 23:45:07 2011
@@ -16,7 +16,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 METHODS
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm Mon Mar 14 23:45:07 2011
@@ -749,7 +749,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SEE ALSO
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm Mon Mar 14 23:45:07 2011
@@ -1,7 +1,7 @@
package Mouse::Role;
use Mouse::Exporter; # enables strict and warnings
-our $VERSION = '0.90';
+our $VERSION = '0.91';
use Carp ();
use Scalar::Util ();
@@ -137,7 +137,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SYNOPSIS
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm Mon Mar 14 23:45:07 2011
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.90';
+our $VERSION = '0.91';
our $MouseVersion = $VERSION;
our $MooseVersion = '1.13';
@@ -19,7 +19,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SYNOPSIS
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod Mon Mar 14 23:45:07 2011
@@ -5,7 +5,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 DESCRIPTION
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm Mon Mar 14 23:45:07 2011
@@ -50,7 +50,7 @@
},
);
- our $VERSION = '0.90';
+ our $VERSION = '0.91';
my $xs = !(defined(&is_valid_class_name) || $ENV{MOUSE_PUREPERL} || $ENV{PERL_ONLY});
@@ -388,7 +388,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 SYNOPSIS
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm Mon Mar 14 23:45:07 2011
@@ -432,7 +432,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head2 SYNOPSIS
Modified: branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod Mon Mar 14 23:45:07 2011
@@ -5,7 +5,7 @@
=head1 VERSION
-This document describes Mouse version 0.90
+This document describes Mouse version 0.91
=head1 DESCRIPTION
Added: branches/upstream/libmouse-perl/current/t/001_mouse/072_tc_extra_args.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/t/001_mouse/072_tc_extra_args.t?rev=71422&op=file
==============================================================================
--- branches/upstream/libmouse-perl/current/t/001_mouse/072_tc_extra_args.t (added)
+++ branches/upstream/libmouse-perl/current/t/001_mouse/072_tc_extra_args.t Mon Mar 14 23:45:07 2011
@@ -1,0 +1,20 @@
+#!perl
+use strict;
+use Test::More tests => 2;
+use if 'Mouse' ne 'Mo' . 'use', 'Test::More', skip_all => 'Mouse only';
+use Mouse::Meta::TypeConstraint;
+
+my @args;
+my $tc = Mouse::Meta::TypeConstraint->new(
+ constraint => sub {
+ is_deeply \@args, \@_;
+ },
+);
+
+ at args = qw(foo bar baz);
+$tc->check( @args );
+
+ at args = (100, 200);
+$tc->check( @args );
+
+done_testing;
Modified: branches/upstream/libmouse-perl/current/xs-src/MouseTypeConstraints.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/xs-src/MouseTypeConstraints.xs?rev=71422&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/xs-src/MouseTypeConstraints.xs (original)
+++ branches/upstream/libmouse-perl/current/xs-src/MouseTypeConstraints.xs Mon Mar 14 23:45:07 2011
@@ -10,6 +10,14 @@
#define SvRXOK(sv) (SvROK(sv) && SvMAGICAL(SvRV(sv)) && mg_find(SvRV(sv), PERL_MAGIC_qr))
#endif
+#define MY_CXT_KEY "Mouse::Util::TypeConstraints::_guts" XS_VERSION
+typedef struct sui_cxt{
+ GV* universal_isa;
+ GV* universal_can;
+ AV* tc_extra_args;
+} my_cxt_t;
+START_MY_CXT
+
typedef int (*check_fptr_t)(pTHX_ SV* const data, SV* const sv);
static
@@ -36,12 +44,21 @@
else { /* custom */
int ok;
dSP;
+ dMY_CXT;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv);
+ if( MY_CXT.tc_extra_args ) {
+ AV* const av = MY_CXT.tc_extra_args;
+ I32 const len = AvFILLp(av) + 1;
+ int i;
+ for(i = 0; i < len; i++) {
+ XPUSHs( AvARRAY(av)[i] );
+ }
+ }
PUTBACK;
call_sv(tc_code, G_SCALAR);
@@ -345,12 +362,6 @@
* This class_type generator is taken from Scalar::Util::Instance
*/
-#define MY_CXT_KEY "Mouse::Util::TypeConstraints::_guts" XS_VERSION
-typedef struct sui_cxt{
- GV* universal_isa;
- GV* universal_can;
-} my_cxt_t;
-START_MY_CXT
#define MG_klass_stash(mg) ((HV*)(mg)->mg_obj)
#define MG_klass_pv(mg) ((mg)->mg_ptr)
@@ -579,6 +590,8 @@
MY_CXT.universal_can = gv_fetchpvs("UNIVERSAL::can", GV_ADD, SVt_PVCV);
SvREFCNT_inc_simple_void_NN(MY_CXT.universal_can);
+
+ MY_CXT.tc_extra_args = NULL;
}
#define DEFINE_TC(name) mouse_tc_generate(aTHX_ "Mouse::Util::TypeConstraints::" STRINGIFY(name), CAT2(mouse_tc_, name), NULL)
@@ -804,7 +817,7 @@
}
bool
-check(SV* self, SV* sv)
+check(SV* self, SV* sv, ...)
CODE:
{
SV* const check = get_slots(self, "compiled_type_constraint");
@@ -812,6 +825,17 @@
mouse_throw_error(self, check,
"'%"SVf"' has no compiled type constraint", self);
}
+ if( items > 2 ) {
+ int i;
+ AV* av;
+ dMY_CXT;
+ SAVESPTR(MY_CXT.tc_extra_args);
+ av = MY_CXT.tc_extra_args = newAV_mortal();
+ av_extend(av, items - 3);
+ for(i = 2; i < items; i++) {
+ av_push(av, SvREFCNT_inc_NN( ST(i) ) );
+ }
+ }
RETVAL = mouse_tc_check(aTHX_ check, sv) ? TRUE : FALSE;
}
OUTPUT:
More information about the Pkg-perl-cvs-commits
mailing list