D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 11730 - associative array with Nullable!SysTime values: Called `get' on null Nullable!SysTime.
Summary: associative array with Nullable!SysTime values: Called `get' on null Nullable...
Status: RESOLVED FIXED
Alias: None
Product: D
Classification: Unclassified
Component: dmd (show other issues)
Version: D2
Hardware: All All
: P2 regression
Assignee: No Owner
URL:
Keywords: pull, wrong-code
Depends on:
Blocks:
 
Reported: 2013-12-12 06:31 UTC by Mario Kroeplin
Modified: 2013-12-14 22:58 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Mario Kroeplin 2013-12-12 06:31:34 UTC
The following program throws on D 2.064.2:

import std.datetime;
import std.typecons;

void main()
{
    Nullable!SysTime[string] map;

    map["foo"] = Nullable!SysTime();
}

core.exception.AssertError@.dvm/compilers/dmd-2.064.2/bin/../src/phobos/std/typecons.d(1233): Called `get' on null Nullable!SysTime.

It works on D 2.063.2.
Comment 2 github-bugzilla 2013-12-14 22:53:33 UTC
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/123bd0d8cf14a32eb914761c3c415f37b520c912
fix Issue 11730 - associative array with Nullable!SysTime values: Called `get' on null Nullable!SysTime

When I fixed bug 6178, I internally used `cast(void)exp)` to suppress unexpected "has no side effect" error.

But, `CastExp` always try to resolve alias this of its operand to find most matching type to `void` via `Expression::castTo`. It should be disabled.

https://github.com/D-Programming-Language/dmd/commit/e6ffe6e50ffda444b4f4ec086f8149c55d74c933
Merge pull request #2961 from 9rnsr/fix11730

[REG2.064] Issue 11730 - associative array with Nullable!SysTime values: Called `get' on null Nullable!SysTime