Need help locating AA bug
H. S. Teoh
hsteoh at quickfur.ath.cx
Tue Feb 28 17:13:31 PST 2012
On Tue, Feb 28, 2012 at 12:04:45PM -0800, Walter Bright wrote:
> On 2/28/2012 7:20 AM, H. S. Teoh wrote:
> >That's strange, because I'm clearly seeing a difference in hash
> >value. Calling map1's keyti.getHash(key) yields a different value
> >from map2's keyti.getHash(key).
>
> The thing to do then is look at those two getHash functions, and see
> how they are computing it.
Here's a short program that proves that something weird is going on:
// TypeInfo test for getHash oddity.
import std.stdio;
void info(T)(T obj, string label) {
writefln("Type of %s: %s", label, typeid(obj));
writefln("Hash: %x", typeid(obj).getHash(&obj));
writeln();
}
void main() {
int[] a1 = [1,2,3];
const int[] a2 = [1,2,3];
immutable int[] a3 = [1,2,3];
info(a1, "a1");
info(a2, "a2");
info(a3, "a3");
}
Here's the output:
Type of a1: int[]
Hash: cdd7a389
Type of a2: const(int)[]
Hash: c3a051c9
Type of a3: immutable(int)[]
Hash: c3a051c9
Going to look into druntime now to find out what on earth is going on.
T
--
Talk is cheap. Whining is actually free. -- Lars Wirzenius
More information about the Digitalmars-d
mailing list