-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[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 #59880 Change-Id: Id4570cc86303f8e45a061d696e9bca0d0b2b4b81 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403951 Reviewed-by: Slava Egorov <[email protected]> Commit-Queue: Alexander Markov <[email protected]> Reviewed-by: Nate Biggs <[email protected]>
- Loading branch information
1 parent
493de63
commit 9e8e8e5
Showing
12 changed files
with
148 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters