63ee73a2ed
- For direct calls in selector branch, ensure 'if' branches have correct inputs. - For overrideable selectors, the receiver type cannot be known in the main module so use 'top' type. Technically we could do better if selectors tracked interfaces they targeted. Then we could take the LUB of all those classes. But this would be a significant refactor for a small benefit. - Type checks on classes defined in the main module should use the class ID ranges from the main module rather than those from the dynamic submodule. This only applies to non-dynamic module extendable types (otherwise we'd use the RTT checks). So we know the class can only exist in one of the range sets, not both. I discovered (1) from running Flutter which led me to create this test which uncovered (2) and (3). Change-Id: I80f39835f66aa7cf0cff527341e3f4a948a7a0cb Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/430360 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.