Parker Schuh
4e39e59a8a
Add a field reflection function that constructs keypaths. ( #34815 )
...
While the existing _forEachField in ReflectionMirror.swift
already gives the offsets and types for each field, this isn't
enough information to construct a keypath for that field in
order to modify it.
For reference, this should be sufficent to implement the features
described here: (https://forums.swift.org/t/storedpropertyiterable/19218/62 )
purely at runtime without any derived conformances for many types.
Note: Since there isn't enough reflection information for
`.mutatingGetSet` fields, this means that we're not able to support
reflecting certain types of fields (functions, nonfinal class fields,
etc). Whether this is an error or not is controlled by the `.ignoreUnknown`
option.
2020-11-30 09:17:23 -08:00
..
2019-07-18 20:46:07 +01:00
2020-02-05 20:30:33 -05:00
2020-10-24 18:17:52 -07:00
2019-05-30 17:55:37 -07:00
2020-11-09 15:30:23 +01:00
2020-05-29 08:46:54 +02:00
2018-11-14 13:22:51 -08:00
2020-09-28 15:54:46 -07:00
2020-10-26 17:02:33 -07:00
2018-10-03 12:01:28 -07:00
2019-07-18 20:46:07 +01:00
2019-07-17 17:41:59 +02:00
2019-07-16 14:51:18 +02:00
2020-02-08 07:37:10 +00:00
2020-09-11 08:09:14 -07:00
2020-07-01 03:06:32 -05:00
2019-05-30 17:55:37 -07:00
2020-07-06 23:45:31 +02:00
2020-04-16 10:17:16 -07:00
2020-06-08 15:02:22 +02:00
2020-09-09 18:57:58 -04:00
2020-11-13 10:41:25 +01:00
2019-12-07 11:05:44 -05:00
2020-07-07 00:00:21 +02:00
2020-04-29 23:34:30 +02:00
2020-08-10 14:06:46 -04:00
2020-11-16 10:16:12 +05:30
2019-07-18 20:46:07 +01:00
2020-11-19 09:36:03 -05:00
2020-06-28 10:45:46 -07:00
2020-11-04 16:49:18 -06:00
2019-07-09 14:46:20 -07:00
2019-07-18 20:46:07 +01:00
2019-06-19 15:47:17 -07:00
2019-07-18 20:46:07 +01:00
2020-08-07 16:48:40 -04:00
2020-10-26 17:02:33 -07:00
2020-11-09 15:30:23 +01:00
2020-04-09 13:38:28 -07:00
2020-04-29 16:43:27 -07:00
2020-11-19 09:36:03 -05:00
2020-08-27 11:06:40 -07:00
2020-05-01 16:01:15 -07:00
2019-09-12 18:03:14 -07:00
2019-05-30 17:55:37 -07:00
2019-04-02 13:10:55 -07:00
2020-02-14 11:57:52 -05:00
2020-02-08 07:37:10 +00:00
2020-02-23 12:05:39 -05:00
2020-11-18 11:16:26 -06:00
2019-05-30 17:55:37 -07:00
2020-05-28 10:51:57 -07:00
2020-06-01 14:01:22 +03:00
2019-07-18 20:46:07 +01:00
2018-09-25 15:25:13 -07:00
2019-12-11 07:30:25 -08:00
2020-05-08 06:03:49 +01:00
2020-05-08 06:03:49 +01:00
2019-12-07 11:05:45 -05:00
2018-11-14 10:05:58 -08:00
2019-07-18 20:46:07 +01:00
2020-10-05 12:14:27 -04:00
2020-11-19 09:36:03 -05:00
2020-08-18 18:12:35 -04:00
2020-11-19 09:36:03 -05:00
2020-08-18 18:12:35 -04:00
2019-07-18 20:46:07 +01:00
2020-02-08 07:37:10 +00:00
2019-09-12 18:03:14 -07:00
2019-05-30 17:55:37 -07:00
2018-11-15 11:06:30 -08:00
2020-05-02 13:04:20 -07:00
2020-05-26 16:23:08 -04:00
2019-02-05 03:43:00 +00:00
2019-07-18 20:46:07 +01:00
2020-10-19 17:55:50 +11:00
2020-11-19 09:36:03 -05:00
2019-07-18 20:46:07 +01:00
2020-11-30 09:17:23 -08:00
2020-05-01 21:23:44 +02:00
2019-07-18 20:46:07 +01:00
2019-09-26 13:25:15 -05:00
2020-03-05 16:10:23 -08:00
2018-11-04 10:42:41 -08:00
2020-09-09 18:57:58 -04:00
2019-07-18 20:46:07 +01:00
2020-05-01 22:52:34 +02:00
2019-11-03 08:42:26 -08:00
2020-05-28 10:51:57 -07:00
2019-12-07 11:05:45 -05:00
2020-09-14 18:16:38 +01:00
2020-11-04 16:49:18 -06:00
2020-01-24 22:37:14 +01:00
2019-11-15 14:32:13 -05:00
2019-07-18 20:46:07 +01:00
2020-10-23 15:13:03 -05:00
2019-07-18 20:46:07 +01:00
2019-11-21 14:55:39 +09:00
2020-09-08 13:36:21 -05:00
2020-07-15 17:27:33 -07:00
2020-04-13 12:23:26 -07:00
2019-08-28 13:37:00 -05:00
2020-06-08 14:57:50 -07:00
2019-07-18 20:46:07 +01:00
2020-02-27 16:10:31 -08:00
2019-11-15 10:38:44 -06:00
2019-07-18 20:46:07 +01:00
2020-08-10 14:06:46 -04:00
2020-11-04 16:49:18 -06:00
2020-11-04 16:49:18 -06:00
2020-02-22 15:33:03 -06:00
2020-11-30 09:17:23 -08:00
2019-05-30 17:55:37 -07:00
2018-11-08 06:45:20 -08:00
2020-07-29 21:57:51 +02:00
2020-05-02 13:45:56 +02:00
2020-11-19 09:36:03 -05:00
2019-11-22 13:44:56 -05:00
2020-06-21 22:54:00 +02:00
2020-05-24 10:59:47 +02:00
2020-05-15 06:55:07 +02:00
2020-05-29 08:46:54 +02:00
2019-07-18 20:46:07 +01:00
2019-12-16 15:43:16 -08:00
2019-05-30 17:55:37 -07:00
2019-04-02 13:10:55 -07:00
2020-02-14 11:57:52 -05:00
2020-02-08 07:37:10 +00:00
2019-12-16 15:43:16 -08:00
2020-04-27 15:52:37 -04:00
2019-09-12 21:31:36 -07:00
2020-11-19 09:36:03 -05:00
2019-05-30 17:55:37 -07:00
2020-05-11 23:42:24 +02:00
2020-11-09 15:30:23 +01:00
2020-09-24 18:36:42 -07:00
2019-12-11 19:23:46 -08:00
2020-08-06 23:44:55 +01:00
2019-07-18 20:46:07 +01:00
2020-07-27 21:32:56 +02:00
2020-03-05 16:10:23 -08:00
2020-09-24 18:36:42 -07:00
2019-07-12 15:58:27 -07:00
2020-07-09 18:05:25 +02:00
2019-05-30 17:55:37 -07:00
2020-04-09 13:38:28 -07:00
2020-02-28 23:32:05 +01:00
2020-09-24 18:36:42 -07:00
2020-03-06 08:54:24 -08:00
2019-02-13 18:42:40 -08:00
2019-07-18 20:46:07 +01:00
2019-07-12 15:58:27 -07:00
2019-07-12 16:30:36 -04:00
2020-07-27 21:32:56 +02:00
2019-07-18 20:46:07 +01:00
2019-12-11 19:23:46 -08:00
2020-09-01 19:09:39 -04:00
2019-07-18 20:46:07 +01:00
2019-07-18 20:46:07 +01:00
2020-04-27 15:52:37 -04:00
2020-04-15 12:30:20 -07:00
2019-12-11 19:23:46 -08:00
2020-04-24 12:13:41 -07:00
2020-04-26 22:08:27 +02:00
2019-05-26 09:35:20 +09:00
2020-05-03 12:32:24 +02:00
2020-04-27 23:54:04 +02:00
2020-07-16 12:46:42 +02:00
2019-10-23 00:19:06 -07:00
2019-03-05 12:05:00 +11:00
2020-05-31 14:23:07 -07:00
2019-07-18 20:46:07 +01:00
2019-12-07 11:05:45 -05:00
2019-07-18 20:46:07 +01:00
2019-07-18 20:46:07 +01:00
2019-07-18 20:46:07 +01:00
2020-04-17 22:51:28 +02:00
2019-07-18 20:46:07 +01:00
2020-05-03 13:01:40 +02:00
2020-07-01 15:47:18 -07:00
2020-02-25 15:46:19 -08:00
2018-11-04 10:42:40 -08:00
2018-11-04 10:42:40 -08:00
2020-05-13 13:11:29 -07:00
2020-04-25 22:51:37 +02:00
2020-04-23 18:45:00 +02:00
2020-04-25 21:04:15 +02:00
2019-07-18 20:46:07 +01:00
2020-05-04 12:52:46 -05:00
2019-07-18 20:46:07 +01:00
2019-07-18 20:46:07 +01:00
2019-07-18 20:46:07 +01:00
2020-08-22 13:08:12 +09:00
2019-07-18 20:46:07 +01:00
2019-07-18 20:46:07 +01:00