* error codes are static and final; no need for a public getter
* lint codes are `late final` because they may be registered up until the
options are validated; the field is lazily calculated at such time.
Change-Id: I8d9c1e9ab4d69be77be49b44f62e605c3f06fd2e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192561
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
* Invalid section (not a Map) under `analyzer: errors:`
* Invalid value (not a Scalar) under `analyzer: errors:`
* Invalid section (not a Map) under `analyzer: strong-mode:`
* Invalid section (not a Map) under `analyzer: optional-checks:`
Change-Id: Iad0b33d312f65af8a995677fe4e57389fea520c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192600
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Added entry-point pragmas to prevent obfuscation of global vars.
Removed expectation checking for standard library `Expando` class name.
Closes: https://github.com/dart-lang/sdk/issues/45422
TEST=Fixes various service_2 tests in obfuscation mode.
Change-Id: I91bb856c7f1ff44afe1cceec8e94e3b97ab56e44
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-obfuscate-linux-release-x64-try
Fixed: 45422
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192681
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Generally speaking, the optimizing compiler should be able to use
(deopt-id, deopt-environ) of any IR instruction and use it as an eager
deopt target (e.g. optimizing compiler might insert TestCidsInstr
with eager (deopt-id, deopt-environ) from AssertAssignable).
Currently we prune the environment eagerly during SSA construction for
some instructions This pruning breaks the above mechanism, since the
deopt-environ isn't usable as eager deopt target. (It is effectively
changing the environment on the IR instruction to be a lazy-deopt
environment).
This CL makes the [Environment] represent both the eager deopt target as
well as the lazy deopt target. It distinguishes the two by remembering
how many slots the eager deopt target needs to be pruned to come to the
lazy deopt target. The SSA construction will populate this information.
Effectively we move the deopt env pruning from SSA construction to the
place when we need it (e.g. inlining, emitting after-call metadata).
Issue https://github.com/dart-lang/sdk/issues/45213
TEST=Refactoring of existing code.
Change-Id: I6c2a117b33f35764e556372484e4beaa294b708d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192141
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Creates HasParent() as a predicate for Function objects with a non-null
parent function and makes IsLocalFunction() specific to local closures
(i.e. explicit closures with non-null parent functions).
Creates HasSavedArgumentsDescriptor() as a predicate to determine when
saved_args_desc() can be used, to avoid the caller having to do explicit
predicate checks for each dispatcher type that contains one.
Also simplifies Function::PrintName, creates different suffixes for a
SyncGenClosureMaker and its associateed SyncGenClosure, adds suffixes
for skipping more than one generated body when printing the parent name,
and changes ArgumentsDescriptor::PrintTo to match the compact syntax
Function::PrintName used for signifying the arguments descriptor for
certain dispatchers.
TEST=pkg/vm_snapshot_analysis/test/instruction_sizes_test
Cq-Include-Trybots: luci.dart.try:app-kernel-linux-release-x64-try,vm-kernel-precomp-linux-release-x64-try,pkg-linux-release-try
Change-Id: I0ac1226d1ffe1d81743b5c6788da170d5a4010c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191560
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
The web compilers don't support getter/field invocation encoded as a
FunctionInvocation on an InstanceGet because it doesn't work for
getter/field invocation of js-interop properties, since the InstanceGet
wouldn't result in a Dart function but just JavaScript function.
To support this in the new method invocation encoding, a special
expression, InstanceGetterInvocation, is used to encode getter/field
invocations in dart2js and ddc.
Change-Id: I21da8e8686f66ae4ce4d44245073b9e424f975b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192181
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
In some cases, such as file system exceptions, ExpressionCompilerWorker
fails to start but does not close its receiver port, which causes the
consumer to wait indefinitely for responses.
Make ExpressionCompilerWorker communicate the failure to the consumer,
close the receiver port, and exit.
Added tests to verify graceful exit.
Issue that uncovered the bug: https://b.corp.google.com/issues/183218372
Change-Id: I54a9c3620cfc5f77c101b26b4e98b6eeb03ad7e1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192260
Commit-Queue: Anna Gringauze <annagrin@google.com>
Reviewed-by: Gary Roumanis <grouma@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
responses
Allows for comparing @Instances and Instances with allocation traces and
heap snapshot entries.
TEST=pkg/vm_service/test/get_allocation_traces_test.dart
Change-Id: I6d021b0267f1595332475470961df6e35321ce80
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/188600
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Also refactor these tests, in order to get the right experiment. Factor out
common test cases into a mixin, leave two test classes, one of which opts out
of null safety.
Existing tests are left alone except that two which were failing are no longer
failing (simple change in span or diagnostic code).
Change-Id: I2b0dfb4c1df38c6fbd76e5490bbbbd41653edc1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192502
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
This reverts commit 88ee333408.
Reason for revert: Hook added by mistake removed.
Original change's description:
> Revert "[co19] Roll co19 to ae818220b12ec9c2470519db2c7167cbe4745e12"
>
> This reverts commit 03e8ddd13c.
>
> Reason for revert: Change to hooks does not work with Windows.
>
> Original change's description:
> > [co19] Roll co19 to ae818220b12ec9c2470519db2c7167cbe4745e12
> >
> > 2021-03-22 sgrekhov@unipro.ruFixes#1032. Change place where analyzer expects COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
> > 2021-03-22 sgrekhov@unipro.ruFixes#1027. Typo fixed
> > 2021-03-22 sgrekhov@unipro.ruFixes#1026. Missed experimental flag added
> > 2021-03-22 sgrekhov@unipro.ru Fixes SDK issue #45381. Use 32-bit int boundaries for 32-bit systems
> > 2021-03-19 sgrekhov@unipro.ru#1024. Tests that plays with the integers not representable in JS moved to separate files. These files will be skipped on JS
> >
> > Cq-Include-Trybots: dart/try:analyzer-nnbd-linux-release-try,dart2js-nnbd-linux-x64-chrome-try,ddc-nnbd-linux-release-chrome-try,front-end-nnbd-linux-release-x64-try,vm-kernel-nnbd-linux-debug-x64-try,vm-kernel-nnbd-linux-release-simarm64-try,vm-kernel-nnbd-linux-release-x64-try,vm-kernel-nnbd-mac-release-x64-try,vm-kernel-nnbd-win-release-x64-try,vm-kernel-precomp-nnbd-linux-debug-x64-try,vm-kernel-precomp-nnbd-linux-release-simarm64-try,vm-kernel-precomp-nnbd-linux-release-x64-try
> > Change-Id: Idc63625a841f1f90b0cce5db9ca6add13e4d1192
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192303
> > Reviewed-by: William Hesse <whesse@google.com>
> > Commit-Queue: Alexander Thomas <athom@google.com>
>
> TBR=whesse@google.com,athom@google.com
>
> Change-Id: I5f66db541034377f5d68424073282080d13fd34b
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Cq-Include-Trybots: dart/try:analyzer-nnbd-linux-release-try
> Cq-Include-Trybots: dart2js-nnbd-linux-x64-chrome-try
> Cq-Include-Trybots: ddc-nnbd-linux-release-chrome-try
> Cq-Include-Trybots: front-end-nnbd-linux-release-x64-try
> Cq-Include-Trybots: vm-kernel-nnbd-linux-debug-x64-try
> Cq-Include-Trybots: vm-kernel-nnbd-linux-release-simarm64-try
> Cq-Include-Trybots: vm-kernel-nnbd-linux-release-x64-try
> Cq-Include-Trybots: vm-kernel-nnbd-mac-release-x64-try
> Cq-Include-Trybots: vm-kernel-nnbd-win-release-x64-try
> Cq-Include-Trybots: vm-kernel-precomp-nnbd-linux-debug-x64-try
> Cq-Include-Trybots: vm-kernel-precomp-nnbd-linux-release-simarm64-try
> Cq-Include-Trybots: vm-kernel-precomp-nnbd-linux-release-x64-try
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192380
> Reviewed-by: William Hesse <whesse@google.com>
# Not skipping CQ checks because this is a reland.
Change-Id: Ie54fde2d92d1b2cdb3b70835f1f8c17e3c5ac477
Cq-Include-Trybots: dart/try:analyzer-nnbd-linux-release-try,dart2js-nnbd-linux-x64-chrome-try,ddc-nnbd-linux-release-chrome-try,front-end-nnbd-linux-release-x64-try,vm-kernel-nnbd-linux-debug-x64-try,vm-kernel-nnbd-linux-release-simarm64-try,vm-kernel-nnbd-linux-release-x64-try,vm-kernel-nnbd-mac-release-x64-try,vm-kernel-nnbd-win-release-x64-try,vm-kernel-precomp-nnbd-linux-debug-x64-try,vm-kernel-precomp-nnbd-linux-release-simarm64-try,vm-kernel-precomp-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192384
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
This reverts commit a62e144882.
Reason for revert: Flutter engine shell tests are timing out because of deadlock.
Original change's description:
> [ VM ] Ensure shared timeline objects are protected by locks
>
> Timeline::Clear() could cause an user after free error if trying to allocate a timeline
> event immediately after clearing the timeline buffer.
>
> Timeline::Cleanup() could result in recorder_ being freed while timeline events are still
> being processed.
>
> Should fix https://github.com/flutter/flutter/issues/78076
>
> TEST=tests/lib/developer/timeline_recorders_test.dart
>
> Change-Id: Ia61b9c93986788c79ef6f2ff1907625b66fb4ea1
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191802
> Commit-Queue: Ben Konyi <bkonyi@google.com>
> Reviewed-by: Siva Annamalai <asiva@google.com>
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Iac2c19147a3e73df37418e11106f0c5132a35302
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192482
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
This reverts commit f06348108a.
Reason for revert: Flutter engine shell tests are timing out
Original change's description:
> [ VM ] Update Timeline tests to not use recorder->Clear()
>
> Also added IsOwnedByCurrentThread() assert for ReclaimCachedBlocksFromThreadsLocked
>
> Follow up to a62e144882
>
> TEST=runtime/vm/timeline_test.cc
>
> Change-Id: Iec3597b407d99ada1894752f7150a9ae4025bf91
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192243
> Commit-Queue: Ben Konyi <bkonyi@google.com>
> Reviewed-by: Siva Annamalai <asiva@google.com>
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Id7ba866d7966743bc54659a5d2a632eb31bbf355
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192481
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
This CL allows users to inject the inspect node used inside the
os_fuchsia.cc file instead of having it get created automatically.
This allows us to use inspect in other areas of the flutter/dart
runners. This code needs to be soft transitioned so there will be
follow up CLs after the runners are migrated.
TEST=This was tested against the current version of the runner that does
not use these new codepaths and against a version that does.
Change-Id: I2fff36223aa4021da9cd2051daf6312d2b115492
Bug: fxbug.dev/69558
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190960
Commit-Queue: Chase Latta <chaselatta@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
The failure message now includes the stacktrace from when the
_CheckPromoted node was constructed; this makes it possible to quickly
find the line in the source code that encodes the expectation, which
is often much more useful than the stacktrace from the time the
failure was detected.
The stacktrace from the time the failure was detected still appears,
after the stacktrace from when the node was constructed.
Change-Id: If375e141a32b371e806399e42ff7cfaae9cf7873
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192290
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>