In POSIX, improve the diagnostic for the "use $method" instead.
authorNicholas Clark <nick@ccl4.org>
Wed, 31 Aug 2011 13:20:56 +0000 (15:20 +0200)
committerNicholas Clark <nick@ccl4.org>
Thu, 1 Sep 2011 19:54:13 +0000 (21:54 +0200)
In the error message, name the POSIX function that was called, as well as
the suggested replacement method. This rephrasing was in the patch
supplied by Aristotle Pagaltzis, but I have retained the existing POSIX
use of :: when describing the method, because given two less than great
choices, I'm inclined to favour retaining the status quo and one change
over two changes.

ext/POSIX/lib/POSIX.pm
ext/POSIX/t/unimplemented.t

index 7899922..c850eaa 100644 (file)
@@ -131,7 +131,7 @@ sub AUTOLOAD {
        croak "Unimplemented: POSIX::$func() is C-specific, stopped"
            unless defined $how;
        croak "Unimplemented: POSIX::$func() is $$how" if ref $how;
-       croak "Use method $how() instead" if $how =~ /::/;
+       croak "Use method $how() instead of POSIX::$func()" if $how =~ /::/;
        croak "Unimplemented: POSIX::$func() is C-specific, use $how instead";
     }
 
index 54fc648..1e38af7 100644 (file)
@@ -89,7 +89,8 @@ foreach ([atexit => 'C-specific, use END {} instead'],
         [vsprintf => 'C-specific, stopped'],
        ) {
     my ($func, $action) = @$_;
-    my $expect = ref $action ? qr/Use method $$action\(\) instead at \(eval/
+    my $expect = ref $action
+       ? qr/Use method $$action\(\) instead of POSIX::$func\(\) at \(eval/
        : qr/Unimplemented: POSIX::$func\(\) is \Q$action\E at \(eval/;
     is(eval "POSIX::$func(); 1", undef, "POSIX::$func fails as expected");
     like($@, $expect, "POSIX::$func gives expected error message");