dart-sdk/pkg/vm
Paul Berry 54906759b9 Don't delegate foreign private names to noSuchMethod.
If a concrete class implements an interface containing a name that's
private to a different library, any attempt to invoke that name will
result in an exception getting thrown.  Previously, such attempts
would result in the call being diverted to noSuchMethod.

This change closes a loophole in Dart's privacy system, and paves the way for
a future implementation of promotion for private final fields (see
https://github.com/dart-lang/language/issues/2020).

Bug: https://github.com/dart-lang/sdk/issues/49687
Change-Id: Ie55805e0fc77dc39713761a80a42c28bd0504722
Tested: language tests
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255640
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
2022-09-27 21:20:35 +00:00
..
bin Change : to = for default values in pkg. 2022-08-24 15:57:16 +00:00
lib Don't delegate foreign private names to noSuchMethod. 2022-09-27 21:20:35 +00:00
test 259546: Roll Dart Protobuf Support from cd0ff30759d8 to 1d175bef6043 2022-09-22 09:48:37 +00:00
testcases/transformations Don't delegate foreign private names to noSuchMethod. 2022-09-27 21:20:35 +00:00
tool [vm/infra] Improve IL testing framework 2021-11-16 12:39:11 +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] analyze using package:lints 2022-07-07 23:22:49 +00:00
README.md

This package hosts VM specific Dart code and helper scripts.