Guillaume Gomez
27dc222fb4
Rollup merge of #136901 - workingjubilee:stabilize-externabi-hashing-forever, r=compiler-errors
...
compiler: give `ExternAbi` truly stable `Hash` and `Ord`
Currently, `ExternAbi` has a bunch of code to handle the reality that, as an enum, adding more variants to it will risk it hashing differently. It forces all of those variants to be added in a fixed order, except this means that the order of the variants doesn't correspond to any logical order except "historical accident". This is all to avoid having to rebless two tests. Perhaps there were more, once upon a time? But then we invented normalization in our test suite to handle exactly this sort of issue in a more general way.
There are two options here:
- Get rid of all the logical overhead and shrug, embracing blessing a couple of tests sometimes
- Change `ExternAbi` to have an ordering and hash that doesn't depend on the number of variants
As `ExternAbi` is essentially a strongly-typed string, and thus no two strings can be identical, this implements the second of the two by hand-implementing `Ord` and `Hash` to make the hashing and comparison based on the string! This will diff the current hashes, but they will diff no more after this.
2025-02-12 20:30:55 +01:00
..
2025-02-09 20:45:47 -08:00
2025-01-23 20:51:29 +08:00
2024-10-10 01:13:29 +02:00
2024-11-27 07:18:25 -08:00
2025-02-10 20:21:39 +00:00
2024-12-27 19:58:16 +11:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-11 18:04:34 +01:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-11 22:59:57 +00:00
2025-02-10 20:21:39 +00:00
2025-01-06 17:58:30 +00:00
2024-11-27 07:18:25 -08:00
2024-11-26 02:50:48 +08:00
2024-12-05 23:52:21 +00:00
2025-01-23 20:51:29 +08:00
2024-11-26 02:50:48 +08:00
2025-02-06 22:28:44 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-12-20 02:38:46 +08:00
2025-02-11 19:24:07 +00:00
2025-01-23 20:51:29 +08:00
2025-02-10 20:21:39 +00:00
2024-12-07 21:37:13 +00:00
2025-02-11 17:22:27 -08:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-11 17:22:27 -08:00
2025-02-06 23:44:23 +01:00
2025-02-10 20:21:39 +00:00
2025-01-31 20:39:01 +00:00
2025-01-26 21:20:31 +01:00
2025-01-23 20:51:29 +08:00
2025-02-10 20:21:39 +00:00
2024-12-28 13:57:13 +11:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-12-04 20:29:35 +00:00
2025-02-11 19:16:12 +00:00
2025-02-02 15:07:13 +01:00
2025-02-10 20:21:39 +00:00
2025-02-11 01:02:43 -05:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-03 19:38:52 +00:00
2024-12-02 18:43:37 +01:00
2024-12-09 21:06:29 +08:00
2025-02-09 10:05:13 -06:00
2025-01-24 01:19:50 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-01-14 16:16:38 +01:00
2025-02-09 20:40:43 +08:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-12-10 11:29:43 +08:00
2025-02-06 13:09:59 +01:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-01-21 06:59:15 -07:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-06 23:44:23 +01:00
2024-11-26 02:50:48 +08:00
2025-02-03 13:12:41 -08:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-11 17:22:27 -08:00
2025-02-02 02:39:43 +00:00
2024-12-27 19:58:16 +11:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-11 05:27:49 +00:00
2025-02-03 19:00:22 +00:00
2025-02-11 10:17:02 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-12-12 23:36:27 +00:00
2025-02-06 22:28:44 +00:00
2025-02-10 20:21:39 +00:00
2025-01-24 01:19:50 +00:00
2024-12-19 10:56:31 +00:00
2025-02-10 20:21:39 +00:00
2024-11-26 02:50:48 +08:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-12-31 23:46:39 +08:00
2024-12-31 23:46:39 +08:00
2025-02-12 06:07:36 +01:00
2025-02-10 20:21:39 +00:00
2024-11-27 07:18:25 -08:00
2025-02-10 20:21:39 +00:00
2024-10-08 11:15:24 +08:00
2024-10-29 16:26:57 +00:00
2024-11-03 13:55:52 -08:00
2024-12-17 13:56:10 +11:00
2025-02-09 20:45:47 -08:00
2025-02-10 20:21:39 +00:00
2025-02-12 04:41:14 +02:00
2024-12-27 19:58:16 +11:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-03 19:43:24 +00:00
2025-01-24 01:19:50 +00:00
2025-01-26 21:20:31 +01:00
2025-02-10 20:21:39 +00:00
2025-02-03 19:00:22 +00:00
2025-01-27 00:37:34 +01:00
2025-02-03 03:43:14 +01:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-12-27 19:58:16 +11:00
2025-02-11 19:42:47 -08:00
2025-02-07 16:02:19 +00:00
2025-02-12 10:46:40 +01:00
2025-01-23 14:32:21 -05:00
2025-02-10 20:21:39 +00:00
2025-02-08 16:33:36 +00:00
2024-12-12 23:36:27 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-11-22 17:02:04 +11:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-12-07 21:29:58 +00:00
2025-01-22 00:52:27 +00:00
2025-01-24 01:19:50 +00:00
2025-02-10 20:21:39 +00:00
2025-01-28 19:35:51 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-01-30 21:33:11 -07:00
2025-02-11 19:24:07 +00:00
2024-10-29 16:26:57 +00:00
2025-02-06 22:28:44 +00:00
2025-02-10 20:21:39 +00:00
2024-11-26 02:50:48 +08:00
2025-02-10 20:21:39 +00:00
2025-01-07 16:04:14 +01:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-11-26 02:50:48 +08:00
2024-12-27 19:58:16 +11:00
2025-02-10 20:21:39 +00:00
2025-01-23 20:51:29 +08:00
2025-02-03 22:27:17 +08:00
2025-01-26 13:55:59 +00:00
2025-02-11 19:42:47 -08:00
2025-02-10 20:21:39 +00:00
2024-11-03 13:55:52 -08:00
2024-10-19 12:40:12 +00:00
2025-01-21 06:59:15 -07:00
2024-12-27 19:58:16 +11:00
2025-02-10 20:21:39 +00:00
2025-02-11 19:42:47 -08:00
2025-02-07 10:43:50 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-01-06 08:54:27 +01:00
2025-01-30 20:37:56 -07:00
2024-12-14 06:44:05 +00:00
2025-01-23 20:51:29 +08:00
2025-01-30 17:10:19 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-06 21:56:24 +01:00
2025-02-10 20:21:39 +00:00
2024-12-12 23:36:27 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-01-23 20:51:29 +08:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-01-27 02:28:04 +01:00
2024-12-17 13:56:10 +11:00
2025-02-06 23:44:23 +01:00
2025-02-11 05:27:49 +00:00
2025-01-23 20:51:29 +08:00
2025-02-10 20:21:39 +00:00
2024-11-23 08:57:25 -07:00
2025-02-10 20:21:39 +00:00
2025-01-27 02:28:04 +01:00
2025-02-10 20:21:39 +00:00
2025-01-27 23:42:47 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-01-01 19:32:51 +00:00
2025-01-23 20:51:29 +08:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-12-27 19:58:16 +11:00
2025-02-11 20:18:01 -08:00
2024-10-29 16:26:57 +00:00
2025-02-02 22:12:49 +07:00
2025-02-03 16:56:51 +01:00
2025-02-10 20:21:39 +00:00
2025-01-29 15:45:13 +00:00
2024-12-25 10:36:32 +01:00
2025-02-03 10:39:32 -05:00
2025-01-24 01:19:50 +00:00
2025-01-01 15:58:29 +01:00
2025-02-10 20:21:39 +00:00
2025-02-12 20:30:52 +01:00
2025-02-10 20:21:39 +00:00
2024-12-27 19:58:16 +11:00
2025-01-27 02:28:04 +01:00
2024-11-02 03:08:04 +00:00
2024-11-02 03:08:04 +00:00
2025-02-10 20:21:39 +00:00
2025-02-11 08:51:05 +00:00
2025-02-10 20:21:39 +00:00
2025-02-11 23:47:56 +00:00
2025-02-10 20:21:39 +00:00
2025-02-03 19:51:20 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-11-27 07:18:25 -08:00
2025-02-10 20:21:39 +00:00
2025-01-27 02:28:04 +01:00
2025-02-10 20:21:39 +00:00
2024-12-18 19:27:44 +00:00
2024-12-07 21:37:13 +00:00
2025-02-11 08:51:05 +00:00
2025-02-10 20:21:39 +00:00
2024-12-15 20:28:16 -08:00
2025-01-31 17:40:28 +00:00
2024-12-07 20:50:00 +00:00
2025-02-10 20:21:39 +00:00
2024-10-29 16:26:57 +00:00
2025-01-21 19:46:20 +00:00
2025-01-11 22:36:25 +01:00
2025-02-10 20:21:39 +00:00
2025-01-23 10:55:01 +00:00
2025-02-10 20:21:39 +00:00
2025-02-03 19:00:22 +00:00
2025-02-04 21:42:43 +05:30
2025-01-31 09:59:41 +01:00
2025-01-31 09:59:41 +01:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2025-01-23 16:45:19 -08:00
2025-01-23 16:45:19 -08:00
2025-01-23 20:51:29 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-12-27 19:58:16 +11:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2025-02-10 20:21:39 +00:00
2024-11-26 02:50:48 +08:00
2024-11-18 08:07:46 +01:00
2024-11-03 13:55:52 -08:00
2024-10-28 14:20:28 +11:00
2024-10-28 14:20:28 +11:00
2024-11-26 02:50:48 +08:00
2025-01-21 06:59:15 -07:00
2024-11-28 14:32:45 -08:00
2024-11-26 02:50:48 +08:00
2024-10-15 13:11:00 +02:00
2025-01-03 05:01:14 +00:00
2024-11-02 03:08:04 +00:00
2025-01-08 00:28:47 +00:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2025-02-03 10:39:32 -05:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-10-29 16:26:57 +00:00
2024-11-21 03:27:05 -08:00
2024-10-29 16:26:57 +00:00
2025-01-06 03:55:19 +00:00
2025-01-06 03:55:19 +00:00
2024-10-29 16:26:57 +00:00
2025-02-10 20:21:39 +00:00
2024-11-06 20:02:42 +01:00
2024-11-06 20:02:42 +01:00
2024-11-13 20:29:40 -08:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-12-07 21:29:58 +00:00
2025-02-10 20:21:39 +00:00
2025-01-16 00:26:55 +01:00
2025-01-23 20:51:29 +08:00
2024-11-26 02:50:48 +08:00
2024-12-02 03:43:50 -07:00
2024-11-12 22:34:31 +01:00
2024-11-23 09:15:25 +01:00
2024-11-14 22:14:11 +09:00
2024-11-23 09:15:25 +01:00
2024-11-23 09:15:25 +01:00
2024-11-23 09:15:25 +01:00
2024-11-24 09:54:04 +01:00
2024-11-24 09:54:04 +01:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-12 22:34:31 +01:00
2024-11-23 09:15:25 +01:00
2025-01-23 20:51:29 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2025-02-06 22:28:44 +00:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2025-01-30 17:10:19 +00:00
2025-01-30 17:10:19 +00:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-10-28 14:20:28 +11:00
2024-10-28 14:20:28 +11:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-12-27 19:58:16 +11:00
2024-11-26 02:50:48 +08:00
2025-02-10 20:21:39 +00:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-10-30 16:47:47 -07:00
2025-02-06 15:05:53 -05:00
2025-02-06 22:28:44 +00:00