Mercurial > projects > dstress
changeset 931:47ef91337f5f
<smjg@iname.com>
2006-03-22
news:bug-65-3@http.d.puremagic.com/bugzilla/
author | thomask |
---|---|
date | Fri, 24 Mar 2006 14:25:30 +0000 |
parents | c7e141bc2fba |
children | 763b5d8028af |
files | run/i/interface_23_A.d run/i/interface_23_B.d run/i/interface_23_C.d run/i/interface_23_D.d |
diffstat | 4 files changed, 252 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/i/interface_23_A.d Fri Mar 24 14:25:30 2006 +0000 @@ -0,0 +1,62 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ <smjg@iname.com> +// @date@ 2006-03-22 +// @uri@ news:bug-65-3@http.d.puremagic.com/bugzilla/ + +module dstress.run.i.interface_23_A; + +int status; + +interface I { +} + +class Parent { + I test() { + status += 7; + return new Child(42); + } +} + +class Child : Parent, I { + int data; + + this(int d) { + data = d; + } + + override Child test() { + status += 1; + return new Child(69); + } +} + +int main() { + Child a = new Child(105); + assert(a); + assert(status == 0); + assert(a.data == 105); + + Parent p = a; + assert(p); + assert(status == 0); + + Child c = a.test(); + assert(c); + assert(status == 1); + assert(c.data == 69); + + I i = p.test(); + assert(i); + assert(status == 2); + + Child d = cast(Child) i; + assert(d); + assert(status == 2); + assert(d.data == 69); + + return 0; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/i/interface_23_B.d Fri Mar 24 14:25:30 2006 +0000 @@ -0,0 +1,62 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ <smjg@iname.com> +// @date@ 2006-03-22 +// @uri@ news:bug-65-3@http.d.puremagic.com/bugzilla/ + +module dstress.run.i.interface_23_B; + +int status; + +interface I { +} + +class Parent { + I test() { + status += 7; + return new Child(42); + } +} + +class Child : Parent, I { + int data; + + this(int d) { + data = d; + } + + Child test() { + status += 1; + return new Child(69); + } +} + +int main() { + Child a = new Child(105); + assert(a); + assert(status == 0); + assert(a.data == 105); + + Parent p = a; + assert(p); + assert(status == 0); + + Child c = a.test(); + assert(c); + assert(status == 1); + assert(c.data == 69); + + I i = p.test(); + assert(i); + assert(status == 2); + + Child d = cast(Child) i; + assert(d); + assert(status == 2); + assert(d.data == 69); + + return 0; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/i/interface_23_C.d Fri Mar 24 14:25:30 2006 +0000 @@ -0,0 +1,64 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ <smjg@iname.com> +// @date@ 2006-03-22 +// @uri@ news:bug-65-3@http.d.puremagic.com/bugzilla/ + +module dstress.run.i.interface_23_C; + +int status; + +interface I { + int showData(); +} + +class Parent { + I test() { + status += 7; + return new Child(42); + } +} + +class Child : Parent, I { + int data; + + this(int d) { + data = d; + } + + Child test() { + status += 1; + return new Child(69); + } + + int showData(){ + return data; + } +} + +int main() { + Child a = new Child(105); + assert(a); + assert(status == 0); + assert(a.data == 105); + + Parent p = a; + assert(a); + assert(status == 0); + + a.test(); + assert(status == 1); + + I i = p.test(); + assert(i); + assert(status == 2); + + assert(a.data == 105); + assert(a.showData() == 105); + assert(i.showData() == 69); + + return 0; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/i/interface_23_D.d Fri Mar 24 14:25:30 2006 +0000 @@ -0,0 +1,64 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ <smjg@iname.com> +// @date@ 2006-03-22 +// @uri@ news:bug-65-3@http.d.puremagic.com/bugzilla/ + +module dstress.run.i.interface_23_D; + +int status; + +interface I { + int showData(); +} + +class Parent { + I test() { + status += 7; + return new Child(42); + } +} + +class Child : Parent, I { + int data; + + this(int d) { + data = d; + } + + override Child test() { + status += 1; + return new Child(69); + } + + override int showData(){ + return data; + } +} + +int main() { + Child a = new Child(105); + assert(a); + assert(status == 0); + assert(a.data == 105); + + Parent p = a; + assert(a); + assert(status == 0); + + a.test(); + assert(status == 1); + + I i = p.test(); + assert(i); + assert(status == 2); + + assert(a.data == 105); + assert(a.showData() == 105); + assert(i.showData() == 69); + + return 0; +} +