In perl.git, the branch rgs/overload has been created <http://perl5.git.perl.org/perl.git/commitdiff/f041cf0f9c6469c41de8b73d5f7b426710c3ff8b?hp=0000000000000000000000000000000000000000>
at f041cf0f9c6469c41de8b73d5f7b426710c3ff8b (commit) - Log ----------------------------------------------------------------- commit f041cf0f9c6469c41de8b73d5f7b426710c3ff8b Author: Rafael Garcia-Suarez <r...@consttype.org> Date: Tue Mar 20 09:17:02 2012 +0100 Lookup overloaded assignment operators when trying to swap the arguments This is in the case where we search for an overloaded operator when passing the AMGf_assign flag (we're executing an assignment operator like +=). At the very beginning of Perl_amagic_call, if the flag AMGf_noleft is not passed, we first try to look up the overload method corresponding to the assignment operator, then the normal one if fallback is authorized. However, if this fails, when trying later to find overload magic with the arguments swapped (if AMGf_noright is not passed), this procedure was not used and we looked up directly the base operation from which the assignment operator might be derived. As a consequence of what an operator like += might have looked autogenerated even when fallback=>0 was passed. This change only necessitates a minor adjustment in lib/overload.t, where an overloaded += method wasn't corresponding semantically to the overloaded + method of the same class, which can be seen as a pathological case. ----------------------------------------------------------------------- -- Perl5 Master Repository