require "./test.pl";
}
-plan tests => 142;
+plan tests => 144;
$a = {};
bless $a, "Bob";
ok(!Undeclared->can("something_else"));
ok(Undeclared->isa("UNIVERSAL"));
+
+# keep this at the end to avoid messing up earlier tests, since it modifies
+# @UNIVERSAL::ISA
+@UNIVERSAL::ISA = ('UniversalParent');
+{ package UniversalIsaTest1; }
+ok(UniversalIsaTest1->isa('UniversalParent'));
+ok(UniversalIsaTest2->isa('UniversalParent'));
type = sv_reftype(sv,0);
if (type && strEQ(type,name))
return TRUE;
- stash = SvOBJECT(sv) ? SvSTASH(sv) : NULL;
+ if (!SvOBJECT(sv))
+ return FALSE;
+ stash = SvSTASH(sv);
}
else {
stash = gv_stashsv(sv, 0);
- if (!stash)
- stash = gv_stashpvs("UNIVERSAL", 0);
}
- return stash ? isa_lookup(stash, name, len, flags) : FALSE;
+ if (stash && isa_lookup(stash, name, len, flags))
+ return TRUE;
+
+ stash = gv_stashpvs("UNIVERSAL", 0);
+ return stash && isa_lookup(stash, name, len, flags);
}
/*