digitalmars.D.bugs - [Issue 9559] New: Range of Nullable doesn't work with std.array.array
- d-bugmail puremagic.com (36/36) Feb 21 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9559
- d-bugmail puremagic.com (14/14) Feb 21 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9559
- d-bugmail puremagic.com (15/26) Feb 21 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9559
- d-bugmail puremagic.com (8/28) Feb 21 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9559
- d-bugmail puremagic.com (8/8) Aug 28 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9559
- d-bugmail puremagic.com (12/12) Aug 28 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9559
http://d.puremagic.com/issues/show_bug.cgi?id=9559 Summary: Range of Nullable doesn't work with std.array.array Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: justin economicmodeling.com 11:24:22 PST --- Using std.array.array on a range of Nullable!T causes a runtime error if at least one of the elements is set to null. Test case: ---------------------- import std.algorithm; import std.typecons; void main() { alias Nullable!int I; auto ints = [0, 1, 2].map!(i => i & 1 ? I.init : I(i)); auto asArray = std.array.array(ints); } ---------------------- Produces the following error: object.Exception /usr/include/dmd/phobos/std/typecons.d(1181): Enforcement failed Full backtrace here: http://pastebin.com/wMFRKk6L The enforcement exception occurs in Nullable's get() function (I'm using 2.062, I noticed that this has been changed to an assert in HEAD) and Nullable has an alias this to get. Best guess is that this is actually a problem in emplace or array's usage of it. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 21 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9559 12:00:31 PST --- I don't have a good testing environment at the moment, but it looks like the bug might be here: https://github.com/D-Programming-Language/phobos/blob/master/std/conv.d#L3581 If I understand this correctly, this static if will succeed because the Nullable!int constructor will accept another Nullable!int due to the alias this. When the constructor is called, the alias this causes the get() function to be called in order to resolve the Nullable being copied to an int. Possible fix: add a constructor to Nullable that takes typeof(this) and correctly checks isNull. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 21 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9559 monarchdodra gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |monarchdodra gmail.comI don't have a good testing environment at the moment, but it looks like the bug might be here: https://github.com/D-Programming-Language/phobos/blob/master/std/conv.d#L3581 If I understand this correctly, this static if will succeed because the Nullable!int constructor will accept another Nullable!int due to the alias this. When the constructor is called, the alias this causes the get() function to be called in order to resolve the Nullable being copied to an int. Possible fix: add a constructor to Nullable that takes typeof(this) and correctly checks isNull.This gets fixed by my existing fix for emplace. The pull is here: https://github.com/D-Programming-Language/phobos/pull/1082 And I just added a unittest for this specific bug: https://github.com/monarchdodra/phobos/commit/10025b835e564d17fd960d461e965e9bb80d115d -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 21 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9559 13:45:45 PST ---Excellent. I'd love to see this in the next release. Unfortunately, it looks like the use of UFCS in my test case is causing the auto-tester to choke. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------I don't have a good testing environment at the moment, but it looks like the bug might be here: https://github.com/D-Programming-Language/phobos/blob/master/std/conv.d#L3581 If I understand this correctly, this static if will succeed because the Nullable!int constructor will accept another Nullable!int due to the alias this. When the constructor is called, the alias this causes the get() function to be called in order to resolve the Nullable being copied to an int. Possible fix: add a constructor to Nullable that takes typeof(this) and correctly checks isNull.This gets fixed by my existing fix for emplace. The pull is here: https://github.com/D-Programming-Language/phobos/pull/1082 And I just added a unittest for this specific bug: https://github.com/monarchdodra/phobos/commit/10025b835e564d17fd960d461e965e9bb80d115d
Feb 21 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9559 Commit pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/e951b2cf465614e87379c4f0b501ee0f1d57a9ad Issue 9559 - Range of Nullable doesn't work with std.array.array -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 28 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9559 David Nadlinger <code klickverbot.at> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |code klickverbot.at Resolution| |FIXED PDT --- Fixed in Git master. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 28 2013