Bug 10913 – [2.064 git-head] regex/demange compilation failure

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P2
Component
phobos
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-08-27T13:05:00Z
Last change time
2015-06-09T01:31:15Z
Keywords
pull
Assigned to
nobody
Creator
bus_dbugzilla

Comments

Comment #0 by bus_dbugzilla — 2013-08-27T13:05:29Z
The following worked in v2.063.2, but not in the latest github masters (This is preventing the "ddemangle" tool from compiling in the latest github master): ------------------------------------------- import core.demangle; import std.regex; void main() { replace!((a) => demangle(a.hit))("blah", regex(`a`)); } ------------------------------------------- Result with github master: ------------------------------------------- ../dmd/src/../../phobos/std/regex.d(6078): Error: template D main.__lambda2 does not match any function template declaration. Candidates are: test.d(5): test.main.__lambda2(__T1)(a) ../dmd/src/../../phobos/std/regex.d(6078): Error: template test.main.__lambda2(__T1)(a) cannot deduce template function from argument types !()(Captures!(string, uint), Appender!string) ../dmd/src/../../phobos/std/regex.d(6106): Error: template instance test.main.replaceMatchesInto!(__lambda2, Appender!string, string, RegexMatch!(string, ThompsonMatcher)) error instantiating ../dmd/src/../../phobos/std/regex.d(6399): instantiated from here: replaceAllWith!(__lambda2, match, string, Regex!char) test.d(5): instantiated from here: replace!(__lambda2, string, Regex!char) ../dmd/src/../../phobos/std/regex.d(6399): Error: template instance test.main.replaceAllWith!(__lambda2, match, string, Regex!char) error instantiating test.d(5): instantiated from here: replace!(__lambda2, string, Regex!char) test.d(5): Error: template instance test.main.replace!(__lambda2, string, Regex!char) error instantiating -------------------------------------------
Comment #1 by hsteoh — 2013-08-27T15:15:43Z
*** This issue has been marked as a duplicate of issue 10896 ***
Comment #2 by dmitry.olsh — 2013-08-28T02:22:21Z
It's about replace function in std.regex not just ddemangle failing to compile.
Comment #3 by hsteoh — 2013-08-28T20:32:17Z
This bug is not in DMD, it's a backward incompatibility caused by the latest changes to std.regex.
Comment #4 by dmitry.olsh — 2013-08-29T08:53:03Z
Comment #5 by github-bugzilla — 2013-09-08T08:39:14Z
Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/99f466fee09a8fe41d04c785f5d7942e65f5b326 fix issue 10913 @safety of std.regex replace API https://github.com/D-Programming-Language/phobos/commit/8e6bf693ac57c38e4fc6b8af8ca28e7ff7fbfb4f Merge pull request #1532 from blackwhale/fix-replace-check Fix issue 10913 std.regex API regression