digitalmars.D.bugs - [Issue 4267] New: forward reference error when 2-fold aliasing a template instance
- d-bugmail puremagic.com (25/25) Jun 03 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4267
- d-bugmail puremagic.com (27/27) Jun 03 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4267
- d-bugmail puremagic.com (13/13) Jun 03 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4267
- d-bugmail puremagic.com (12/12) Aug 08 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4267
http://d.puremagic.com/issues/show_bug.cgi?id=4267
Summary: forward reference error when 2-fold aliasing a
template instance
Product: D
Version: 2.041
Platform: All
OS/Version: All
Status: NEW
Keywords: rejects-valid
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: mrmocool gmx.de
alias Bar Bar2; // but the second one doesn't
alias Foo!(1) Bar; // 1 alias "level" works
//alias Bar Bar2; // putting it behind the 1st alias makes it work
template Foo(uint ver)
{
}
ddraw.d(1): Error: forward reference to 'Foo!(1)'
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 03 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4267
Oh and moving the alias declaration doesn't help in the real-world example:
interface IDirectDrawSurfaceB(uint ver) : IUnknown
{
...
HRESULT Initialize(LPDIRECTDRAW, LPDDSURFACEDESC ); // line 153
...
}
alias IDirectDrawSurfaceB!(1) IDirectDrawSurface; // line 199
interface IDirectDrawB(uint ver) : IUnknown
{
...
HRESULT CreateSurface(LPDDSURFACEDESC, LPDIRECTDRAWSURFACE *, IUnknown *);
...
}
alias IDirectDrawB!(1) IDirectDraw; ///
alias IDirectDraw *LPDIRECTDRAW;
alias IDirectDrawSurface *LPDIRECTDRAWSURFACE;
ddraw.d(153): Error: forward reference to 'IDirectDrawB!(1)'
ddraw.d(153): Error: IDirectDraw is used as a type
ddraw.d(199): Error: alias ddraw.IDirectDrawSurface recursive alias declaration
ddraw.d(199): Error: template instance ddraw.IDirectDrawSurfaceB!(1) error
instantiating
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 03 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4267
Trass3r <mrmocool gmx.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |major
I tried using direct aliases also for the pointers to see if this solves the
problem:
alias IDirectDrawB!(1) *LPDIRECTDRAW;
but it still doesn't work.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 03 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4267
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
21:33:28 PDT ---
Fixed with 4503
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 08 2010









d-bugmail puremagic.com 