revert parameterized type coercion fix
Hans Dieter Pearcey [Sun, 23 Aug 2009 18:57:19 +0000 (11:57 -0700)]
Changes
lib/MooseX/Types.pm
t/21_coerce_parameterized_types.t

diff --git a/Changes b/Changes
index 38696df..aa6b6cf 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,11 @@
 Revision history for MooseX-Types
 
+0.19
+        - un-fix coercions on parameterized types, since it broke
+          MooseX::Method::Signatures, as well as any other code that relied on
+          new type constraint objects being generated each time a type was
+          parameterized (hdp).
+
 0.18    Sat Aug 22 12:50:42 EDT 2009
         - fix coercions on parameterized types (Hans Dieter Pearcey).
 
index 1b12bc2..5f5c3be 100644 (file)
@@ -431,11 +431,13 @@ sub create_arged_type_constraint {
     # It's obnoxious to have to parameterize before looking for the TC, but the
     # alternative is to hard-code the assumption that the name is
     # "$name[$args[0]]", which would be worse.
-    if (my $existing =
-        Moose::Util::TypeConstraints::find_type_constraint($parameterized->name)) {
-        return $existing;
-    }
-    Moose::Util::TypeConstraints::register_type_constraint($parameterized);
+    # This breaks MXMS, unfortunately, which relies on things like Tuple[...]
+    # creating new type objects each time.
+    # if (my $existing =
+    #     Moose::Util::TypeConstraints::find_type_constraint($parameterized->name)) {
+    #     return $existing;
+    # }
+    # Moose::Util::TypeConstraints::register_type_constraint($parameterized);
     return $parameterized;
 }
 
index 31e4c8c..81c9e86 100644 (file)
@@ -45,8 +45,10 @@ BEGIN {
 
 my $instance = AClass->new;
 
+{ local $TODO = "see comments in MooseX::Types->create_arged_...";
 lives_ok { $instance->parameterized('foo') }
     'coercion applied to parameterized type';
+}
 
 lives_ok { $instance->subtype_parameterized('foo') }
     'coercion applied to subtype';