Commit Graph

35087 Commits

Author SHA1 Message Date
Robert Nystrom f9bb05a6ec Reland "Roll the latest args package into the SDK repo."
This is a reland of 9906fabaa0

Original change's description:
> Roll the latest args package into the SDK repo.
>
> Change-Id: Ie464e5c01f34a101103d16ff108b6b9eb80fbd4b
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174485
> Reviewed-by: Nate Bosch <nbosch@google.com>
> Commit-Queue: Bob Nystrom <rnystrom@google.com>
> Auto-Submit: Bob Nystrom <rnystrom@google.com>

Change-Id: I5b7b041e02857114c257393cf9d560b6b8b03fd5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174701
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
2020-12-02 14:16:57 +00:00
Jens Johansen 321af0844e [CFE] Additions, changes and tests for direct from parser ast stuff
Change-Id: I7457585ddd338cdc6172fee030f93fa4f82ddf1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174642
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-12-02 11:39:17 +00:00
Tess Strickland ff0c8d1405 Revert "Roll the latest args package into the SDK repo."
This reverts commit 9906fabaa0.

Reason for revert: Causes regressions in google3 (likely need internal CL to get new args package in third party), see https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/google/3073/overview

Original change's description:
> Roll the latest args package into the SDK repo.
>
> Change-Id: Ie464e5c01f34a101103d16ff108b6b9eb80fbd4b
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174485
> Reviewed-by: Nate Bosch <nbosch@google.com>
> Commit-Queue: Bob Nystrom <rnystrom@google.com>
> Auto-Submit: Bob Nystrom <rnystrom@google.com>

TBR=rnystrom@google.com,nbosch@google.com

Change-Id: I9d3091d1631a145cd8b37317cc2e381762e5a46a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174646
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
2020-12-02 11:17:39 +00:00
Johnni Winther 2fafa55d90 [cfe] Add predicate functions for detecting locals created for late lowering encodings
Change-Id: If9c53d4002f6e3cd85c116fb04ea93244a872a71
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174123
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-12-02 09:15:18 +00:00
Stephen Adams f0be731480 [js_runtime] Faster List.of copying a JSArray
Improved inferrer to handle some cases of JS-fragments.
The JS-fragment to copy the array caused the inferrer to be too
pessimistic about list-tracing into List.of.


Change-Id: I0cb4f7610d971d7927d973bd2b0b532d4cef9a7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173883
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2020-12-02 07:53:47 +00:00
pq 0d145f836b posix path validation
Fixes: https://github.com/dart-lang/sdk/issues/44358

Change-Id: Iaa3e998148f0231dfce14e23cf91b9c721f439b5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174600
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-02 02:36:57 +00:00
Konstantin Shcheglov 8a40e19824 Fix analyzer Windows bot.
Change-Id: I6c59935930d1d9c78ff21ea37007e7b82c92d1a8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174680
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-02 01:16:57 +00:00
Robert Nystrom 9906fabaa0 Roll the latest args package into the SDK repo.
Change-Id: Ie464e5c01f34a101103d16ff108b6b9eb80fbd4b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174485
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
2020-12-02 01:07:07 +00:00
Paul Berry 1779cc86d2 Rework flow analysis unit tests based on a mini-AST representation.
In preparation for some flow anaylsis work I intend to do this month,
I want to make the flow analysis unit tests easier to understand and
maintain.  This CL creates an AST representation that models just
enough of the Dart language to be able to do flow analysis testing, so
that when reading or writing a flow analysis unit test, instead of
having to remember the correct sequence of calls to FlowAnalysis to
model a given construct, you can just create a mini-AST representation
of the given construct and pass it to the flow analysis test harness.

The mini-AST model for expressions contains methods that can be used
to build larger expressions out of smaller ones, so a lot of code can
be modeled compactly.  For example, to create a mini-AST model of the
statement `x = y && z == null;`, call
`x.write(y.read.and(z.read.eq(nullLiteral()))).stmt`.

