-
Notifications
You must be signed in to change notification settings - Fork 1.7k
[Extension type] VM implementation #49737
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels
Milestone
Comments
Please note that this feature has been renamed: It is now the 'inline class' feature. |
copybara-service bot
pushed a commit
that referenced
this issue
Jun 7, 2023
TEST=pkg/vm/testcases/transformations/type_flow/transformer/inline_class.dart Issue: #49737 Change-Id: I48faba0767994d254590b311380245718895173e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/307661 Commit-Queue: Alexander Markov <[email protected]> Reviewed-by: Martin Kustermann <[email protected]> Reviewed-by: Slava Egorov <[email protected]>
copybara-service bot
pushed a commit
that referenced
this issue
Jun 7, 2023
Specification of inline classes has the following rule for closurization (tear-off creation) of inline class members: > The operator == of the closurization returns true if and only if > the operand is the same object. This means that each time tear-off is taken, a new closure should be created which compares equal only to itself. This is true iff that closure has a non-empty context which captures 'this'. Signature shaking can remove 'this' parameter if it is not used and this affects equality of the tear-offs of inline class members. This change prevents that by marking 'this' parameter of inline class members as checked. TEST=co19/LanguageFeatures/Inline-classes/dynamic_semantics_member_invocation_A02_t03 TEST=co19/LanguageFeatures/Inline-classes/dynamic_semantics_member_invocation_A03_t03 Issue: #49737 Change-Id: I4cf4f5afdb6c83a1b1eccf587cafcf9a9ca5178a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/307665 Commit-Queue: Alexander Markov <[email protected]> Reviewed-by: Johnni Winther <[email protected]> Reviewed-by: Martin Kustermann <[email protected]>
24 tasks
copybara-service bot
pushed a commit
that referenced
this issue
Sep 18, 2023
…nt is an extension type This change improves handling of extension types when they are used in the generic types involved in parameter type checks. Instead of treating extension types as unknown opaque types, TFA now uses their type erasures. TEST=pkg/vm/testcases/transformations/type_flow/transformer/extension_type.dart Fixes #53542 Issue #49737 Change-Id: I04bb8f1940c0983b6c09403df577b89f5de4a81d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/326681 Reviewed-by: Ryan Macnak <[email protected]> Commit-Queue: Alexander Markov <[email protected]>
copybara-service bot
pushed a commit
that referenced
this issue
Oct 31, 2023
…literals TEST=pkg/vm/testcases/transformations/type_flow/transformer/extension_type.dart TEST=co19/LanguageFeatures/Extension-types/superinterfaces_of_extension_type_A08_t02 Fixes #53812 Issue: #49737 Change-Id: I80237a1240905a52805f5b3e7bd857ed96773609 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/332450 Reviewed-by: Slava Egorov <[email protected]> Reviewed-by: Martin Kustermann <[email protected]> Reviewed-by: Johnni Winther <[email protected]> Commit-Queue: Alexander Markov <[email protected]>
All runtime tests for extension types are now passing on the VM. The remaining debugging/expression evaluation support is tracked separately in #49747. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
No description provided.
The text was updated successfully, but these errors were encountered: