On Sunday, November 13, 2011 17:54:14 bearophile wrote: > Do you remember if this bug is in Bugzilla? > > > import std.algorithm; > void main() { > enum a = [3, 1, 2]; > enum s = sort(a); > assert(equal(a, [3, 1, 2])); > assert(equal(s, [1, 2, 3])); > }
It's not a bug. Those an manifest constants. They're copy-pasted into whatever code you used them in. So, enum a = [3, 1, 2]; enum s = sort(a); is equivalent to enum a = [3, 1, 2]; enum s = sort([3, 1, 2]); a isn't altered at all, because a doesn't really exist. Notice that assert(equal(a, [3, 1, 2])); still passes. It's equivalent to assert(equal([3, 1, 2], [3, 1, 2])); - Jonathan M Davis