Bug 9741 – undefined identifier with User Defined Attribute
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-03-17T10:28:00Z
Last change time
2014-01-14T17:05:58Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
tim.dlang
Comments
Comment #0 by tim.dlang — 2013-03-17T10:28:57Z
// In file a.d:
module a;
import b;
struct A {}
alias X = ShowAttributes!(B);
@A
struct B {}
// In file b.d:
module b;
template ShowAttributes(alias X)
{
pragma(msg,X.stringof);
pragma(msg,__traits(getAttributes,X));
}
If I combile this with dmd -c a.d b.d, I get the following output:
B
a.d(8): Error: undefined identifier A, did you mean module b?
tuple((__error))
a.d(6): Error: template instance b.ShowAttributes!(B) error instantiating
If the alias X is moved to the end of file a.d, then it compiles without error.
Tested with dmd v2.062.