Nate Chandler
b8990b51e8
[IRGen] Promote generic args to complete.
...
When metadata record for a generic type is locally cached as ::Complete,
the metadata is known to be complete in that scope. If it's for a
generic type, being complete means that all of its recursive generic
arguments are also complete.
Previously, though, that fact was not exploited. So a metadata record
for such an argument which was originally obtained via an incomplete
request would remain cached in that incomplete state even when a generic
type in which it appeared as a generic argument was cached as complete.
At worst, the result was a runtime call (checkMetadataState) to promote
the complete the metadata record for the recursive argument.
Here, when a bound generic type's metadata is locally cached as
complete, its recursive generic arguments are visited; for each such
type for which a metadata record is already locally cached, the
preexisting record is recached as complete.
2023-10-27 12:04:27 -07:00
..
2023-07-25 12:28:28 -07:00
2023-08-25 10:49:21 +02:00
2023-07-17 10:53:42 -07:00
2023-07-13 11:22:35 -07:00
2023-09-20 15:07:15 -07:00
2023-10-12 18:09:52 -07:00
2023-09-12 09:44:54 -07:00
2023-06-27 09:03:52 -07:00
2023-07-25 12:28:28 -07:00
2023-10-20 16:14:52 -07:00
2023-10-20 16:14:52 -07:00
2023-09-29 08:54:49 -07:00
2023-02-24 15:40:28 -08:00
2023-07-26 23:13:08 -07:00
2023-05-25 16:28:41 +02:00
2023-05-25 16:28:41 +02:00
2023-03-15 23:42:55 +09:00
2023-07-13 11:22:35 -07:00
2023-02-24 15:40:28 -08:00
2023-08-24 17:57:10 -04:00
2023-03-10 12:52:37 -05:00
2023-08-01 15:29:40 -07:00
2023-10-09 08:44:05 -07:00
2023-10-15 23:49:40 -07:00
2023-10-09 22:43:50 -07:00
2023-07-27 15:05:49 -07:00
2023-06-27 09:03:52 -07:00
2023-10-09 20:29:03 +01:00
2023-10-06 10:25:22 -07:00
2023-06-29 06:57:05 +02:00
2023-10-09 22:43:50 -07:00
2023-03-28 15:56:28 +09:00
2023-09-19 10:28:51 +02:00
2023-05-25 16:28:41 +02:00
2023-08-01 13:10:33 -07:00
2023-05-22 17:54:17 +01:00
2023-10-23 09:26:37 -07:00
2023-06-27 09:03:52 -07:00
2023-08-01 14:09:23 -07:00
2023-10-23 09:26:37 -07:00
2023-10-19 16:16:23 -07:00
2023-09-14 12:17:06 +02:00
2023-03-28 19:21:45 -04:00
2023-09-20 11:25:39 -07:00
2023-09-06 10:48:17 -07:00
2023-09-29 08:54:49 -07:00
2023-06-27 09:03:52 -07:00
2023-08-01 15:29:40 -07:00
2023-10-03 07:13:54 -07:00
2023-07-17 10:53:42 -07:00
2023-09-20 11:25:39 -07:00
2023-09-20 11:25:39 -07:00
2023-10-06 17:15:26 -07:00
2023-10-06 10:25:22 -07:00
2023-10-07 09:34:00 -07:00
2023-08-01 15:29:40 -07:00
2023-02-27 18:52:10 -08:00
2023-08-24 17:57:10 -04:00
2023-08-24 17:57:10 -04:00
2023-09-20 11:25:39 -07:00
2023-07-07 18:10:35 -04:00
2023-09-20 11:25:39 -07:00
2023-03-28 19:21:45 -04:00
2023-08-01 14:09:23 -07:00
2023-09-21 12:13:50 -07:00
2023-10-18 13:45:50 -07:00
2023-06-27 09:03:52 -07:00
2023-08-24 17:57:10 -04:00
2023-08-24 17:57:10 -04:00
2023-08-16 07:18:10 -07:00
2023-06-27 09:03:52 -07:00
2023-10-07 19:35:15 -07:00
2023-04-20 22:05:46 -04:00
2023-02-27 18:52:10 -08:00
2023-08-04 14:19:25 -04:00
2023-02-22 10:59:47 -08:00
2023-09-25 13:23:47 -07:00
2023-02-27 18:52:50 -08:00
2023-10-20 16:14:52 -07:00
2023-06-29 08:33:53 -07:00
2023-06-27 09:03:52 -07:00
2023-10-27 12:04:27 -07:00
2023-10-05 13:11:32 -07:00
2023-08-15 12:17:31 -07:00
2023-10-07 19:35:15 -07:00
2023-10-07 19:33:54 -07:00
2023-10-15 23:49:40 -07:00
2023-10-07 19:35:15 -07:00
2023-08-12 21:21:18 -07:00
2023-05-25 16:28:41 +02:00
2023-10-27 12:04:27 -07:00
2023-10-27 12:04:27 -07:00
2023-06-27 09:03:52 -07:00
2023-02-09 20:20:53 -08:00
2023-08-24 17:57:10 -04:00
2023-10-07 09:34:00 -07:00
2023-08-03 22:12:05 -04:00
2023-03-28 21:44:53 -04:00
2023-02-27 18:52:50 -08:00
2023-09-22 22:54:25 -07:00
2023-08-04 15:09:50 -07:00
2023-07-27 14:02:18 -07:00
2023-02-27 18:52:50 -08:00
2023-03-07 23:19:25 -05:00
2023-06-27 09:03:52 -07:00
2023-05-25 16:28:41 +02:00
2023-02-23 19:53:16 -08:00
2023-10-19 16:16:23 -07:00
2023-08-01 14:09:23 -07:00
2023-02-24 15:40:28 -08:00
2023-07-17 10:53:42 -07:00
2023-07-17 10:53:42 -07:00
2023-10-05 11:40:53 -07:00
2023-10-05 11:13:06 -07:00
2023-06-08 18:26:34 +01:00
2023-09-21 15:22:08 -07:00
2023-06-27 09:03:52 -07:00
2023-06-27 09:03:52 -07:00
2023-02-27 18:52:10 -08:00