D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 8421 - ICE template.c:5540: Identifier* TemplateInstance::genIdent(Objects*): Assertion `global.errors' failed.
Summary: ICE template.c:5540: Identifier* TemplateInstance::genIdent(Objects*): Assert...
Status: RESOLVED WORKSFORME
Alias: None
Product: D
Classification: Unclassified
Component: dmd (show other issues)
Version: D2
Hardware: All All
: P2 normal
Assignee: No Owner
URL:
Keywords: ice
Depends on:
Blocks:
 
Reported: 2012-07-23 15:20 UTC by Lukasz Wrzosek
Modified: 2013-10-09 09:45 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Lukasz Wrzosek 2012-07-23 15:20:46 UTC

    
Comment 1 Lukasz Wrzosek 2012-07-23 15:24:59 UTC
dmd loops endlessly on this code:
----------------
import std.typecons;
string bug(T..., U : tuple!T)(tuple!T t);


dmd aborts on this code:
----------------
import std.typecons;
string bug(T, U : tuple!T)(tuple!T t);
enum e = bug(tuple!int);
Comment 2 Walter Bright 2013-10-06 23:32:59 UTC
(In reply to comment #1)
> dmd loops endlessly on this code:
> ----------------
> import std.typecons;
> string bug(T..., U : tuple!T)(tuple!T t);

Produces the message:

test.d(2): Error: template test.bug(T..., U : tuple!T)(tuple!T t) template tuple parameter must be last one

> dmd aborts on this code:
> ----------------
> import std.typecons;
> string bug(T, U : tuple!T)(tuple!T t);
> enum e = bug(tuple!int);

Produces the message:

test.d(3): Error: tuple (int _param_0) is not callable using argument types ()

This is with dmd 2.064 head.
Comment 3 hsteoh 2013-10-09 09:45:18 UTC
Should this be added to the test suite to prevent regression?