Files
sdk/pkg/dynamic_modules
Nate Biggs 61952d4a1f [dart2wasm] Fix dynamic modules not generating code for dynamic module callable members if they are inherited by a concrete class.
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>
2025-04-28 17:51:59 -07:00
..

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.