61952d4a1f
Prior to this we were using the dispatch table to get the class IDs in order to register the callable references via `recordClassTargetUse`. However, the dispatch table only contains concrete classes. A callable member may exist on an abstract class with no concrete subclasses. In this case the dispatch table would not contain any classes and the code for the member would never get generated. This is problematic when the abstract class (or a subclass) is dynamic module extendable. Then the callable member could be inherited onto a subclass in the dynamic module. Also makes sure to mark members that are callable AND overrideable as invoked so that the updateable dispatch mechanism registers the member. Change-Id: Icc079f76ab300aa761a47c8fbe24b8d9583d0da7 Fixes: https://github.com/dart-lang/sdk/issues/60602 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/423260 Reviewed-by: Martin Kustermann <kustermann@google.com> Commit-Queue: Nate Biggs <natebiggs@google.com>
This package contains experimental dynamic modules API.
Status: experimental
NOTE: This package is currently experimental and not published or included in the SDK.
Do not take dependency on this package unless you are prepared for breaking changes and possibly removal of this code at any point in time.