make load_class return true for the benefit of dumb code in the wild
Dave Rolsky [Sat, 12 Sep 2009 23:20:03 +0000 (18:20 -0500)]
Changes
lib/Class/MOP.pm

diff --git a/Changes b/Changes
index b204afb..90f0b99 100644 (file)
--- a/Changes
+++ b/Changes
@@ -5,10 +5,10 @@ Next
       - Applied an MS VC++ compilation fix from Taro Nishino. RT #48072
 
     * Class::MOP
-      - The load_class function no longer returns a value, since it's return
-        value was confusing (either a metaclass object or a class name). It
-        either loads a class or dies trying. Addresses RT #45883. (Dave
-        Rolsky)
+      - The load_class function just returns true, since it's return value was
+        confusing (either a metaclass object or a class name). It either loads
+        a class or dies trying. In the future, this may change to not return
+        anything. Addresses RT #45883. (Dave Rolsky)
 
 0.92_01 Thu, Sep 10, 2009
     * Class::MOP::Package
index 3ea4fbd..b8437ac 100644 (file)
@@ -134,7 +134,10 @@ sub _try_load_one_class {
 sub load_class {
     load_first_existing_class($_[0]);
 
-    return;
+    # This is done to avoid breaking code which checked the return value. Said
+    # code is dumb. The return value was _always_ true, since it dies on
+    # failure!
+    return 1;
 }
 
 sub _is_valid_class_name {
@@ -914,6 +917,10 @@ loaded (as reported by C<is_class_loaded>). This function can be used
 in place of tricks like C<eval "use $module"> or using C<require>
 unconditionally.
 
+If the module cannot be loaded, an exception is thrown.
+
+For historical reasons, this function returns explicitly returns a true value.
+
 =item B<Class::MOP::is_class_loaded($class_name)>
 
 Returns a boolean indicating whether or not C<$class_name> has been