[perl #117607] TODO test for \&CORE::lc in error context
authorTony Cook <tony@develop-help.com>
Thu, 25 Apr 2013 08:10:10 +0000 (18:10 +1000)
committerTony Cook <tony@develop-help.com>
Fri, 26 Apr 2013 01:56:40 +0000 (11:56 +1000)
The original sample was:

BEGIN {
$^H |= 0x00000400; # strict vars
}
# Undeclared variable here
sub foo { return $anyvar; }
# Any CORE:: here
sub bar { \&CORE::lc }

simplified to:

BEGIN {
$^H |= 0x00000400; # strict vars
}
$anyvar;
&CORE::lc;

but it occurs for any compile-time error that doesn't abort compilation,
such as:

$foo/; \&CORE::lc

t/op/coresubs.t

index 1909c03..5f4cbaa 100644 (file)
@@ -135,6 +135,13 @@ is runperl(prog => 'print CORE->lc, qq-\n-'), "core\n",
 is runperl(prog => '@ISA=CORE; print main->uc, qq-\n-'), "MAIN\n",
  'inherted method calls autovivify coresubs';
 
+{ # RT #117607
+  local $TODO = "\\&CORE::lc crashes in error context";
+  $tests++;
+  like runperl(prog => '$foo/; \&CORE::lc', stderr => 1),
+    qr/^syntax error/, "RT #117607: \\&CORE::foo doesn't crash in error context";
+}
+
 $tests++;
 ok eval { *CORE::exit = \42 },
   '[rt.cpan.org #74289] *CORE::foo is not accidentally made read-only';