From: Jesse Luehrs Date: Sat, 17 Sep 2011 19:10:44 +0000 (-0500) Subject: add some more explanation to the ::Delta entries X-Git-Tag: 2.0300~39 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=5d3a1dd186a024a056f8d1a8e64d05353d473ba6;p=gitmo%2FMoose.git add some more explanation to the ::Delta entries --- diff --git a/lib/Moose/Manual/Delta.pod b/lib/Moose/Manual/Delta.pod index 3078c04..b5003d2 100644 --- a/lib/Moose/Manual/Delta.pod +++ b/lib/Moose/Manual/Delta.pod @@ -26,15 +26,19 @@ send us a patch. =item The parent of a union type is its components' nearest common ancestor Previously, union types considered all of their component types their parent -types. This has been changed to find the nearest common ancestor for all of -its components. For example, a union of "Int|ArrayRef[Int]" now has a parent -of "Defined". +types. This was incorrect because parent types are defined as types that must +be satisfied in order for the child type to be satisfied, but in a union, +validating as any parent type will validate against the entire union. This has +been changed to find the nearest common ancestor for all of its components. For +example, a union of "Int|ArrayRef[Int]" now has a parent of "Defined". =item Union types consider all members in the C and C methods -Previously, a union type would report itself as being of a subtype of a type -if I of its member types were subtypes of that type. This has changed -so that I of its member types must be a subtype of the specified type. +Previously, a union type would report itself as being of a subtype of a type if +I of its member types were subtypes of that type. This was incorrect +because any value that passes a subtype constraint must also pass a parent +constraint. This has changed so that I of its member types must be a +subtype of the specified type. =item Hand-optimized type constraint code causes a deprecation warning