summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeon Timmermans <fawaka@gmail.com>2012-01-23 02:01:00 +0100
committerRicardo Signes <rjbs@cpan.org>2012-01-23 21:26:32 -0500
commitb900a653610df47ab299d9e50b8c0ae8d8cb44f6 (patch)
treecb1f919061b19b679622c36b9445c4f69b70c6ca
parente8acd6c51420b5d9471bf4a2e80536839f244f3a (diff)
downloadperl-b900a653610df47ab299d9e50b8c0ae8d8cb44f6.tar.gz
Enforce Any ~~ Object smartmatch precedence
-rw-r--r--pp_ctl.c2
-rw-r--r--t/op/smartmatch.t4
2 files changed, 2 insertions, 4 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 96c3972ec5..a99a78ec84 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -4555,7 +4555,7 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other, const bool copied)
DEBUG_M(Perl_deb(aTHX_ " applying rule Any-Object\n"));
DEBUG_M(Perl_deb(aTHX_ " attempting overload\n"));
- tmpsv = amagic_call(d, e, smart_amg, 0);
+ tmpsv = amagic_call(d, e, smart_amg, AMGf_noleft);
if (tmpsv) {
SPAGAIN;
(void)POPs;
diff --git a/t/op/smartmatch.t b/t/op/smartmatch.t
index da4840eaca..79c9847fbf 100644
--- a/t/op/smartmatch.t
+++ b/t/op/smartmatch.t
@@ -73,7 +73,7 @@ my %keyandmore = map { $_ => 0 } @keyandmore;
my %fooormore = map { $_ => 0 } @fooormore;
# Load and run the tests
-plan tests => 351;
+plan tests => 349;
while (<DATA>) {
SKIP: {
@@ -223,8 +223,6 @@ __DATA__
@ "object" $str_obj
@ FALSE $str_obj
# Those will treat the $str_obj as a string because of fallback:
-! $ov_obj $str_obj
- $ov_obj_2 $str_obj
# object (overloaded or not) ~~ Any
$obj qr/NoOverload/