Bug 2217 – Cannot create deprecated alias of type derived from deprecated type
Status
RESOLVED
Resolution
DUPLICATE
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D1 (retired)
Platform
x86
OS
Windows
Creation time
2008-07-11T05:45:00Z
Last change time
2014-03-01T00:36:07Z
Keywords
rejects-valid
Assigned to
bugzilla
Creator
smjg
Comments
Comment #0 by smjg — 2008-07-11T05:45:47Z
With the purported deprecation bug fixes in DMD 1.032, a number of new deprecation bugs seem to have (re)surfaced. Issue 2207 and issue 2208 are two; here is another (probably related to 2208).
----------
deprecated {
class DepClass {}
alias DepClass DepClassAlias; // works
alias DepClass* DepClassPointer; // all the rest fail
alias DepClass[] DepClassArray;
alias void function(DepClass) DepClassParam;
alias DepClass function() DepClassReturn;
}
----------
dep_1032_a.d(5): class dep_1032_a.DepClass is deprecated
dep_1032_a.d(6): class dep_1032_a.DepClass is deprecated
dep_1032_a.d(7): class dep_1032_a.DepClass is deprecated
dep_1032_a.d(8): class dep_1032_a.DepClass is deprecated
----------
The aliases being created are themselves deprecated, so it is within their rights to depend on deprecated stuff.
This happens regardless of whether the original deprecated type is a class, interface, struct, union, enum, alias or typedef.
This has broken the WindowsAPI project at least.
Comment #1 by clugdbug — 2008-07-11T07:10:17Z
This seems to be a generalisation of #2208. It works in the pre-release of DMD1.033.
*** This bug has been marked as a duplicate of 2208 ***