Bug 13816 – [REG2.066.0] The compiler crashes with recursive tuple expansion

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2014-12-04T11:27:00Z
Last change time
2015-06-17T21:05:57Z
Keywords
ice, pull
Assigned to
nobody
Creator
szabobogdan

Attachments

IDFilenameSummaryContent-TypeSize
1458app.dthe crashing codetext/plain678

Comments

Comment #0 by szabobogdan — 2014-12-04T11:27:11Z
Created attachment 1458 the crashing code
Comment #1 by k.hara.pg — 2015-06-10T16:26:58Z
It's a regression from 2.066.0. Reduced test case: alias TypeTuple(T...) = T; template ItemProperty() { static if (true) { alias ItemProperty = TypeTuple!(ItemProperty!()); // line 14 } } void main() { alias items = ItemProperty!(); // line 19 enum num = items.length; // line 21 } Until 2.065, the code had printed: test.d(14): Error: alias test.ItemProperty!().ItemProperty recursive alias declaration test.d(19): Error: template instance test.ItemProperty!() error instantiating But since 2.066, line 19 makes no error, and line 21 will crash the compiler.
Comment #2 by k.hara.pg — 2015-06-10T16:33:16Z
Comment #3 by github-bugzilla — 2015-06-12T13:04:07Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/d17412ae8705034336761a10673d3f7553e69506 fix Issue 13816 - The compiler crashes with recursive tuple expansion https://github.com/D-Programming-Language/dmd/commit/d19923916de98edfd4d505ffcd3e93f88f5f5280 Merge pull request #4738 from 9rnsr/fix13816 [REG2.066.0] Issue 13816 - The compiler crashes with recursive tuple expansion
Comment #4 by github-bugzilla — 2015-06-17T21:05:57Z