Change-Id: I11e3882078fdc5797176019398db48011232cf35
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174560
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-12-01 22:41:56 +00:00
Brian Wilkerson bfac5c3009 Enable the flutter use case tests involving requiredIf and fix a couple of bugs
Change-Id: I764d64f7df35a6e5fac4232c0f8907ecb15d1c98
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174562
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-01 22:28:27 +00:00
Konstantin Shcheglov 2dd03f37c9 Issue 44334. Report DUPLICATE_FIELD_FORMAL_PARAMETER for not final FieldFormalParameter.
Bug: https://github.com/dart-lang/sdk/issues/44334
Change-Id: I4f70daf9165e31d3948c210b84aee4c00561bd3e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174486
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-01 22:05:27 +00:00
Konstantin Shcheglov f6362881d5 Make 'uniqueName' a field in ErrorCode.
It started as a way to speed up IgnoreValidator, becaus computing
uniqueName as a concatenation of 'runtimeType' and 'name' was expensive.
We solved it in a better way, but I think this change is still useful.

Change-Id: I7d3cb8c91f4ca27a0aa3b93f8572cf12c6757bae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174322
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-01 21:41:08 +00:00
Konstantin Shcheglov 19652ae5ad Use binary format for summaries.
Change-Id: Ibf0221a3c233c958e5065b64207faf9dfae33083
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/168260
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-01 21:30:35 +00:00
Brian Wilkerson 9cd76088ef Consolidate the yaml extensions in one library
Change-Id: Ide0e02145581c1a77c4af2764821c63a333d9dd1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174520
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-01 18:09:35 +00:00
Dmitry Stefantsov 1d8d2de0a4 [cfe] Use buildInvalidInitializer to report duplicating initializers
Closes #43363.

Bug: https://github.com/dart-lang/sdk/issues/43363
Change-Id: I1de61c2be0d8a30dc184aad7cb392d0c92c5237b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174403
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-12-01 16:55:45 +00:00
Paul Berry 52acf2e8ac Migration: fixes to exception handling.
Since the EdgeBuilder overrides VisitNode, it wasn't getting the
benefit of the error recovery behavior provided by the
PermissiveModeVisitor mixin.  This CL replicates some of the
functionality of PermissiveModeVisitor in the EdgeBuilder._dispatch
method so that it applies throughout the EdgeBuilder's visiting
process.

This uncovered a second bug: when an exception is reported, and the
user hasn't passed in the `--ignore-exceptions` flag, the migration
tool tries to exit immediately by throwing an error of type
MigrationExit, but this was being caught by the error recovery logic,
so the tool wouldn't actually stop reliably.  This CL changes the
exception reporting code so that it re-throws MigrationExit when
necessary to ensure quick termination.

Change-Id: Ifd2faf8edb7cd0087c45e20a747ab7f1790ef1c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174420
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-12-01 16:08:55 +00:00
Jens Johansen 05bac41e39 Revert "[VM] Read and report constant constructor coverage from dill"
This reverts commit 5370c56c80.

Reason for revert: Failures on
dartk-android-product-arm
dartk-android-product-arm
dartkp-linux-release-arm-qemu

like this:

sizeof(ScriptLayout) got 64, Script_InstanceSize expected 56
../../runtime/vm/dart.cc: 160: error: CheckOffsets failed. Try updating offsets by running ./tools/run_offsets_extractor.sh

sizeof(ScriptLayout) got 64, AOT_Script_InstanceSize expected 56
../../runtime/vm/dart.cc: 160: error: CheckOffsets failed. Try updating offsets by running ./tools/run_offsets_extractor.sh


