digitalmars.D.bugs - [Issue 4503] New: forward reference to aliased template instance
- d-bugmail puremagic.com (30/30) Jul 24 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4503
- d-bugmail puremagic.com (14/14) Jul 24 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4503
- d-bugmail puremagic.com (16/16) Jul 25 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4503
- d-bugmail puremagic.com (25/25) Jul 26 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4503
- d-bugmail puremagic.com (7/7) Jul 26 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4503
- d-bugmail puremagic.com (10/10) Jul 27 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4503
- d-bugmail puremagic.com (10/10) Aug 08 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4503
- d-bugmail puremagic.com (12/12) Aug 29 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4503
http://d.puremagic.com/issues/show_bug.cgi?id=4503
Summary: forward reference to aliased template instance
Product: D
Version: D1 & D2
Platform: Other
OS/Version: All
Status: NEW
Keywords: rejects-valid
Severity: major
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: mrmocool gmx.de
This is an extremely simplified version of my real code (cl4d) where these 3
parts are distributed among several files (and thus heavily depend on the build
order).
----
class Collection(T)
{
}
ICollection c;
alias Collection!int ICollection;
fwdref2.d(4): Error: forward reference to 'Collection!(int)'
fwdref2.d(4): Error: ICollection is used as a type
----
Putting ICollection c; at the end makes it compile.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 24 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4503
error occurs at mtype.c:5542
if (t->ty == Tinstance && t != this && !t->deco)
{ error(loc, "forward reference to '%s'", t->toChars());
return;
}
This is also true if ICollection is referenced like this:
void foo(ICollection c)
{
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 24 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4503
Trass3r <mrmocool gmx.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
A test with
if (t->ty == Tinstance && t != this && !t->deco)
{ //error(loc, "forward reference to '%s'", t->toChars());
//return;
t = t->semantic(loc, sc);
}
solved this issue. Don't know if that causes other problems though.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 25 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4503
Rainer Schuetze <r.sagitario gmx.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |r.sagitario gmx.de
PDT ---
This patch seems a bit more generic and solved a similar issue for me. It also
works for your code:
Index: declaration.c
===================================================================
--- declaration.c (revision 576)
+++ declaration.c (working copy)
-594,6 +594,9
{ error("recursive alias declaration");
aliassym = new TypedefDeclaration(loc, ident, Type::terror, NULL);
}
+ else if (!aliassym && scope)
+ semantic(scope);
+
Dsymbol *s = aliassym ? aliassym->toAlias() : this;
return s;
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 26 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4503 Great! Also seems to solve http://d.puremagic.com/issues/show_bug.cgi?id=4267 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 26 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4503
Trass3r <mrmocool gmx.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Blocks| |4267
And this one: http://d.puremagic.com/issues/show_bug.cgi?id=3679
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 27 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4503
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bugzilla digitalmars.com
21:32:00 PDT ---
http://www.dsource.org/projects/dmd/changeset/607
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 08 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4503
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |clugdbug yahoo.com.au
Resolution| |FIXED
Fixed DMD1.063 and 2.048.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 29 2010









d-bugmail puremagic.com 