mirror of
				https://github.com/janet-lang/janet
				synced 2025-10-31 07:33:01 +00:00 
			
		
		
		
	freeze with mutable keys should be determinsic help address #1535
This commit is contained in:
		| @@ -896,11 +896,18 @@ | ||||
|   (struct/with-proto {:a [1 2 3]} :c 22 :b [1 2 3 4] :d "test" :e "test2")) | ||||
| (table/setproto table-to-freeze @{:a @[1 2 3]}) | ||||
|  | ||||
| (assert (deep= {:a [1 2 3] :b [1 2 3 4] :c 22 :d "test" :e "test2"} | ||||
|                (freeze table-to-freeze))) | ||||
| (assert (deep= struct-to-thaw (freeze table-to-freeze))) | ||||
| (assert (deep= table-to-freeze-with-inline-proto (thaw table-to-freeze))) | ||||
| (assert (deep= table-to-freeze-with-inline-proto (thaw struct-to-thaw))) | ||||
|  | ||||
| # Check that freezing mutable keys is deterministic | ||||
| # for issue #1535 | ||||
| (def hashes @{}) | ||||
| (repeat 200 | ||||
|   (def x (freeze {@"" 1 @"" 2 @"" 3 @"" 4 @"" 5})) | ||||
|   (put hashes (hash x) true)) | ||||
| (assert (= 1 (length hashes)) "freeze mutable keys is deterministic") | ||||
|  | ||||
| # Make sure Carriage Returns don't end up in doc strings | ||||
| # e528b86 | ||||
| (assert (not (string/find "\r" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Calvin Rose
					Calvin Rose