Change-Id: Ic3d18aed72c572fe07bbd2a98b85431a0a143019
Reviewed-on: https://dart-review.googlesource.com/65505
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
Change-Id: Idd473d5105237bcb57c2c051e3a1903c041ec323
Reviewed-on: https://dart-review.googlesource.com/65323
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Change-Id: I2668ec23b5fe83623acefcf53110499ecf30dcb9
Reviewed-on: https://dart-review.googlesource.com/65502
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Change-Id: Icf8db6ab4dd701b449af5998d3ed10cc3d5b2e6f
Reviewed-on: https://dart-review.googlesource.com/65503
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
In all but one case, the types that had previously been stored in
ResolutionData.literalType have become redundant; we now communicate
the necessary information in a higher fidelity way using
typeReference(), voidType(), and functionType().
There is one case that isn't redundant: variables declared in a catch
clause. In this case the type in question really isn't a literal type
at all, it's an inferred type, so it makes more sense to store it in
ResolutionData.inferredType.
Change-Id: Ic03f6e5ba4bd91b561b3ee46b02324758763bc83
Reviewed-on: https://dart-review.googlesource.com/65482
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
If the left-hand side of the store is an allocation and no GC-triggering
instructions have been executed since, it is safe to elide the store barrier.
This gives a 1.4% code size reduction on Flutter Gallery ARM32.
Change-Id: Ib7227d3ef9d798d5e30f238f3f789f9a2e637d6a
Cq-Include-Trybots: luci.dart.try: vm-kernel-optcounter-threshold-linux-release-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/64687
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
This CL moves type/element translation from the
_ResolutionApplierContext class to the ResolutionApplier. This allows
types and elements to be translated in the context in which they
appear in source code, so that we can resolve type parameter
references properly even when they refer to type parameters of local
functions and function expressions.
Fixes#33722.
Fixes#33874.
Change-Id: I100f417654c53ee24e8ca4e7295761df0812a83b
Reviewed-on: https://dart-review.googlesource.com/65404
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Forgot to git cl upload some updates to status files for my last change
Change-Id: Ib3635a3f77294f1f3d77635ad6133f7db32c5b91
Reviewed-on: https://dart-review.googlesource.com/65443
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
This fixes all but 2 of the statement completion tests
when the fasta parser is enabled.
Change-Id: I056cb386f46ce489e5ee70f01d9903fa4eb03bf6
Reviewed-on: https://dart-review.googlesource.com/65361
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
This CL adds support to build.py and test.py for building/testing
a VM with the interpreter on x64, e.g.:
$ ./tools/gn.py -m release -a x64 --bytecode
$ ./tools/build.py -m release -a x64 --bytecode runtime
$ ./tools/test.py -m release -a x64 -r vm -c dartkb language_2
Change-Id: I956d23790636609d4a2e71129481fcbd7afef9a0
Reviewed-on: https://dart-review.googlesource.com/65206
Commit-Queue: Zach Anderson <zra@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
* Super tear-offs: 'super.foo' where foo() is a method.
* Super calls of abstract members (useful with super-mixins).
Change-Id: I373b11c9773c7535e703cdc4e1bb9e632eef8dd2
Reviewed-on: https://dart-review.googlesource.com/64980
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Rationale:
The previous change to avoid speculation altogether
in AOT strong mode (to improve typed data performance)
was a bit too conservative. We only need to avoid
speculation that introduces deopting checks, not ones
with a fast/slow path where the fast path is very likely.
In the long run, better analysis may help even more.
Performance impact (restores prior drop):
Meteor +40%
JsonParseCustomReviver + 6%
https://github.com/dart-lang/sdk/issues/33656
Change-Id: I1735d8e642285cb2df538fc49468cf64a99d7f72
Reviewed-on: https://dart-review.googlesource.com/65383
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
Change-Id: I5f0b4bf6dc20733b980e6c4c8db4709a08e8d459
Reviewed-on: https://dart-review.googlesource.com/65380
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
In certain cases StreamingFlowGraphBuilder was used not for building
flow graph, but as an advanced kernel reader. This CL extracts all such
functionality from StreamingFlowGraphBuilder and revises all such uses.
StreamingFlowGraphBuilder constructors without FlowGraphBuilder are
removed. After this CL StreamingFlowGraphBuilder is only used to build
flow graph, as intended.
Change-Id: I69b08e24d37f8f2f336bee85334af11be1639b24
Reviewed-on: https://dart-review.googlesource.com/64821
Reviewed-by: Régis Crelier <regis@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Change-Id: I30d92ffb88338036aebed4e6891ce8e5737bf81f
Reviewed-on: https://dart-review.googlesource.com/65322
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
Change-Id: Ia1a6b056351beb9faddc2c6e86280983a2395d45
Reviewed-on: https://dart-review.googlesource.com/65140
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
This moves the location on which a missing semicolon error is reported,
making it easier for a user to understand and fix,
and fixing some of the statement completion tests.
Change-Id: I11b9de57e2b3104238e1edb801ad1cd02e9a63a2
Reviewed-on: https://dart-review.googlesource.com/64900
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
We also need to update the prebuilt SDK to keep it in sync with this
change so the presubmit doesn't get wonky. But, in this case, it should
be fine. The change affects a rare case that I don't think occurs in
the SDK: a multi-line string inside a string interpolation, inside
another string. If that does occur, it's easy to just change that code.
Change-Id: Icdfdfb0b2e1359005d88d983e9a3cf05b0e91e48
Reviewed-on: https://dart-review.googlesource.com/65280
Reviewed-by: Jenny Messerly <jmesserly@google.com>
Change-Id: Iac43d86759e0ae958940bbfd2ce53286762b7207
Reviewed-on: https://dart-review.googlesource.com/64381
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>