// Verify that modifying a string used as a dict key // does not corrupt the dictionary proc main() { var s1, s2, s3; var d; s1 = @"aaaaa"; s2 = @"aaaab"; s3 = @"aaaac"; d = <<< s1, 1, s2, 2, s3, 3 >>>; "d[s1] = ", d[s1], "\n"; "d[aaaaa] = ", d["aaaaa"], "\n"; "d[s2] = ", d[s2], "\n"; "d[s3] = ", d[s3], "\n"; s1[0] = 'z'; "d[s1] = ", d[s1], "\n"; // This should be nil "d[aaaaa] = ", d["aaaaa"], "\n"; // This should still be 1 "d[s2] = ", d[s2], "\n"; "d[s3] = ", d[s3], "\n"; }