fix handling of does and DOES
authorGraham Knop <haarg@haarg.org>
Wed, 1 Nov 2017 16:26:30 +0000 (17:26 +0100)
committerKaren Etheridge <ether@cpan.org>
Sat, 21 Apr 2018 15:42:41 +0000 (17:42 +0200)
commit9d3d6b490907e28992f225d4527a0460acb3c1d2
treed22637645864680a6f2733f725f82840ecc8e0fd
parente5a678c604516eb1f92a05eff7a917ce2afc00d5
fix handling of does and DOES

does has no defined meaning in core. It is a convention established by
Moose-like modules.  In Moose/Moo/Mouse, does checks for roles only, not
parent classes.  $_does should not try to fall back to calling isa.

$_call_if_object shouldn't have any special handling for does or DOES,
it should just do exactly what it was asked to.  But it especially
shouldn't have special handling for things like 'Does'.

Because of these requirements, the implementations of does and DOES have
to be separate from what isa and can do.
lib/Safe/Isa.pm
t/safe_does.t