Bug 11868 – ICE(template.c) on passing `inout const` argument as TemplateTupleParameter

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2014-01-05T01:25:00Z
Last change time
2014-01-06T01:58:20Z
Keywords
ice, pull
Assigned to
nobody
Creator
verylonglogin.reg

Comments

Comment #0 by verylonglogin.reg — 2014-01-05T01:25:45Z
This code should compile: --- void f(A...)(A) { } void g(inout(int)[] arr) { foreach(ref e; arr) f(e); } --- Assertion failure: '0' on line 1503 in file 'template.c' --- It worked with previous dmd. As a result dmd ICEs now on such previously working code: --- import std.algorithm; void f(inout(int)[] arr) { arr.all!(a => true)(); } ---
Comment #1 by k.hara.pg — 2014-01-05T17:27:33Z
Comment #2 by github-bugzilla — 2014-01-06T01:57:56Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/311612ab8a4a54d8d7d54831a6e4ff70cdf3fe26 fix Issue 11868 - ICE(template.c) on passing `inout const` argument as TemplateTupleParameter https://github.com/D-Programming-Language/dmd/commit/044717ceb5620504464d51958830b83f6b3a16cc Merge pull request #3064 from 9rnsr/fix11868 [REG2.066a] Issue 11868 - ICE(template.c) on passing `inout const` argument as TemplateTupleParameter