From: Rafael Garcia-Suarez Date: Fri, 20 Apr 2007 14:20:42 +0000 (+0000) Subject: Additions to perldiag for MRO, by Brandon Black. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=2c7d6b9cd25b3389315952363d5b645ced967d61;p=p5sagit%2Fp5-mst-13.2.git Additions to perldiag for MRO, by Brandon Black. p4raw-id: //depot/perl@30995 --- diff --git a/pod/perldiag.pod b/pod/perldiag.pod index eeef207..6285c71 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -830,6 +830,11 @@ usually double the curlies to get the same effect though, because the inner curlies will be considered a block that loops once. See L. +=item Can't linearize anonymous symbol table + +(F) Perl tried to calculate the method resolution order (MRO) of a +package, but failed because the package stash has no name. + =item Can't load '%s' for module %s (F) The module you tried to load failed to load a dynamic extension. This @@ -888,6 +893,13 @@ method, nor does any of its base classes. See L. (W syntax) The @ISA array contained the name of another package that doesn't seem to exist. +=item Can't locate package %s for the parents of %s + +(W syntax) You did not define (or require/use) the first package, +which is named as a (possibly indirect) parent of the second by +C<@ISA> inheritance. Perl will treat this as if the undefined +package had an empty C<@ISA>. + =item Can't locate PerlIO%s (F) You tried to use in open() a PerlIO layer that does not exist, @@ -1966,6 +1978,12 @@ would otherwise result in the same message being repeated. Failure of user callbacks dispatched using the C flag could also result in this warning. See L. +=item Inconsistent hierarchy during C3 merge of class '%s': merging failed on parent '%s' + +(F) The method resolution order (MRO) of the given class is not +C3-consistent, and you have enabled the C3 MRO for this class. See the C3 +documentation in L for more information. + =item In EBCDIC the v-string components cannot exceed 2147483647 (F) An error peculiar to EBCDIC. Internally, v-strings are stored as @@ -2085,6 +2103,12 @@ The escape was replaced with REPLACEMENT CHARACTER (U+FFFD) instead. The <-- HERE shows in the regular expression about where the escape was discovered. +=item Invalid mro name: '%s' + +(F) You tried to C +or C, where C is not a valid method resolution order (MRO). +(Currently, the only valid ones are C and C). See L. + =item Invalid [] range "%s" in regex; marked by <-- HERE in m/%s/ (F) The range specified in a character class had a minimum character @@ -2516,6 +2540,12 @@ C appear to be nested quantifiers, but aren't. See L. (S internal) The symbol in question was declared but somehow went out of scope before it could possibly have been used. +=item next::method/next::can/maybe::next::method cannot find enclosing method + +(F) C needs to be called within the context of a +real method in a real package, and it could not find such a context. +See L. + =item No %s allowed while running setuid (F) Certain operations are deemed to be too insecure for a setuid or @@ -2592,6 +2622,13 @@ name of the file from which to read data for stdin. (F) The setuid emulator requires that scripts have a well-formed #! line even on machines that don't support the #! construct. +=item No next::method '%s' found for %s + +(F) C found no further instances of this method name +in the remaining packages of the MRO of this class. If you don't want +it throwing an exception, use C +or C. See L. + =item "no" not allowed in expression (F) The "no" keyword is recognized and executed at compile time, and @@ -3487,8 +3524,9 @@ which is why it's currently left out of your copy. =item Recursive inheritance detected in package '%s' -(F) More than 100 levels of inheritance were used. Probably indicates -an unintended loop in your inheritance hierarchy. +(F) While calculating the method resolution order (MRO) of a package, Perl +believes it found an infinite loop in the C<@ISA> hierarchy. This is a +crude check that bails out after 100 levels of C<@ISA> depth. =item Recursive inheritance detected while looking for method %s