Bug 6546 – alias this + IdentityExpression doesn't work
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2011-08-23T08:25:00Z
Last change time
2011-08-24T00:27:34Z
Keywords
patch, rejects-valid
Assigned to
nobody
Creator
k.hara.pg
Comments
Comment #0 by k.hara.pg — 2011-08-23T08:25:33Z
I found this bug while std.typecons.Rebindable checking.
Test cases.
----
class C {}
class D : C {}
struct S { C c; alias c this; } // S : C
struct T { S s; alias s this; } // T : S
struct U { T t; alias t this; } // U : T
void main()
{
C c;
D d;
S s;
T t;
U u;
assert(c is c); // OK
assert(c is d); // OK
assert(c is s); // OK
assert(c is t); // OK
assert(c is u); // OK
assert(d is c); // OK
assert(d is d); // OK
assert(d is s); // doesn't work
assert(d is t); // doesn't work
assert(d is u); // doesn't work
assert(s is c); // OK
assert(s is d); // doesn't work
assert(s is s); // OK
assert(s is t); // doesn't work
assert(s is u); // doesn't work
assert(t is c); // OK
assert(t is d); // doesn't work
assert(t is s); // doesn't work
assert(t is t); // OK
assert(t is u); // doesn't work
assert(u is c); // OK
assert(u is d); // doesn't work
assert(u is s); // doesn't work
assert(u is t); // doesn't work
assert(u is u); // OK
}