https://issues.dlang.org/show_bug.cgi?id=13923
Issue ID: 13923
Summary: Specify guarantees on associative array iteration
order volatility
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: minor
Priority: P1
Component: websites
Assignee: [email protected]
Reporter: [email protected]
Suppose I have an associative array:
string[int] a = [1:"a", 2:"b", 3:"c"];
Now, associative arrays have unspecified iteration order, but suppose I iterate
the array and it iterates in order {2, 1, 3}.
What guarantees are provided on subsequent iterations? Specifically:
* If I iterate the array again, without modifying any keys or values, or
inserting, removing, or rehashing; is the iteration order guaranteed to be the
same?
* If I iterate the array again, with only modifying values (not keys), is the
iteration order guaranteed to be the same?
The spec should specify what operations may alter the iteration order, and what
operations will leave it intact.
--