Mercurial > projects > dstress
changeset 236:f842e680b6fb
opIdentity for inherited interfaces
teqDruid <me@teqdruid.com>
2005-01-12
news:pan.2005.01.12.13.20.54.546749@teqdruid.com
nntp://news.digitalmars.com/digitalmars.D.bugs/2676
author | thomask |
---|---|
date | Wed, 12 Jan 2005 14:10:05 +0000 |
parents | a6ffcb7cfc2b |
children | d1da3b19ce2b |
files | reporter.txt run/opIdentity_01.d run/opIdentity_02.d |
diffstat | 3 files changed, 93 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/reporter.txt Wed Jan 12 13:43:49 2005 +0000 +++ b/reporter.txt Wed Jan 12 14:10:05 2005 +0000 @@ -52,6 +52,7 @@ Stephan Wienczny <Stephan@Wienczny.de>, <wienczny@web.de> Stewart Gordon <smjg_1998@yahoo.com>, <Steward_member@pathlink.com> tetsuya <tetsuya_member@pathlink.com> +teqDruid <me@teqdruid.com> Thomas Kuehne <thomas-dloop@kuehne.thisisspam.cn> Tyro <ridimz_at@yahoo.dot.com> van eeshan <vanee@hotmail.com>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/opIdentity_01.d Wed Jan 12 14:10:05 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ teqDruid <me@teqdruid.com> +// @date@ 2005-01-12 +// @uri@ news:pan.2005.01.12.13.20.54.546749@teqdruid.com +// @url@ nntp://news.digitalmars.com/digitalmars.D.bugs/2676 + +module dstress.run.opIdentity_01; + +interface I { + I parent(); + void parent(I i); + void addChild(I i); +} + +interface J : I { +} + +class A : I { + private I myParent; + + void addChild(I i) { + i.parent = this; + } + + I parent() { + return myParent; + } + + void parent(I parent) { + myParent = parent; + } +} + +class B : A, J { +} + +int main() { + J a = new B; + J b = new B; + a.addChild(b); + assert(b.parent === a); + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/opIdentity_02.d Wed Jan 12 14:10:05 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ teqDruid <me@teqdruid.com> +// @date@ 2005-01-12 +// @uri@ news:pan.2005.01.12.13.20.54.546749@teqdruid.com +// @url@ nntp://news.digitalmars.com/digitalmars.D.bugs/2676 + +module dstress.run.opIdentity_022; + +interface I { + I parent(); + void parent(I i); + void addChild(I i); +} + +interface J : I { +} + +class A : I { + private I myParent; + + void addChild(I i) { + i.parent = this; + } + + I parent() { + return myParent; + } + + void parent(I parent) { + myParent = parent; + } +} + +class B : A, J { +} + +int main() { + J a = new B; + J b = new B; + a.addChild(b); + assert(cast(J)b.parent === a); + return 0; +}