dart-sdk/pkg/vm
Alexander Markov 5b6512f54e [vm/aot] Disable signature shaking for 'this' of inline class members
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: https://github.com/dart-lang/sdk/issues/49737
Change-Id: I4cf4f5afdb6c83a1b1eccf587cafcf9a9ca5178a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/307665
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2023-06-07 16:02:13 +00:00
..
bin [vm/kernel_service] Fix native_assets.yaml discovery 2023-02-27 16:49:25 +00:00
lib [vm/aot] Disable signature shaking for 'this' of inline class members 2023-06-07 16:02:13 +00:00
test [kernel] Merge front_end and kernel verifiers 2023-04-26 14:14:36 +00:00
testcases/transformations [vm/aot] Disable signature shaking for 'this' of inline class members 2023-06-07 16:02:13 +00:00
tool Enable patterns in IL comparison tests on Windows 2023-03-10 01:14:18 +00:00
analysis_options.yaml [pkg/vm] analyze using package:lints 2022-07-07 23:22:49 +00:00
LICENSE Update LICENSE 2021-04-07 10:28:38 +00:00
OWNERS [infra] Add OWNERS to the Dart SDK 2022-02-14 14:06:34 +00:00
pubspec.yaml [pkg/vm] Initial work on constant operating system fields and getters. 2023-02-10 16:29:50 +00:00
README.md

This package hosts VM specific Dart code and helper scripts.