Alexander Markov
9e8e8e5fca
[vm,dynamic_modules] Support members which are overridden implictly (transitively) by a dynamic module
...
Consider the following situation: member M1 is overridden by another
member M2; M2 is overridden in a dynamic module.
Members which can be overridden in a dynamic module (such as M2)
should be specified as 'can-be-overridden' in the dynamic interface.
Members which are overridden implicitly/transitively (such as M1)
are not required to be mentioned in the dynamic interface.
However, when determining possible targets for a call with
interface target M1, compiler should treat it as potentially
overridden in a dynamic module.
This change adds such handling to the VM/AOT. Dynamic interface
annotator now marks members such as M1 with
'dyn-module:can-be-overridden-implicitly' pragma, and
VM/AOT takes both can-be-overridden and can-be-overridden-implicitly
into account.
This change also simplifies handling of implicitly extenable classes
in the VM/AOT - now VM handles both extendable and implicitly-extendable
pragmas (from dynamic interface annotator) instead of recalculating
implicitly extendable classes on its own.
TEST=pkg/vm/test/transformations/dynamic_interface_annotator_test.dart
TEST=dynamic_modules_suite/implicitly_extendable
Fixes https://github.com/dart-lang/sdk/issues/59880
Change-Id: Id4570cc86303f8e45a061d696e9bca0d0b2b4b81
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403951
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Nate Biggs <natebiggs@google.com >
2025-01-15 08:13:52 -08:00
..
2025-01-10 00:24:29 -08:00
2024-07-23 10:43:43 +00:00
2024-12-03 20:33:49 +00:00
2023-04-17 15:58:28 +00:00
2024-03-25 10:35:49 +00:00
2024-11-05 13:50:08 +00:00
2024-11-29 20:28:45 +00:00
2023-04-20 17:42:06 +00:00
2023-06-06 02:07:58 +00:00
2023-04-10 18:15:12 +00:00
2023-05-24 08:42:14 +00:00
2023-07-03 12:29:15 +00:00
2024-10-16 21:25:17 +00:00
2024-06-18 09:10:00 +00:00
2023-09-05 21:47:59 +00:00
2024-12-04 14:36:46 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2024-08-28 08:52:19 +00:00
2024-11-13 20:20:19 +00:00
2023-04-12 22:18:54 +00:00
2024-04-17 19:14:41 +00:00
2023-03-06 22:06:59 +00:00
2024-07-26 19:26:11 +00:00
2024-08-27 12:51:26 +00:00
2024-04-11 17:55:26 +00:00
2023-04-10 18:15:12 +00:00
2024-04-19 08:10:18 +00:00
2024-04-19 08:10:18 +00:00
2024-11-08 04:36:23 +00:00
2024-12-09 15:19:43 +00:00
2024-09-11 14:18:06 +00:00
2024-10-08 17:28:49 +00:00
2023-12-15 15:25:29 +00:00
2025-01-15 08:13:52 -08:00
2025-01-15 08:13:52 -08:00
2024-08-15 14:09:52 +00:00
2024-10-24 03:24:08 +00:00
2024-06-10 20:38:30 +00:00
2024-03-13 14:33:48 +00:00
2023-06-28 11:48:26 +00:00
2023-04-10 18:15:12 +00:00
2023-10-12 16:16:21 +00:00
2024-08-26 20:35:18 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2024-11-05 22:16:59 +00:00
2023-11-28 13:15:56 +00:00
2024-01-09 20:28:55 +00:00
2023-04-10 18:15:12 +00:00
2024-12-04 14:36:46 +00:00
2024-11-12 20:28:50 +00:00
2024-09-09 13:44:04 +00:00
2023-11-30 16:42:28 +00:00
2024-08-29 16:45:00 +00:00
2024-09-12 15:15:08 +00:00
2024-09-12 15:15:08 +00:00
2024-10-28 17:08:39 +00:00
2024-11-13 00:57:46 +00:00
2024-08-29 16:45:00 +00:00
2023-09-04 14:38:27 +00:00
2023-11-28 13:15:56 +00:00
2023-06-23 20:35:00 +00:00
2023-02-27 22:26:36 +00:00
2024-02-15 23:08:48 +00:00
2023-09-12 16:22:19 +00:00
2023-06-23 20:35:00 +00:00
2023-06-23 20:35:00 +00:00
2023-06-23 20:35:00 +00:00
2024-03-14 21:48:59 +00:00
2023-05-22 16:43:04 +00:00
2023-04-10 21:38:57 +00:00
2023-04-10 21:38:57 +00:00
2023-04-10 21:38:57 +00:00
2024-03-15 19:26:13 +00:00
2024-12-04 14:36:46 +00:00
2024-12-13 08:32:21 -08:00
2024-12-13 08:32:21 -08:00
2024-08-14 17:09:07 +00:00
2023-07-26 21:53:49 +00:00
2024-04-17 19:14:41 +00:00
2024-12-03 23:24:48 +00:00
2024-08-15 14:09:52 +00:00
2024-08-15 14:09:52 +00:00
2024-12-09 23:02:48 +00:00
2024-12-09 23:02:48 +00:00
2023-04-12 22:18:54 +00:00
2024-08-19 21:46:26 +00:00
2024-01-22 16:07:39 +00:00
2024-12-04 14:36:46 +00:00
2024-10-08 17:23:43 +00:00
2024-08-19 21:46:26 +00:00
2023-04-10 18:15:12 +00:00
2024-11-15 17:33:11 +00:00
2024-11-15 17:33:11 +00:00
2023-11-07 16:13:11 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2024-10-02 19:39:00 +00:00
2023-05-31 08:06:08 +00:00
2024-11-19 17:49:09 +00:00
2024-09-11 12:51:23 +00:00
2024-12-04 14:36:46 +00:00
2024-11-15 16:46:03 +00:00
2024-11-15 16:46:03 +00:00
2024-11-19 08:54:03 +00:00
2024-11-19 08:54:03 +00:00
2023-12-15 15:25:29 +00:00
2023-12-15 15:25:29 +00:00
2024-04-17 19:14:41 +00:00
2024-06-20 17:08:10 +00:00
2024-06-20 17:08:10 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2025-01-08 00:26:40 -08:00
2023-04-10 18:15:12 +00:00
2025-01-08 00:26:40 -08:00
2025-01-08 00:26:40 -08:00
2023-10-20 19:45:49 +00:00
2024-08-15 14:09:52 +00:00
2024-10-28 22:41:39 +00:00
2024-04-17 19:14:41 +00:00
2023-02-06 22:19:55 +00:00
2023-04-10 18:15:12 +00:00
2023-06-23 20:35:00 +00:00
2023-06-23 20:35:00 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2024-04-17 19:14:41 +00:00
2024-04-17 19:14:41 +00:00
2024-06-27 18:29:58 +00:00
2024-10-02 19:39:00 +00:00
2024-08-27 19:03:02 +00:00
2023-11-28 13:15:56 +00:00
2023-04-12 22:18:54 +00:00
2023-11-28 13:15:56 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-11-28 13:15:56 +00:00
2023-04-12 22:18:54 +00:00
2024-04-17 19:14:41 +00:00
2023-04-12 22:18:54 +00:00
2024-12-13 06:29:44 -08:00
2024-09-09 13:44:04 +00:00
2024-12-04 14:36:46 +00:00
2024-12-19 11:03:59 -08:00
2024-10-07 22:29:49 +00:00
2024-12-04 14:36:46 +00:00
2024-12-17 13:30:50 -08:00
2024-12-17 13:30:50 -08:00
2024-08-28 16:41:50 +00:00
2024-08-28 16:41:50 +00:00
2024-12-04 14:36:46 +00:00
2024-03-20 20:08:13 +00:00
2023-04-17 15:58:28 +00:00
2024-04-17 19:14:41 +00:00
2024-12-18 06:10:31 -08:00
2025-01-02 14:27:39 -08:00
2024-06-10 20:38:30 +00:00
2025-01-15 08:13:52 -08:00
2025-01-15 08:13:52 -08:00
2024-04-17 19:14:41 +00:00
2024-04-17 19:14:41 +00:00
2024-08-19 14:04:47 +00:00
2024-08-19 14:04:47 +00:00
2023-04-10 18:15:12 +00:00
2023-04-20 17:42:06 +00:00
2023-04-10 18:15:12 +00:00
2023-06-29 08:04:20 +00:00
2023-06-29 08:04:20 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2024-09-12 15:16:12 +00:00
2024-09-12 15:16:12 +00:00
2024-09-12 15:16:12 +00:00
2024-08-19 21:46:26 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-07-26 21:53:49 +00:00
2023-03-29 19:58:33 +00:00
2024-02-14 22:56:49 +00:00
2023-03-29 19:58:33 +00:00
2023-04-10 18:15:12 +00:00
2024-12-02 18:13:44 +00:00
2024-08-27 19:03:02 +00:00
2024-08-19 21:46:26 +00:00
2024-08-14 17:09:07 +00:00
2023-09-20 16:08:51 +00:00
2024-09-18 21:07:59 +00:00
2024-09-18 21:07:59 +00:00
2024-05-16 16:33:52 +00:00
2024-05-02 16:36:20 +00:00
2024-05-02 16:36:20 +00:00
2024-10-16 21:25:17 +00:00
2023-02-23 03:11:08 +00:00
2023-04-10 18:15:12 +00:00
2024-12-10 21:48:58 +00:00
2023-12-14 22:48:49 +00:00
2024-09-25 17:28:44 +00:00
2024-08-28 16:41:50 +00:00
2024-08-28 16:41:50 +00:00
2024-10-07 22:29:49 +00:00
2024-08-15 14:09:52 +00:00
2024-08-19 14:04:47 +00:00
2024-12-18 14:04:01 -08:00
2025-01-08 00:26:40 -08:00
2025-01-15 08:13:52 -08:00
2025-01-15 08:13:52 -08:00
2024-11-11 17:47:40 +00:00
2024-11-11 17:47:40 +00:00
2024-11-11 17:47:40 +00:00
2024-04-19 08:10:18 +00:00
2023-04-10 18:15:12 +00:00
2024-09-24 22:41:40 +00:00
2024-08-07 12:59:35 +00:00
2024-09-24 22:41:40 +00:00
2024-08-07 12:59:35 +00:00
2024-09-24 22:41:40 +00:00
2024-08-07 12:59:35 +00:00
2024-09-24 22:41:40 +00:00
2024-08-07 12:59:35 +00:00
2024-09-24 22:41:40 +00:00
2024-08-07 12:59:35 +00:00
2024-09-24 22:41:40 +00:00
2024-08-07 12:59:35 +00:00
2024-10-08 20:36:14 +00:00
2024-09-24 22:41:40 +00:00
2024-03-11 20:14:49 +00:00
2024-04-19 08:10:18 +00:00
2024-04-19 08:10:18 +00:00
2024-12-18 09:30:10 -08:00
2023-08-04 11:07:46 +00:00
2024-04-15 11:10:23 +00:00
2024-04-15 11:10:23 +00:00
2023-12-15 16:48:37 +00:00
2024-09-12 15:16:12 +00:00
2023-08-09 06:01:55 +00:00
2024-12-04 17:55:19 +00:00
2024-09-12 15:16:12 +00:00
2023-04-10 18:15:12 +00:00
2024-05-02 16:36:20 +00:00
2024-04-17 19:14:41 +00:00
2024-12-04 14:36:46 +00:00
2024-07-10 16:31:19 +00:00
2024-06-12 20:22:41 +00:00
2024-04-17 19:14:41 +00:00
2024-04-17 19:14:41 +00:00
2024-08-07 12:59:35 +00:00
2023-08-01 15:50:11 +00:00
2024-08-15 14:09:52 +00:00
2024-10-16 21:25:17 +00:00
2024-10-28 22:41:39 +00:00
2022-12-29 10:18:02 +00:00
2023-04-12 22:18:54 +00:00
2024-06-06 10:56:12 +00:00
2024-06-06 10:56:12 +00:00
2024-08-15 14:09:52 +00:00
2023-04-12 22:18:54 +00:00
2024-10-16 21:25:17 +00:00
2024-12-19 11:03:59 -08:00
2024-08-15 14:09:52 +00:00
2023-04-10 18:15:12 +00:00
2024-12-18 09:30:10 -08:00
2024-12-18 09:30:10 -08:00
2024-08-29 14:48:58 +00:00
2024-12-04 14:36:46 +00:00
2024-06-10 20:38:30 +00:00
2024-12-04 14:36:46 +00:00
2025-01-08 14:51:12 -08:00
2024-09-25 17:28:44 +00:00
2023-09-27 15:11:05 +00:00
2023-06-23 17:01:58 +00:00
2023-01-06 07:48:22 +00:00
2023-09-27 15:11:05 +00:00
2024-11-27 18:04:59 +00:00
2024-11-26 19:24:31 +00:00
2024-11-26 19:24:31 +00:00
2024-11-26 19:24:31 +00:00
2024-11-26 19:24:31 +00:00
2024-11-26 19:24:31 +00:00
2024-11-26 19:24:31 +00:00
2023-07-11 15:13:58 +00:00
2023-04-12 22:18:54 +00:00
2024-12-04 14:36:46 +00:00
2023-04-10 18:15:12 +00:00
2024-04-12 15:42:47 +00:00
2024-08-28 16:41:50 +00:00
2024-06-17 10:47:58 +00:00
2024-03-05 21:48:00 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2024-08-15 14:09:52 +00:00
2023-04-12 22:18:54 +00:00
2024-12-04 14:36:46 +00:00
2023-04-12 22:18:54 +00:00
2024-08-15 14:09:52 +00:00
2024-08-15 14:09:52 +00:00
2024-09-09 13:44:04 +00:00
2024-08-15 14:09:52 +00:00
2024-10-08 13:56:45 +00:00
2024-10-08 13:56:45 +00:00
2024-09-23 23:36:48 +00:00
2024-04-17 19:14:41 +00:00
2024-12-09 22:02:56 +00:00
2024-08-26 22:14:39 +00:00
2024-04-19 19:46:47 +00:00
2024-08-15 14:09:52 +00:00
2023-04-12 22:18:54 +00:00
2024-08-07 16:39:10 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-02-21 19:07:57 +00:00
2023-10-09 17:23:23 +00:00
2023-09-27 15:11:05 +00:00
2023-09-27 15:11:05 +00:00
2024-09-12 15:16:12 +00:00
2024-09-24 22:41:40 +00:00
2024-09-12 15:16:12 +00:00
2024-06-17 21:43:32 +00:00
2024-01-26 18:58:54 +00:00
2024-12-17 13:30:50 -08:00
2024-04-17 19:14:41 +00:00
2023-04-10 18:15:12 +00:00
2024-04-17 19:14:41 +00:00
2024-11-12 20:28:50 +00:00
2024-12-03 23:24:48 +00:00
2024-12-03 23:24:48 +00:00
2023-04-10 18:15:12 +00:00
2024-04-17 19:14:41 +00:00
2023-04-10 18:15:12 +00:00
2024-01-25 08:23:51 +00:00
2023-07-10 20:33:33 +00:00
2024-12-10 22:28:49 +00:00
2024-12-10 22:28:49 +00:00
2024-04-17 19:14:41 +00:00
2023-02-20 14:57:57 +00:00
2023-09-27 16:23:38 +00:00
2024-09-20 14:47:49 +00:00
2025-01-08 00:26:40 -08:00
2024-11-12 20:28:50 +00:00
2023-04-17 16:26:35 +00:00
2023-04-12 22:18:54 +00:00
2024-03-20 20:08:13 +00:00
2024-10-28 17:08:39 +00:00
2024-11-12 20:28:50 +00:00
2024-02-23 04:13:39 +00:00
2024-04-17 19:14:41 +00:00
2023-05-11 03:14:27 +00:00
2023-10-31 19:39:51 +00:00
2024-04-17 19:14:41 +00:00
2024-06-14 23:24:19 +00:00
2024-06-14 23:24:19 +00:00
2024-08-07 12:59:35 +00:00
2023-06-23 20:35:00 +00:00
2024-01-09 12:36:55 +00:00
2024-02-16 01:05:49 +00:00
2023-11-03 07:36:25 +00:00
2024-02-16 01:05:49 +00:00
2024-01-09 12:36:55 +00:00
2024-01-09 12:36:55 +00:00
2024-05-07 17:04:29 +00:00
2024-12-20 11:30:51 -08:00
2023-06-07 19:01:51 +00:00
2024-08-07 12:59:35 +00:00
2024-04-17 19:14:41 +00:00