Original change's description:
> [VM] Read and report constant constructor coverage from dill
>
> This CL makes use of the now included constant constructor coverage
> in the dill file.
>
> It works like this:
> * When the CFE evaluates constants, every constant constructor
>   invocation evaluated saves the reference to the constructor in the
>   `Source` (from the Components uri to source table) for the callers
>   Library.
> * This data is loaded into the VM in a "raw" format.
> * When a request for coverage comes in, the VM - on top of the normal
>   coverage processing - goes through all scripts to find constant
>   constructor coverage for the requested script and offset. Note that
>   all scripts must be checked because library A can have evaluated a
>   constructor from library B - so even if only coverage for library B
>   was requested, library A has to be checked.
>   For all constructors found the start and end position is reported as
>   covered. Note that this does not mark any initializes and there are
>   (at least currently) no good way of marking which initializes were
>   evaluated (because it has to be stable across edits even when the
>   `advanced invalidation feature` is enabled).
> * Note that the reason for the coverage to work on references - as
>   hinted above - is because we want it to be stable across hot reloads
>   even if/when advanced invalidation is enabled. This means, that
>   library A cannot record "positional coverage" for library B because
>   library B might get (for instance) new comments that will make any old
>   offsets invalid. By using references we always lookup in the current
>   world and use the correct offsets.
>
> https://github.com/dart-lang/sdk/issues/38934
>
> TEST=Existing test suite, new tests for the new coverage added.
>
> Change-Id: I925963d1a9b9907efe621c72deb7348fa3be5ae8
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171949
> Commit-Queue: Jens Johansen <jensj@google.com>
> Reviewed-by: Ben Konyi <bkonyi@google.com>
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>

TBR=vegorov@google.com,bkonyi@google.com,jensj@google.com

Change-Id: I5187e6749d59ded250ec0933a94db0536485b70a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174470
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-12-01 14:12:16 +00:00
Sigurd Meldgaard 97baa6efd1 Revert "Improve handling of disable-dartdev-analytics"
This reverts commit 58860f4814.

Reason for revert: Broke bots. Will investigate.

