* `flutter analyze` cleanup
* Make `--dartdocs` work in all modes.
* Make `analyze-sample-code.dart` more resilient.
* Add a test for `analyze-sample-code.dart`.
* Minor cleanup in related code and files.
* Apply review comments
* Fix tests
fuchsia_tester.dart still assumes Dart 1. Previously, it ran tests directly
from source, flutter_platform.dart automatically runs a kernel compile when
operating in Dart 2 mode, but this assumes a functional Dart SDK is available
in the artifacts directly, and fuchsia_tester.dart mocks out the artifacts
directory with an empty temp dir.
Remaining work is:
1. Get the frontend server building as a dependency on Fuchsia.
2. Patch fuchsia_tester.dart to use a valid Dart SDK and frontend server.
This also reverts migration to Dart 2 typedef syntax.
This reverts commit 6c56bb2. (#18362)
This reverts commit 3daebd0. (#18316)
* It's time to #deleteDart1 (#18293)
Eliminates support for Dart 1 in flutter_tools, and drops our Dart 1
benchmarks. All commands now run in Dart 1 mode only.
Eliminates --preview-dart-2 / --no-preview-dart-2 support.
* Fix indentation, remove no longer necessary .toList()
* Only push udpated kernel if >0 invalidated srcs
Eliminates support for Dart 1 in flutter_tools, and drops our Dart 1
benchmarks. All commands now run in Dart 1 mode only.
Eliminates --preview-dart-2 / --no-preview-dart-2 support.
This removes direct file access from within flutter_tools
in favor of using `package:file` via a `FileSystem` that's
accessed via the `ApplicationContext`.
This lays the groundwork for us to be able to easily swap
out the underlying file system when running Flutter tools,
which will be used to provide a record/replay file system,
analogous to what we have for process invocations.
Bump to latest Dart SDK dev build (`1.21.0-dev.0.0`).
* updates to analyzer w/ support for bazel workspaces
* removes deprecated analysis `cacheSize` variable access
* Bump Dart SDK to `1.20.0-dev.10.0`.
`1.20.0-dev.10.0` corresponds to `1.20-RC0`.
* pubspec.lock cleanup
* check for pubspec.lock existence
* cleaned up conditional remove
* brings in analyzer version (`0.27.4-alpha.14`) corresponding to current Dart SDK (`1.18.0-dev.2.0`).
* updates analysis to use prefered API for embedder URI resolution
* adds trampolines to `State` and `StatelessWidget` to allow for warning-free within-library @protected access (needed since we closed off access to @protected closures from outside subclasses).
* turns off cache dependency tracking for analysis (in DDC this amounted to a 10% speed improvement).
Cleans up 3 of the 4 violations of the `overriden_field` lint.
The last one is more interesting and I'll defer to someone closer to that code:
[lint] Do not override fields. (packages/flutter/test/rendering/rendering_tester.dart, line 91, col 14)
The latest dev build has stable summaries so we should start using them.
(Also ensures that analysis options are propogating to the SDK analysis context --- see: https://github.com/dart-lang/sdk/issues/26129.)
Package mapping is already done by the `PackageDependencyTracker` so this extra check is at best not needed. (At worst could cause an unneeded and costly call to `pub list-package-dirs`!)
Updates the analyze command to pass a package map to analysis rather than a file path.
This allows us to avoid creating a needless temporary `.packages` file and host directory and saves us a trip to disk to retrieve the contents when building our URI resolvers for analysis.
Introduces a new Dart analysis wrapper that works directly with the analyzer API (in favor of shelling out to a separate process).
Some consequences:
* we no longer need to fear parts (simplifying our dart file gathering)
* we can filter by error code (when needed), rather than by error strings
* no more IO scraping
* no need to generate `main()` or to run with `--package-warnings`
* we now specify an analyzer (and linter) version in the pubspec (we’ll want to make sure this doesn’t diverge too far from the analyzer shipped with the SDK but it does give us some room to play with experimental builds)
* no more (re)scanning of error source files (and so no more source cache)
* should generally be a bit simpler and easier to maintain
* runs a bit faster :)