Merge 'trunk' into 'sqla_1.50_compat'
[dbsrgits/DBIx-Class-Historic.git] / lib / DBIx / Class / Relationship / ManyToMany.pm
index d0fdd0c..163ac36 100644 (file)
@@ -27,18 +27,21 @@ sub many_to_many {
     my $rs_meth = "${meth}_rs";
 
     for ($add_meth, $remove_meth, $set_meth, $rs_meth) {
-      warnings::warn(<<"EOW")
+      if ( $class->can ($_) ) {
+        warnings::warnif(<<"EOW")
 ***************************************************************************
 The many-to-many relationship $meth is trying to create a utility method called
 $_. This will overwrite the existing method on $class. You almost certainly
 want to rename your method or the many-to-many relationship, as your method
-will not be callable (it will use the one from the relationship instead.) 
+will not be callable (it will use the one from the relationship instead.)
+
+To disable this warning add the following to $class
+
+  no warnings 'DBIx::Class::Relationship::ManyToMany';
 
-no warnings 'DBIx::Class::Relationship::ManyToMany'; in 
-$class to disable.
 ***************************************************************************
 EOW
-        if warnings::enabled() && $class->can($_);
+      }
     }
 
     $rel_attrs->{alias} ||= $f_rel;