digitalmars.D.bugs - [Issue 8934] New: Lambda violates DMD assertion
- d-bugmail puremagic.com (32/32) Nov 02 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8934
- d-bugmail puremagic.com (8/8) Nov 02 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8934
- d-bugmail puremagic.com (12/12) Nov 02 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8934
- d-bugmail puremagic.com (24/24) Dec 17 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8934
- d-bugmail puremagic.com (15/15) Mar 16 2013 http://d.puremagic.com/issues/show_bug.cgi?id=8934
http://d.puremagic.com/issues/show_bug.cgi?id=8934
Summary: Lambda violates DMD assertion
Product: D
Version: D2
Platform: x86_64
OS/Version: All
Status: NEW
Severity: major
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: dimitri.sabadie gmail.com
04:38:54 PDT ---
I have found something interresting with lambdas. Consider this:
string modules[] = [ "foo", "bar", "zoo" ];
string line;
/* ... */
/* now line contains something not empty */
if (any!(a => a == line)(modules)) {
/* ... */
}
I get a DMD assertion crash on the if statement:
Assertion failure: '!vthis->csym' on line 727 in file 'glue.c'
Of course, the lambda syntax is, here,
(string a) => a == line
But sometimes a => a == line also works as inference type lambda! I don’t know
why it doesn’t here. Also, this works too:
(string a) { return a == line; }
Is it the old delegate literal syntax?
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 02 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8934 04:40:29 PDT --- Just to precise — as the topic name does — DMD fails to say that the error is on the lambda expression in the if statement. Instead it prints internal shit assertions. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 02 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8934
Maxim Fomin <maxim maxim-fomin.ru> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |maxim maxim-fomin.ru
---
Regarding lambdas - it is well-known issue which consists in treating lambda
expression as voids: see issue 8899. Regarding internal compiler error - please
provide exact code which shows problem.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 02 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8934
Dmitry S <ds.dlang gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ds.dlang gmail.com
I tried to reproduce, but the following code compiles and works correctly with
dmd built from the current github head (on MacOSX):
import std.stdio;
import std.algorithm;
string modules[] = [ "foo", "bar", "zoo" ];
int main(string[] args) {
foreach (string line; ["hello", "bar", "world"]) {
if (any!(a => a == line)(modules)) {
writeln(line, " found");
} else {
writeln(line, " not found");
}
}
return 0;
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 17 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8934
Brad Roberts <braddr puremagic.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |braddr puremagic.com
Resolution| |WORKSFORME
---
Based on the last comment, it's no longer reproducible. This means that this
bug was likely a duplicate of another which was fixed between when the but was
reported and then re-tested.
Please feel free to re-open if you can reproduce it.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013









d-bugmail puremagic.com 