www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - AA reference semantics

reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
Is this a bug?

	int[string] aa, bb;
	bb = aa;
	aa["abc"] = 123;
	assert(bb["abc"] == 123);	// assertion fails

The following works:

	int[string] aa, bb;
	aa["def"] = 456;
	bb = aa;
	aa["abc"] = 123;
	assert(bb["abc"] == 123);	// OK


T

-- 
Don't drink and derive. Alcohol and algebra don't mix.
Mar 13 2012
parent reply "Daniel Murphy" <yebblies nospamgmail.com> writes:
"H. S. Teoh" <hsteoh quickfur.ath.cx> wrote in message 
news:mailman.652.1331699976.4860.digitalmars-d puremagic.com...
 Is this a bug?

Nope.
 int[string] aa, bb;

aa == bb == null
 bb = aa;

same
 aa["abc"] = 123;

A new AA is created.
 assert(bb["abc"] == 123); // assertion fails

B is still null
Mar 13 2012
parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Wed, Mar 14, 2012 at 04:20:32PM +1100, Daniel Murphy wrote:
 "H. S. Teoh" <hsteoh quickfur.ath.cx> wrote in message 
 news:mailman.652.1331699976.4860.digitalmars-d puremagic.com...
 Is this a bug?

Nope.

OK good. That means I don't have to fix my AA implementation. :-P
 int[string] aa, bb;

aa == bb == null

Ahh, I see.
 bb = aa;

same
 aa["abc"] = 123;

A new AA is created.

OK, makes sense.
 assert(bb["abc"] == 123); // assertion fails

B is still null

Righto. T -- Be in denial for long enough, and one day you'll deny yourself of things you wish you hadn't.
Mar 13 2012