Perl_croak(aTHX_ "Can't linearize anonymous symbol table");
if (level > 100)
- Perl_croak(aTHX_ "Recursive inheritance detected in package '%s'",
- HEK_KEY(stashhek));
+ Perl_croak(aTHX_ "Recursive inheritance detected in package '%"SVf"'",
+ SVfARG(sv_2mortal(newSVhek(stashhek))));
meta = HvMROMETA(stash);
SV *errmsg;
I32 i;
- errmsg = newSVpvf("Inconsistent hierarchy during C3 merge of class '%s':\n\t"
- "current merge results [\n", HEK_KEY(stashhek));
+ errmsg = newSVpvf(
+ "Inconsistent hierarchy during C3 merge of class '%"SVf"':\n\t"
+ "current merge results [\n",
+ SVfARG(sv_2mortal(newSVhek(stashhek))));
for (i = 0; i <= av_len(retval); i++) {
SV **elem = av_fetch(retval, i, 0);
sv_catpvf(errmsg, "\t\t%"SVf",\n", SVfARG(*elem));
SV* const val = HeVAL(cache_entry);
if(val == &PL_sv_undef) {
if(throw_nomethod)
- Perl_croak(aTHX_ "No next::method '%s' found for %s", subname, hvname);
+ Perl_croak(aTHX_ "No next::method '%"SVf"' found for %"SVf,
+ SVfARG(newSVpvn_flags(subname, subname_len,
+ SVs_TEMP | ( subname_utf8 ? SVf_UTF8 : 0 ) )),
+ SVfARG(sv_2mortal(newSVhek( HvNAME_HEK(selfstash) ))));
XSRETURN_EMPTY;
}
mXPUSHs(newRV_inc(val));
if (!curstash) {
if (ckWARN(WARN_SYNTAX))
- Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "Can't locate package %"SVf" for @%s::ISA",
- (void*)linear_sv, hvname);
+ Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "Can't locate package %"SVf" for @%"SVf"::ISA",
+ (void*)linear_sv,
+ SVfARG(sv_2mortal(newSVhek( HvNAME_HEK(selfstash) ))));
continue;
}
(void)hv_store_ent(nmcache, sv, &PL_sv_undef, 0);
if(throw_nomethod)
- Perl_croak(aTHX_ "No next::method '%s' found for %s", subname, hvname);
+ Perl_croak(aTHX_ "No next::method '%"SVf"' found for %"SVf,
+ SVfARG(newSVpvn_flags(subname, subname_len,
+ SVs_TEMP | ( subname_utf8 ? SVf_UTF8 : 0 ) )),
+ SVfARG(sv_2mortal(newSVhek( HvNAME_HEK(selfstash) ))));
XSRETURN_EMPTY;
BOOT:
is(Diᚪၚd_D->ᴮaȐ, 'Diᚪၚd_D::ᴮaȐ => Diᚪၚd_A::ᴮaȐ', '... skipped B & C and went to A correctly');
is(Diᚪၚd_D->바ź, 'Diᚪၚd_B::바ź => Diᚪၚd_A::바ź', '... called B method, skipped C and went to A correctly');
is(Diᚪၚd_D->buƵ, 'Diᚪၚd_D::buƵ => Diᚪၚd_B::바ź => Diᚪၚd_A::바ź', '... called D method dispatched to , different method correctly');
-TODO: {
- local our $TODO = "Warnings aren't clean yet";
- eval { Diᚪၚd_D->fuz };
- like($@, qr/^No next::method 'fuz' found for Diᚪၚd_D/u, '... cannot re-dispatch to a method which is not there');
-}
+eval { Diᚪၚd_D->fuz };
+like($@, qr/^No next::method 'fuz' found for Diᚪၚd_D/u, '... cannot re-dispatch to a method which is not there');
is(Diᚪၚd_D->woz, 'Diᚪၚd_D::woz can => 1', '... can re-dispatch figured out correctly');
is(Diᚪၚd_D->noz, 'Diᚪၚd_D::noz can => 0', '... cannot re-dispatch figured out correctly');