Mercurial > projects > dstress
changeset 312:557e7af55dfc
associative arrays store copies (native, struct) and references (class)
Walter <walter@digitalmars.com>
2005-03-15
mail:000801c52906$9ebce7d0$0200a8c0@colossus
author | thomask |
---|---|
date | Wed, 16 Mar 2005 11:58:17 +0000 |
parents | 35a1df98caf1 |
children | 2792ebbb8b9c |
files | run/InExpression_02.d run/InExpression_03.d run/InExpression_05.d run/InExpression_06.d run/InExpression_09.d run/InExpression_20.d |
diffstat | 6 files changed, 43 insertions(+), 73 deletions(-) [+] |
line wrap: on
line diff
--- a/run/InExpression_02.d Wed Mar 16 11:09:23 2005 +0000 +++ b/run/InExpression_02.d Wed Mar 16 11:58:17 2005 +0000 @@ -12,7 +12,15 @@ array[key]=value; int* ptr = key in array; - assert( &value == ptr); + assert(value == *ptr); + + value=2; + assert(value == 2); + assert(*ptr == 1); + + *ptr = 3; + assert(value == 2); + assert(*ptr == 3); return 0; }
--- a/run/InExpression_03.d Wed Mar 16 11:09:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.InExpression_03; - -int main(){ - int value=1; - char[] key = "eins"; - int[char[]] array; - - array[key]=value; - int* ptr = key in array; - - assert(value == *ptr); - - value++; - - assert(value == *ptr); - - return 0; -}
--- a/run/InExpression_05.d Wed Mar 16 11:09:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.InExpression_05; - -struct MyStruct{ - int i; - char c; -} - -int main(){ - MyStruct value; - value.i = 1; - value.c = '1'; - char[] key = "eins"; - MyStruct[char[]] array; - - array[key]=value; - MyStruct* ptr = key in array; - - assert(&value == ptr); - - return 0; -}
--- a/run/InExpression_06.d Wed Mar 16 11:09:23 2005 +0000 +++ b/run/InExpression_06.d Wed Mar 16 11:58:17 2005 +0000 @@ -25,8 +25,8 @@ value.i++; value.c--; - assert(value.i == ptr.i); - assert(value.c == ptr.c); + assert(value.i != ptr.i); + assert(value.c != ptr.c); return 0; }
--- a/run/InExpression_09.d Wed Mar 16 11:09:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.InExpression_09; - -class MyClass{ - int i; - char c; -} - -int main(){ - MyClass value = new MyClass(); - char[] key = "eins"; - MyClass[char[]] array; - - array[key]=value; - MyClass* ptr = key in array; - - assert(value == *ptr); - - return 0; -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/InExpression_20.d Wed Mar 16 11:58:17 2005 +0000 @@ -0,0 +1,32 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.InExpression_20; + +class ArrayTest{ + int i; +} + +int main(){ + ArrayTest[char[]] array; + + ArrayTest at = new ArrayTest(); + at.i=2; + + array["key"]=at; + + ArrayTest* ptr = "key" in array; + assert(at.i == 2); + assert(ptr.i == 2); + + ptr.i = 3; + assert(at.i == 3); + assert(ptr.i == 3); + + at.i = 4; + assert(at.i == 4); + assert(ptr.i == 4); + + return 0; +}