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;
+}