Tim Kientzle
716b58e956
Handle ObjC -hash differently for Equatable and non-Equatable types
...
For an Equatable type, we need a hash implementation that
is compatible with any possible definition of `==`.
Conservatively, that means `-hash` must return a constant.
For non-Equatable types, we know that `==` is identity based,
so we can get better hash behavior by using the object address.
Caveat: This means that non-Equatable types will do two
protocol conformance checks on every call to `hash`.
2023-10-31 14:26:20 -07:00
..
2023-06-14 12:07:44 -04:00
2023-07-07 18:10:35 -04:00
2023-09-21 09:52:46 -07:00
2023-08-24 13:57:10 -07:00
2023-08-24 13:57:10 -07:00
2023-06-14 13:40:51 +01:00
2023-06-05 17:01:20 -07:00
2023-10-13 10:22:02 -07:00
2023-09-21 09:52:46 -07:00
2023-07-07 18:10:35 -04:00
2023-09-27 09:56:22 +01:00
2023-07-23 20:11:26 +05:30
2023-06-07 13:54:36 +01:00
2023-06-27 09:03:52 -07:00
2023-07-07 18:10:35 -04:00
2023-09-21 10:46:19 -07:00
2023-03-01 13:43:15 +00:00
2023-03-04 07:56:02 +00:00
2023-07-07 18:10:35 -04:00
2022-12-03 10:41:56 -05:00
2023-02-24 15:40:28 -08:00
2022-12-03 10:41:56 -05:00
2023-08-25 13:04:36 -07:00
2023-06-10 10:15:34 +00:00
2023-02-02 12:21:52 +00:00
2023-06-29 08:32:09 +00:00
2023-05-22 20:38:53 -07:00
2023-01-12 04:16:45 -08:00
2022-12-21 11:44:37 +00:00
2023-01-12 04:16:45 -08:00
2023-03-08 13:18:56 -08:00
2022-12-13 09:04:34 -05:00
2023-05-12 15:12:35 -07:00
2023-01-12 04:16:45 -08:00
2022-12-13 09:04:34 -05:00
2023-03-15 23:42:55 +09:00
2022-09-14 11:14:50 +01:00
2023-10-03 17:10:57 -04:00
2023-05-22 12:55:09 -07:00
2023-06-27 09:03:52 -07:00
2023-08-21 10:53:44 -07:00
2023-10-10 19:36:20 -07:00
2023-06-23 17:05:59 +01:00
2023-10-10 19:36:20 -07:00
2023-10-10 19:36:20 -07:00
2022-11-07 15:38:14 -05:00
2023-07-25 23:15:01 -04:00
2023-09-27 19:15:37 -07:00
2023-10-31 14:26:20 -07:00
2022-12-20 09:45:01 -08:00
2023-09-27 09:56:22 +01:00
2023-03-13 16:05:37 -04:00
2023-09-28 12:02:31 -07:00
2022-12-21 11:44:37 +00:00
2022-12-14 08:33:32 -05:00
2022-06-15 08:22:53 +01:00
2023-06-14 12:07:44 -04:00
2023-06-14 12:07:44 -04:00
2023-04-14 19:15:38 +01:00
2022-12-21 11:44:37 +00:00