Original change's description:
> Improve handling of disable-dartdev-analytics
>
> This is second try of https://dart-review.googlesource.com/c/sdk/+/171284
> that was reverted to to faulty logic in main_options.
>
> Some other refactorings are piggy-backed along.
>
> TestProject.runSync no longer takes a 'command' argument. It was anyway
> often not an argument.
>
> Also stop the messy handling of pub arguments. It is no longer needed.
>
> BUG: https://github.com/dart-lang/sdk/issues/44135
> Change-Id: I49abf5810d9ea262409ba9d93f0471037cb8a753
> TEST=The VM change is tested via all the pkg/dartdev/test/command/* tests that invoke dart with the --no-analytics flag.
> TEST=Furthermore manual test that the --no-analytics flag is passed to dartdev.
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174261
> Reviewed-by: Jonas Jensen <jonasfj@google.com>
> Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>

TBR=bkonyi@google.com,sigurdm@google.com,jonasfj@google.com

Change-Id: I754bcebdcfc595158b04d431662b65bf25f5b89d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174466
Reviewed-by: Sigurd Meldgaard <sigurdm@google.com>
Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
2020-12-01 13:11:16 +00:00
Jens Johansen 5370c56c80 [VM] Read and report constant constructor coverage from dill
This CL makes use of the now included constant constructor coverage
in the dill file.

It works like this:
* When the CFE evaluates constants, every constant constructor
  invocation evaluated saves the reference to the constructor in the
  `Source` (from the Components uri to source table) for the callers
  Library.
* This data is loaded into the VM in a "raw" format.
* When a request for coverage comes in, the VM - on top of the normal
  coverage processing - goes through all scripts to find constant
  constructor coverage for the requested script and offset. Note that
  all scripts must be checked because library A can have evaluated a
  constructor from library B - so even if only coverage for library B
  was requested, library A has to be checked.
  For all constructors found the start and end position is reported as
  covered. Note that this does not mark any initializes and there are
  (at least currently) no good way of marking which initializes were
  evaluated (because it has to be stable across edits even when the
  `advanced invalidation feature` is enabled).
* Note that the reason for the coverage to work on references - as
  hinted above - is because we want it to be stable across hot reloads
  even if/when advanced invalidation is enabled. This means, that
  library A cannot record "positional coverage" for library B because
  library B might get (for instance) new comments that will make any old
  offsets invalid. By using references we always lookup in the current
  world and use the correct offsets.

https://github.com/dart-lang/sdk/issues/38934

TEST=Existing test suite, new tests for the new coverage added.

Change-Id: I925963d1a9b9907efe621c72deb7348fa3be5ae8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171949
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2020-12-01 12:32:15 +00:00
Jens Johansen 27ed7912af [kernel] Constant coverage recorded in dill
This adds the recorded constant coverage to the dill file.

runtimes for constant evaluation:
dart2js: No difference proven at 95.0% confidence
flutter gallery: No difference proven at 95.0% confidence
big internal app: No difference proven at 95.0% confidence

sdk sizes:
vm: ~0.0182%
dart2js: ~0.0137%
flutter: ~0.0197%

compile sizes:
dart2js: ~0.0179%
flutter gallery: ~0.0162%
big internal app: ~0.0414%

TEST=test was fixed.

Change-Id: I347751e4d96d4d62140d26ebe37960f46a0dfbfa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171948
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-12-01 12:30:14 +00:00
Sigurd Meldgaard 58860f4814 Improve handling of disable-dartdev-analytics
This is second try of https://dart-review.googlesource.com/c/sdk/+/171284
that was reverted to to faulty logic in main_options.

Some other refactorings are piggy-backed along.

TestProject.runSync no longer takes a 'command' argument. It was anyway
often not an argument.

Also stop the messy handling of pub arguments. It is no longer needed.

BUG: https://github.com/dart-lang/sdk/issues/44135
Change-Id: I49abf5810d9ea262409ba9d93f0471037cb8a753
TEST=The VM change is tested via all the pkg/dartdev/test/command/* tests that invoke dart with the --no-analytics flag.
TEST=Furthermore manual test that the --no-analytics flag is passed to dartdev.
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174261
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
2020-12-01 10:25:55 +00:00
Jens Johansen deca91c86d [CFE] Record const constructor coverage when evaluating constants
This CL records which const constructors were evaluated
(i.e. contributes coverage) but doesn't actually
save the coverage into the dill file.

runtimes for constant evaluation:
dart2js: No difference proven at 95.0% confidence
flutter gallery: No difference proven at 95.0% confidence
big internal app: No difference proven at 95.0% confidence

sdk sizes:
vm: no change
dart2js: no change
flutter: no change

compile sizes:
dart2js: no change
flutter gallery: no change
big internal app: no change

Change-Id: I2567446c1b78180d73fd7613bc9e780e1a067f5b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/170435
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-12-01 09:20:14 +00:00
Jens Johansen 08f3b03361 [CFE] Constant evaluator benchmark
E.g. one can run a benchmark via something like
`out/ReleaseX64/dart pkg/front_end/test/constant_evaluator_benchmark.dart --platform=out/ReleaseX64/vm_platform_strong.dill pkg/compiler/bin/dart2js.dart --target=VM`

Change-Id: Ie9202bbd8a390a461a31625880bbb182f845261e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/168485
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-12-01 09:00:44 +00:00
Jens Johansen 9b5764d05d [CFE] Add uri to crashing error message when finding .packages file
TEST=test was changed.

Change-Id: I68c2041e51c66a93f00a0e2be026caef25ddb223
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174241
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-12-01 08:28:24 +00:00
Clement Skau 2d36c85ff8 [vm] Removes support for --causal-async-stacks
All existing embedders have been opted into --lazy-async-stacks, the
VM also uses it as it's default in all configurations.

After this CL, any user of --causal-async-stacks will get an error
message when trying to use it.
=> In any such case, please simply remove the flag.

TEST=Exhaustive CQ.

Bug: https://github.com/dart-lang/sdk/issues/37668
Change-Id: Ia440afcf2dba464aa8b8cf381b93bbac8eb9f8dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172564
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Clement Skau <cskau@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-12-01 07:27:14 +00:00
Konstantin Shcheglov b4052982b5 Make documentaiton comments Null Safe by default, support %language directive instead.
This is consistent with what we do for user project.
Null safety is not an experiment anymore.

OTOH, any future experiments should be applied on top of the latest
language version.

Change-Id: I6dcbc954aefefb1f7a03c9ceaf1d25be28e7adf4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174488
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-01 06:51:44 +00:00
Konstantin Shcheglov 6c6dba54bd Replace some uses of StaticTypeAnalyzer2TestShared.
R=brianwilkerson@google.com

Change-Id: Ic3ea45d3e894b3991593a2a349909bf289743e93
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174489
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-01 06:50:14 +00:00
Konstantin Shcheglov 7c5df72b27 Revert "dart migrate: Move title bar and add 'Migrate' check box next to title"
This reverts commit 17226bbbff.

Reason for revert: has unrelated tools/abiversions changes

Original change's description:
> dart migrate: Move title bar and add 'Migrate' check box next to title
>
> This check box displays whether a file is migrating, opting out, or
> already migrated. The check box can be clicked to toggle between
> migrating and opting out. Clicking the check box updates status in the
> navigation tree. Clicking on check boxes updates the status in the
> title bar.
>
> Screenshot here: https://screenshot.googleplex.com/9z9v9L5DHhBXzEU.png
>
> In terms of the HTML, a new parent above '.content' div was added:
> the '.file' div, which includes a '.title-bar' div above the '.content'
> div.
>
> Bug: https://github.com/dart-lang/sdk/issues/44101 and
> Change-Id: I021f0dd873119ae801e29faa92e97fe48d03ef3c
> https://github.com/dart-lang/sdk/issues/44124
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174440
> Commit-Queue: Samuel Rawlins <srawlins@google.com>
> Reviewed-by: Paul Berry <paulberry@google.com>

TBR=paulberry@google.com,srawlins@google.com

Change-Id: I8b8433d47390df91201a365f5aa54c7fb835d997
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/44101 and
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174385
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-01 03:30:32 +00:00
Sam Rawlins 17226bbbff dart migrate: Move title bar and add 'Migrate' check box next to title
This check box displays whether a file is migrating, opting out, or
already migrated. The check box can be clicked to toggle between
migrating and opting out. Clicking the check box updates status in the
navigation tree. Clicking on check boxes updates the status in the
title bar.

Screenshot here: https://screenshot.googleplex.com/9z9v9L5DHhBXzEU.png

In terms of the HTML, a new parent above '.content' div was added:
the '.file' div, which includes a '.title-bar' div above the '.content'
div.

Bug: https://github.com/dart-lang/sdk/issues/44101 and
Change-Id: I021f0dd873119ae801e29faa92e97fe48d03ef3c
https://github.com/dart-lang/sdk/issues/44124
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174440
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2020-12-01 01:36:25 +00:00
Devon Carew 81986f4a36 [dartdev] add a --format option to dart analyze
Change-Id: Iad7d14b12892ce2121430f0cd94a2b0cd0d8e978
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174384
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-01 01:32:34 +00:00
Konstantin Shcheglov 5af2d78e75 Clean up WithNullSafetyLintMixin.
Change-Id: I7b0527def3589449e40619c5d4338c9ca1c3e672
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174481
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-01 00:05:39 +00:00
Brian Wilkerson 8fee2b96af Rename the tool/completion_metrics directory
The directory contains tools related to code completion that are not
used to measure completion metrics, so the old name was too specific.

Change-Id: Ie8745901655df6e7b29da645b3b0a48011ca9f10
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174483
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-11-30 23:57:44 +00:00
Brian Wilkerson a4dfaeb51c Add support for generating optional named arguments when necessary
This is needed, for example, when renaming an optional named parameter
when a simple 'renameParameter' isn't sufficient. The existing arguments
need to be preserved.

This also removes the 'statements' style of code template because it
wasn't fully supported and isn't currently needed.

Change-Id: I66035c88fcffef77f7de9eedff4efbaf2720ccb1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174482
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-11-30 23:57:35 +00:00
Devon Carew 4fc9632b6c [dartdev] add several benchmarks for the dart cli and sdk
Change-Id: I5187312784dde2335b0aff605532b333ba86d29b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173441
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2020-11-30 22:28:34 +00:00
Jake Macdonald bf24df2671 Reland "Reland "update Glob in the sdk, also adds package:file to the sdk""
This reverts commit 85174e4d8c.

Reason for revert: CL was OK, it looks like we just need a manual roll in order to add deps, only the HHH bots apply patches.

EDIT: Landing file dep ahead of time in flutter/engine to avoid manual roll + patch.

Original change's description:
> Revert "Reland "update Glob in the sdk, also adds package:file to the sdk""
>
> This reverts commit c62709e87b.
>
> Reason for revert: Still breaking flutter HHH bots
>
> Original change's description:
> > Reland "update Glob in the sdk, also adds package:file to the sdk"
> >
> > This reverts commit ce614d33c4.
> >
> > Original change's description:
> > > Revert "update Glob in the sdk, also adds package:file to the sdk"
> > >
> > > This reverts commit 18b19db300.
> > >
> > > Reason for revert: Breaks Flutter 3H/Golem. Tried making an appropriate patch for 3H that would pull file into its dependencies (see https://dart-review.googlesource.com/c/sdk/+/173960/), but that still failed, so reverting.
> > >
> > > Original change's description:
> > > > update Glob in the sdk, also adds package:file to the sdk
> > > >
> > > > Change-Id: Ia8628c28bfaf6343c19eecfef391339968cd57e9
> > > > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172063
> > > > Commit-Queue: Jake Macdonald <jakemac@google.com>
> > > > Reviewed-by: Nate Bosch <nbosch@google.com>
> > >
> > > TBR=jakemac@google.com,nbosch@google.com
> > >
> > > Change-Id: I0616e3df7505f348edeefee40cbaf4adc59487cd
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173963
> > > Reviewed-by: Tess Strickland <sstrickl@google.com>
> > > Commit-Queue: Tess Strickland <sstrickl@google.com>
> >
> > TBR=jakemac@google.com,nbosch@google.com,sstrickl@google.com
> >
> > # Not skipping CQ checks because this is a reland.
> >
> > Change-Id: Ia85fe3b81214ca4ef2bed8e08ecc1b617927a579
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173981
> > Reviewed-by: Nate Bosch <nbosch@google.com>
> > Commit-Queue: Jake Macdonald <jakemac@google.com>
>
> TBR=jakemac@google.com,nbosch@google.com,sstrickl@google.com
>
> Change-Id: Iaff06dcbc3ef813ee9edb5ca8de163fdcc2041e2
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174060
> Reviewed-by: Jake Macdonald <jakemac@google.com>
> Commit-Queue: Jake Macdonald <jakemac@google.com>

TBR=jakemac@google.com,nbosch@google.com,sstrickl@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: If2181a9d5ec6b96d6a61cd5cf8857bddd937e59f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174382
Reviewed-by: Jake Macdonald <jakemac@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2020-11-30 21:58:44 +00:00
Paul Berry 4185e7ccd2 Migration: disable code highlighting for very large files.
This avoids an apparent hang when visiting the SDK file
`html_dart2js.dart` (which happens anytime the user clicks on a link
like `HtmlElement`).

Bug: https://buganizer.corp.google.com/issues/168936042
Change-Id: I52bb535b6a2ca1a74071e272b1276520048a67bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174441
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-11-30 21:30:04 +00:00
Konstantin Shcheglov 49ca82c4e8 Move literal inference tests from StaticTypeAnalyzer2Test.
R=brianwilkerson@google.com

Change-Id: Ie08a60dcd1a0942e5e72ae3a1ed4bb76238786db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174460
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-11-30 20:30:03 +00:00
Konstantin Shcheglov 295a9a856e Prepare to publish analyzer 0.41.1 and _fe_analyzer_shared 14.0.0.
Change-Id: I3d103aa01f306b9f9ad1118fb56c392cf0cded7b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174380
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-11-30 20:14:43 +00:00
Konstantin Shcheglov b1a6afba1c Remove specialized API for Angular analysis.
We have removed the Angular plugin, so we don't need the API.

Change-Id: Ifba20fba248b690f429b6a532dc5333a25f5e610
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174400
Reviewed-by: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-11-30 19:37:24 +00:00
Konstantin Shcheglov b200c9d68d Remove functionTypeAlias tests from FunctionTypeImplTest.
These tests were passing by a wrong reason.

It is not possible to express a recursive typedef anymore.
When we try to instantiate `G` in `typedef F = G Function()`, it
will instantiate `typdef G = F Function()` right now, directly into
the corresponding FunctionType, but because we are in the process
of setting the return type of `F` right now, `G` is not yet referenced
in `F`, so is not referened by `G` itself.

Such recursion is possible during linking, but then we break it.
We still report errors, and resolved AST still has necessary references.

Change-Id: I47b18f80b00edd01268c65c3e1786892ad0d5091
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174381
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-11-30 19:37:23 +00:00
Devon Carew d2b5aad64a [dartdev] tweak the help text for dartdev analytics
Change-Id: I4beefb06a1bc21b830b3061d4d9d3d8162f85593
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174323
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2020-11-30 18:21:32 +00:00
Robert Nystrom c755ef4ac6 Fix some error handling in scrape.
- Ensure the lexer is running at the latest language version. Before, it
  would fail to handle files that used extension methods since it didn't
  tokenize "extension" correctly.

- Don't visit files that produce parse errors. It was reporting the
  errors but still going ahead and parsing them... which actually
  worked surprisingly well (yay error recovery) but could lead to
  dubious results.

Change-Id: I0e94b5c56efaeb3c2ccde0fbf20c09733aac4998
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174021
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2020-11-30 15:19:30 +00:00
Konstantin Shcheglov 7ee7f7ad17 Another tweak for FileContentCache.
As I see on Golem, now there is a light degradation of performance
for files in the content overlay. This should fix it.

Change-Id: Ic762a646c7dab6cbbd4792cca2c5d3ce1c49edd0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174360
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-11-30 00:27:23 +00:00
Konstantin Shcheglov 94a7c94855 Use readAsBytesSync() in FileContentCache.
This should be slightly more efficient because we read bytes from
the OS file. We need both bytes (to compute hash) and string (as code).
So, it seems silly to read bytes, decode into string, then again
encode into bytes.

Change-Id: I3ee7c7282cf4f72dc32bcf9b8ffe68899a2ca3c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174341
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-11-29 18:09:53 +00:00
Konstantin Shcheglov 6ca2c409dc Add one ErrorCode.temporary2()
We need to add `uniqueName`, migrate a couple of existing subclasses,
and then do a bigger change
https://dart-review.googlesource.com/c/sdk/+/174322

R=brianwilkerson@google.com

Change-Id: If9ad2be70aae6fa7f53e57836438c4bfd8be92dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174325
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-11-29 07:20:13 +00:00
Brian Wilkerson 64105a6a15 Improve the highlight range for for_in_with_const_variable
Change-Id: I3dfab4f6748e6e93cd416ee031206896274ff989
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174321
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-11-29 05:35:17 +00:00
Konstantin Shcheglov 52fa963f5b Cache unignorable names for IgnoreValidator.
I saw from 4% to 6% analysis time used by IgnoreValidator constructor.
We did quite a few expensive operations each time, for each file.
Now we will do it once for each bucket.

Change-Id: Ia7c79b777269c9e4c10a9fb9f2864cc7249eacf9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174230
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-11-28 19:56:36 +00:00
Konstantin Shcheglov 9296c0cbdf Re-throw CaughtExceptionWithFiles when an exception during getAssists().
There is a surge of ConflictingEditException reported, and I don't
know how to reproduce it. We need more details.

Change-Id: I591d6a0e8337258deaf48b4cc56fa9c2f2557104
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174221
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-11-28 05:41:16 +00:00
Konstantin Shcheglov 24d7a6feba Remove unused computePlatformBinariesPath().
Change-Id: Ia757016e264f17edbae68abfc14ab5bb33e803cf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174228
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-11-28 05:20:51 +00:00
Konstantin Shcheglov 47023e0cc4 Remove unused createDartSdkManager().
R=brianwilkerson@google.com, pquitslund@google.com

Change-Id: If0e1b2753fe94d02fe353495cf5d5e7cc43d3617
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174226
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-11-28 05:12:53 +00:00