Skip to content

[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

Closed
Tracked by #52684
itsjustkevin opened this issue Aug 19, 2022 · 2 comments
Closed
Tracked by #52684

[Extension type] VM implementation #49737

itsjustkevin opened this issue Aug 19, 2022 · 2 comments
Assignees
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. P2 A bug or feature request we're likely to work on triaged Issue has been triaged by sub team

Comments

@itsjustkevin
Copy link
Contributor

No description provided.

@alexmarkov alexmarkov assigned alexmarkov and unassigned a-siva Oct 18, 2022
@lrhn lrhn added the area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. label Oct 19, 2022
@a-siva a-siva added P2 A bug or feature request we're likely to work on vm-triaged labels Nov 4, 2022
@a-siva a-siva added triaged Issue has been triaged by sub team and removed vm-triaged labels Dec 20, 2022
@eernstg
Copy link
Member

eernstg commented Mar 6, 2023

Please note that this feature has been renamed: It is now the 'inline class' feature.

@itsjustkevin itsjustkevin changed the title [Views] VM implementation [Inline Class] VM implementation Mar 6, 2023
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]>
@itsjustkevin itsjustkevin changed the title [Inline Class] VM implementation [Extension type] VM implementation Jul 25, 2023
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]>
@a-siva a-siva added this to the Dart 3.3 Stable milestone Nov 20, 2023
@alexmarkov
Copy link
Contributor

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
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. P2 A bug or feature request we're likely to work on triaged Issue has been triaged by sub team
Projects
None yet
Development

No branches or pull requests

5 participants