Deprecate literal unescaped "{" in regexes.
authorKarl Williamson <public@khwilliamson.com>
Fri, 25 May 2012 03:23:49 +0000 (21:23 -0600)
committerKarl Williamson <public@khwilliamson.com>
Fri, 25 May 2012 04:48:43 +0000 (22:48 -0600)
commit2a53d3314d380af5ab5283758219417c6dfa36e9
tree7c72ef5cd43b245d58ad7a4303d789a0f20aa8b4
parent9a54da5c9b834e6244f5695a8d2bf57e89d4fa90
Deprecate literal unescaped "{" in regexes.

We are deprecating literal left braces in regular expressions.  The 5.16
delta announced that this is coming.

This commit causes a warning to be raised when a literal "{" is
encountered.  However, it does not do this if the left brace is at the
beginning of a construct.  Such a brace does not cause problems for us
for our future use of it for other purposes, as, for example in things
like \b{w}, and there were a large number of core tests that failed
without this condition.

I didn't mention this exception in the diagnostic.  We may choose to
forbid it everywhere, and we certainly want to discourage its use
everywhere.  But this commit gets the essential components in early in
5.17, and we can tighten it up later if we decide to.
lib/diagnostics.pm
pod/perldiag.pod
regcomp.c
t/comp/parser.t
t/io/open.t
t/lib/warnings/regcomp
t/op/taint.t
t/re/pat.t
t/re/pat_advanced.t