Bug 7440 – ctRegex does not work when using alternatives ('|') involving a '+' inside non-capturing group ('(?:…)')

Status
RESOLVED
Resolution
DUPLICATE
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-02-05T01:51:00Z
Last change time
2013-05-12T14:03:13Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
kennytm

Attachments

IDFilenameSummaryContent-TypeSize
1095sr_micro.dStripped down regex parser #2text/plain13318

Comments

Comment #0 by kennytm — 2012-02-05T01:51:58Z
Test case: ------------------------------------------------------------------------------ import std.regex; // using capturing group has no problem. enum bug7440a_1_workaround = ctRegex!`(b*|d+)`; enum bug7440a_2_workaround = ctRegex!`(a|b+)`; enum bug7440a_3_workaround = ctRegex!`(a|[^a]+)`; // using '|' inside a '(?:...)' may cause InfiniteEnd or some other error. enum bug7440a_1 = ctRegex!`(?:b*|d+)`; enum bug7440a_2 = ctRegex!`(?:a|b+)`; enum bug7440a_3 = ctRegex!`(?:a|[^a]+)`; ------------------------------------------------------------------------------
Comment #1 by dmitry.olsh — 2012-04-17T02:08:05Z
Created attachment 1095 Stripped down regex parser #2
Comment #2 by dmitry.olsh — 2012-04-17T02:11:15Z
Not a Phobos bug. It's in CTFE side of things. Nowadays it triggers assert. Judging by the assert firing off it's a likely duplicate of Issue 7810. Issue 7810 also features smaller test case.
Comment #3 by dmitry.olsh — 2012-11-30T12:33:39Z
(In reply to comment #2) > Not a Phobos bug. It's in CTFE side of things. Nowadays it triggers assert. > Judging by the assert firing off it's a likely duplicate of Issue 7810. > Issue 7810 also features smaller test case. Now 7810 is fixed and I see that this bug is a different beast, will look into reducing it more.
Comment #4 by dmitry.olsh — 2013-03-12T04:35:47Z
Comment on attachment 1095 Stripped down regex parser #2 Now this snippet works, there is another bug.
Comment #5 by dmitry.olsh — 2013-05-12T14:03:13Z
Has more tests but with the same root cause as 9634. *** This issue has been marked as a duplicate of issue 9634 ***