annotate tests/mini/norun_debug8.d @ 1512:09734fb929c0

Make == for associative arrays test for equality, not identity. _aaEq was added to runtime/internal/aaA.d which forwards to TypeInfo_AssociativeArray.equals in genobj.d. On the codegen side, DtoAAEquals was added to gen/aa.cpp and is called from EqualExp::toElem in gen/toir.cpp. I assume that the frontend will produce an error if == is used on associative arrays of different type. This fixes DMD bug 1429.
author Christian Kamm <kamm incasoftware de>
date Sun, 21 Jun 2009 19:05:24 +0200
parents 925779c19395
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
416
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
1 module mini.norun_debug8;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
2
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
3 struct Str
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
4 {
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
5 size_t len;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
6 void* ptr;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
7 }
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
8
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
9 struct Foo
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
10 {
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
11 long l;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
12 Bar bar;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
13 }
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
14
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
15 struct Bar
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
16 {
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
17 float x,y,z;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
18 Foo* foo;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
19 }
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
20
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
21 void main()
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
22 {
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
23 Str str;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
24 Foo foo;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
25 foo.l = 42;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
26 foo.bar.y = 3.1415;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
27 foo.bar.foo = &foo;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
28
1425
925779c19395 I ran into another issue like the one fixed by r1318, so update all of
Frits van Bommel <fvbommel wxs.nl>
parents: 416
diff changeset
29 int* fail = cast(int*) 1;
416
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
30 *fail = 0;
24ea9bf5f8b7 testing the new mini test runner features.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff changeset
31 }