enable lints prefer_spread_collections and prefer_inlined_adds (#35189)
diff --git a/dev/benchmarks/macrobenchmarks/lib/src/cubic_bezier.dart b/dev/benchmarks/macrobenchmarks/lib/src/cubic_bezier.dart
index 8237d7e..37e88ff 100644
--- a/dev/benchmarks/macrobenchmarks/lib/src/cubic_bezier.dart
+++ b/dev/benchmarks/macrobenchmarks/lib/src/cubic_bezier.dart
@@ -117,11 +117,12 @@
AnimationController controller;
CurvedAnimation curve;
bool isPlaying = false;
- List<List<Point>> pointList = <List<Point>>[]
- ..add(<Point>[])
- ..add(<Point>[])
- ..add(<Point>[])
- ..add(<Point>[]);
+ List<List<Point>> pointList = <List<Point>>[
+ <Point>[],
+ <Point>[],
+ <Point>[],
+ <Point>[],
+ ];
bool isReversed = false;
List<PathDetail> _playForward() {
diff --git a/dev/bots/analyze-sample-code.dart b/dev/bots/analyze-sample-code.dart
index f26fc54..e07905f 100644
--- a/dev/bots/analyze-sample-code.dart
+++ b/dev/bots/analyze-sample-code.dart
@@ -286,13 +286,14 @@
'--snapshot=$_snippetsSnapshotPath',
'--snapshot-kind=app-jit',
path.canonicalize(_snippetsExecutable),
- ]..addAll(args),
+ ...args,
+ ],
workingDirectory: workingDirectory,
);
} else {
return Process.runSync(
_dartExecutable,
- <String>[path.canonicalize(_snippetsSnapshotPath)]..addAll(args),
+ <String>[path.canonicalize(_snippetsSnapshotPath), ...args],
workingDirectory: workingDirectory,
);
}
@@ -311,7 +312,8 @@
final List<String> args = <String>[
'--output=${outputFile.absolute.path}',
'--input=${inputFile.absolute.path}',
- ]..addAll(snippet.args);
+ ...snippet.args,
+ ];
print('Generating snippet for ${snippet.start?.filename}:${snippet.start?.line}');
final ProcessResult process = _runSnippetsScript(args);
if (process.exitCode != 0) {
@@ -854,9 +856,11 @@
),
);
}
- return Section(<Line>[Line(prefix)]
- ..addAll(codeLines)
- ..add(Line(postfix)));
+ return Section(<Line>[
+ Line(prefix),
+ ...codeLines,
+ Line(postfix),
+ ]);
}
Line get start => code.firstWhere((Line line) => line.filename != null);
final List<Line> code;
@@ -868,8 +872,8 @@
/// analyzed.
class Snippet {
Snippet({this.start, List<String> input, List<String> args, this.serial}) {
- this.input = <String>[]..addAll(input);
- this.args = <String>[]..addAll(args);
+ this.input = input.toList();
+ this.args = args.toList();
}
final Line start;
final int serial;
diff --git a/dev/bots/analyze.dart b/dev/bots/analyze.dart
index ffa96e2..4397e65 100644
--- a/dev/bots/analyze.dart
+++ b/dev/bots/analyze.dart
@@ -260,7 +260,9 @@
Future<void> _runFlutterAnalyze(String workingDirectory, {
List<String> options = const <String>[],
}) {
- return runCommand(flutter, <String>['analyze', '--dartdocs']..addAll(options),
+ return runCommand(
+ flutter,
+ <String>['analyze', '--dartdocs', ...options],
workingDirectory: workingDirectory,
);
}
@@ -456,7 +458,10 @@
final List<T> result = _deepSearch<T>(
map,
key,
- (seen == null ? <T>{start} : Set<T>.from(seen))..add(key),
+ <T>{
+ if (seen == null) start else ...seen,
+ key,
+ },
);
if (result != null) {
result.insert(0, start);
diff --git a/dev/bots/prepare_package.dart b/dev/bots/prepare_package.dart
index cd49939..d36eaf2 100644
--- a/dev/bots/prepare_package.dart
+++ b/dev/bots/prepare_package.dart
@@ -381,14 +381,14 @@
Future<String> _runFlutter(List<String> args, {Directory workingDirectory}) {
return _processRunner.runProcess(
- <String>[_flutter]..addAll(args),
+ <String>[_flutter, ...args],
workingDirectory: workingDirectory ?? flutterRoot,
);
}
Future<String> _runGit(List<String> args, {Directory workingDirectory}) {
return _processRunner.runProcess(
- <String>['git']..addAll(args),
+ <String>['git', ...args],
workingDirectory: workingDirectory ?? flutterRoot,
);
}
@@ -574,14 +574,14 @@
}) async {
if (platform.isWindows) {
return _processRunner.runProcess(
- <String>['python', path.join(platform.environment['DEPOT_TOOLS'], 'gsutil.py'), '--']..addAll(args),
+ <String>['python', path.join(platform.environment['DEPOT_TOOLS'], 'gsutil.py'), '--', ...args],
workingDirectory: workingDirectory,
failOk: failOk,
);
}
return _processRunner.runProcess(
- <String>['gsutil.py', '--']..addAll(args),
+ <String>['gsutil.py', '--', ...args],
workingDirectory: workingDirectory,
failOk: failOk,
);
diff --git a/dev/bots/pubspec.yaml b/dev/bots/pubspec.yaml
index 21dacf8..865e3ff 100644
--- a/dev/bots/pubspec.yaml
+++ b/dev/bots/pubspec.yaml
@@ -3,7 +3,7 @@
environment:
# The pub client defaults to an <2.0.0 sdk constraint which we need to explicitly overwrite.
- sdk: ">=2.2.0 <3.0.0"
+ sdk: ">=2.2.2 <3.0.0"
dependencies:
path: 1.6.2
diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index 8efc6ca..e164800 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -220,7 +220,7 @@
final List<String> testGroup = tests[i];
await runCommand(
dart,
- <String>[path.join('tool', 'tool_coverage.dart'), '--']..addAll(testGroup),
+ <String>[path.join('tool', 'tool_coverage.dart'), '--', ...testGroup],
workingDirectory: toolRoot,
environment: <String, String>{
'FLUTTER_ROOT': flutterRoot,
@@ -791,7 +791,7 @@
Map<String, String> environment,
List<String> tests = const <String>[],
}) async {
- final List<String> args = <String>['test']..addAll(options);
+ final List<String> args = <String>['test', ...options];
if (flutterTestArgs != null && flutterTestArgs.isNotEmpty)
args.addAll(flutterTestArgs);
diff --git a/dev/bots/test/fake_process_manager.dart b/dev/bots/test/fake_process_manager.dart
index 6a4136c..29f3cda 100644
--- a/dev/bots/test/fake_process_manager.dart
+++ b/dev/bots/test/fake_process_manager.dart
@@ -35,8 +35,7 @@
set fakeResults(Map<String, List<ProcessResult>> value) {
_fakeResults = <String, List<ProcessResult>>{};
for (String key in value.keys) {
- _fakeResults[key] = <ProcessResult>[]
- ..addAll(value[key] ?? <ProcessResult>[ProcessResult(0, 0, '', '')]);
+ _fakeResults[key] = (value[key] ?? <ProcessResult>[ProcessResult(0, 0, '', '')]).toList();
}
}
diff --git a/dev/bots/unpublish_package.dart b/dev/bots/unpublish_package.dart
index cd09719..a91ce39 100644
--- a/dev/bots/unpublish_package.dart
+++ b/dev/bots/unpublish_package.dart
@@ -334,7 +334,7 @@
bool failOk = false,
bool confirm = false,
}) async {
- final List<String> command = <String>['gsutil', '--']..addAll(args);
+ final List<String> command = <String>['gsutil', '--', ...args];
if (confirm) {
return _processRunner.runProcess(
command,
@@ -358,7 +358,7 @@
print(' $file');
}
}
- await _runGsUtil(<String>['rm']..addAll(files), failOk: true, confirm: confirmed);
+ await _runGsUtil(<String>['rm', ...files], failOk: true, confirm: confirmed);
}
Future<String> _cloudReplaceDest(String src, String dest) async {
diff --git a/dev/devicelab/bin/tasks/build_mode_test.dart b/dev/devicelab/bin/tasks/build_mode_test.dart
index c152afb..b6a0dfc 100644
--- a/dev/devicelab/bin/tasks/build_mode_test.dart
+++ b/dev/devicelab/bin/tasks/build_mode_test.dart
@@ -17,7 +17,7 @@
print('run: starting...');
final Process run = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
- <String>['run', '--suppress-analytics']..addAll(args),
+ <String>['run', '--suppress-analytics', ...args],
isBot: false, // we just want to test the output, not have any debugging info
);
final List<String> stdout = <String>[];
@@ -61,8 +61,13 @@
Future<void> checkMode(String mode, {bool releaseExpected = false, bool dynamic = false}) async {
await inDirectory(appDir, () async {
print('run: starting $mode test...');
- final List<String> args = <String>['--$mode']..addAll(dynamic ? <String>['--dynamic'] : const <String>[]);
- args.addAll(<String>['-d', device.deviceId, 'lib/build_mode.dart']);
+ final List<String> args = <String>[
+ '--$mode',
+ if (dynamic) '--dynamic',
+ '-d',
+ device.deviceId,
+ 'lib/build_mode.dart',
+ ];
final String stdout = await runFlutterAndQuit(args, device);
if (!stdout.contains('>>> Release: $releaseExpected <<<')) {
throw "flutter run --$mode ${dynamic ? '--dynamic ' : ''}didn't set kReleaseMode properly";
diff --git a/dev/devicelab/bin/tasks/flutter_run_test.dart b/dev/devicelab/bin/tasks/flutter_run_test.dart
index 940e05b..6106fde 100644
--- a/dev/devicelab/bin/tasks/flutter_run_test.dart
+++ b/dev/devicelab/bin/tasks/flutter_run_test.dart
@@ -40,7 +40,7 @@
await inDirectory<void>(flutterGalleryDir, () async {
startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
- <String>['run']..addAll(options),
+ <String>['run', ...options],
environment: null,
);
final Completer<void> finished = Completer<void>();
diff --git a/dev/devicelab/bin/tasks/uncaught_image_error_linux.dart b/dev/devicelab/bin/tasks/uncaught_image_error_linux.dart
index 6b9567f..04ca28c 100644
--- a/dev/devicelab/bin/tasks/uncaught_image_error_linux.dart
+++ b/dev/devicelab/bin/tasks/uncaught_image_error_linux.dart
@@ -29,8 +29,9 @@
deviceId,
];
final Process process = await startProcess(
- path.join(flutterDirectory.path, 'bin', 'flutter'),
- <String>['run']..addAll(options));
+ path.join(flutterDirectory.path, 'bin', 'flutter'),
+ <String>['run', ...options],
+ );
final Stream<String> lines = process.stdout
.transform(utf8.decoder)
diff --git a/dev/devicelab/lib/framework/adb.dart b/dev/devicelab/lib/framework/adb.dart
index 9e4b8f0..e6765c6 100644
--- a/dev/devicelab/lib/framework/adb.dart
+++ b/dev/devicelab/lib/framework/adb.dart
@@ -262,17 +262,17 @@
/// Executes [command] on `adb shell` and returns its exit code.
Future<void> shellExec(String command, List<String> arguments, { Map<String, String> environment }) async {
- await adb(<String>['shell', command]..addAll(arguments), environment: environment);
+ await adb(<String>['shell', command, ...arguments], environment: environment);
}
/// Executes [command] on `adb shell` and returns its standard output as a [String].
Future<String> shellEval(String command, List<String> arguments, { Map<String, String> environment }) {
- return adb(<String>['shell', command]..addAll(arguments), environment: environment);
+ return adb(<String>['shell', command, ...arguments], environment: environment);
}
/// Runs `adb` with the given [arguments], selecting this device.
Future<String> adb(List<String> arguments, { Map<String, String> environment }) {
- return eval(adbPath, <String>['-s', deviceId]..addAll(arguments), environment: environment, canFail: false);
+ return eval(adbPath, <String>['-s', deviceId, ...arguments], environment: environment, canFail: false);
}
@override
diff --git a/dev/devicelab/lib/framework/apk_utils.dart b/dev/devicelab/lib/framework/apk_utils.dart
index d4780f8..bbbfa08 100644
--- a/dev/devicelab/lib/framework/apk_utils.dart
+++ b/dev/devicelab/lib/framework/apk_utils.dart
@@ -194,7 +194,7 @@
Future<ProcessResult> resultOfFlutterCommand(String command, List<String> options) {
return Process.run(
path.join(flutterDirectory.path, 'bin', 'flutter'),
- <String>[command]..addAll(options),
+ <String>[command, ...options],
workingDirectory: rootPath,
);
}
diff --git a/dev/devicelab/lib/framework/utils.dart b/dev/devicelab/lib/framework/utils.dart
index 42613a3..68ef798 100644
--- a/dev/devicelab/lib/framework/utils.dart
+++ b/dev/devicelab/lib/framework/utils.dart
@@ -235,7 +235,7 @@
environment ??= <String, String>{};
environment['BOT'] = isBot ? 'true' : 'false';
final Process process = await _processManager.start(
- <String>[executable]..addAll(arguments),
+ <String>[executable, ...arguments],
environment: environment,
workingDirectory: workingDirectory ?? cwd,
);
diff --git a/dev/devicelab/lib/tasks/hot_mode_tests.dart b/dev/devicelab/lib/tasks/hot_mode_tests.dart
index 10fa924..1b245bf 100644
--- a/dev/devicelab/lib/tasks/hot_mode_tests.dart
+++ b/dev/devicelab/lib/tasks/hot_mode_tests.dart
@@ -39,7 +39,7 @@
{
final Process process = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
- <String>['run']..addAll(options),
+ <String>['run', ...options],
environment: null,
);
@@ -93,7 +93,7 @@
{
final Process process = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
- <String>['run']..addAll(options),
+ <String>['run', ...options],
environment: null,
);
final Completer<void> stdoutDone = Completer<void>();
diff --git a/dev/devicelab/lib/tasks/microbenchmarks.dart b/dev/devicelab/lib/tasks/microbenchmarks.dart
index 2a3153b..2436c76 100644
--- a/dev/devicelab/lib/tasks/microbenchmarks.dart
+++ b/dev/devicelab/lib/tasks/microbenchmarks.dart
@@ -65,7 +65,7 @@
bool canFail = false,
Map<String, String> environment,
}) {
- final List<String> args = <String>['run']..addAll(options);
+ final List<String> args = <String>['run', ...options];
return startProcess(path.join(flutterDirectory.path, 'bin', 'flutter'), args, environment: environment);
}
diff --git a/dev/devicelab/lib/tasks/plugin_tests.dart b/dev/devicelab/lib/tasks/plugin_tests.dart
index cc9e7b2..45681da 100644
--- a/dev/devicelab/lib/tasks/plugin_tests.dart
+++ b/dev/devicelab/lib/tasks/plugin_tests.dart
@@ -65,7 +65,7 @@
await inDirectory(directory, () async {
await flutter(
'create',
- options: <String>['--template=app', '--org', 'io.flutter.devicelab']..addAll(options)..add('plugintest'),
+ options: <String>['--template=app', '--org', 'io.flutter.devicelab', ...options, 'plugintest'],
);
});
return FlutterProject(directory, 'plugintest');
diff --git a/dev/devicelab/lib/tasks/run_without_leak.dart b/dev/devicelab/lib/tasks/run_without_leak.dart
index eb9ff50..b06364a 100644
--- a/dev/devicelab/lib/tasks/run_without_leak.dart
+++ b/dev/devicelab/lib/tasks/run_without_leak.dart
@@ -24,7 +24,7 @@
await inDirectory<void>(dir, () async {
final Process process = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
- <String>['run']..addAll(options),
+ <String>['run', ...options],
environment: null,
);
final Completer<void> stdoutDone = Completer<void>();
diff --git a/dev/devicelab/lib/tasks/web_dev_mode_tests.dart b/dev/devicelab/lib/tasks/web_dev_mode_tests.dart
index cd5685e..dbb5e00 100644
--- a/dev/devicelab/lib/tasks/web_dev_mode_tests.dart
+++ b/dev/devicelab/lib/tasks/web_dev_mode_tests.dart
@@ -37,7 +37,7 @@
await packagesGet.exitCode;
final Process process = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
- <String>['run']..addAll(options),
+ <String>['run', ...options],
environment: <String, String>{
'FLUTTER_WEB': 'true',
},
@@ -96,7 +96,7 @@
{
final Process process = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
- <String>['run']..addAll(options),
+ <String>['run', ...options],
environment: <String, String>{
'FLUTTER_WEB': 'true',
},
diff --git a/dev/devicelab/test/run_test.dart b/dev/devicelab/test/run_test.dart
index 7722023..c877e98 100644
--- a/dev/devicelab/test/run_test.dart
+++ b/dev/devicelab/test/run_test.dart
@@ -21,7 +21,7 @@
}
final String dart = path.absolute(path.join('..', '..', 'bin', 'cache', 'dart-sdk', 'bin', 'dart'));
final ProcessResult scriptProcess = processManager.runSync(
- <String>[dart]..addAll(options)
+ <String>[dart, ...options]
);
return scriptProcess;
}
diff --git a/dev/snippets/lib/snippets.dart b/dev/snippets/lib/snippets.dart
index f4dd8d6..20f5da7 100644
--- a/dev/snippets/lib/snippets.dart
+++ b/dev/snippets/lib/snippets.dart
@@ -175,7 +175,8 @@
}
return <_ComponentTuple>[
_ComponentTuple('description', description),
- ]..addAll(components);
+ ...components,
+ ];
}
String _loadFileAsUtf8(File file) {
diff --git a/dev/snippets/pubspec.yaml b/dev/snippets/pubspec.yaml
index 6f8fa69..59d06d6 100644
--- a/dev/snippets/pubspec.yaml
+++ b/dev/snippets/pubspec.yaml
@@ -6,7 +6,7 @@
environment:
# The pub client defaults to an <2.0.0 sdk constraint which we need to explicitly overwrite.
- sdk: ">=2.0.0-dev.68.0 <3.0.0"
+ sdk: ">=2.2.2 <3.0.0"
dartdoc:
# Exclude this package from the hosted API docs (Ironically...).
diff --git a/dev/tools/dartdoc.dart b/dev/tools/dartdoc.dart
index 840a020..774ad3c 100644
--- a/dev/tools/dartdoc.dart
+++ b/dev/tools/dartdoc.dart
@@ -117,7 +117,7 @@
// Verify which version of dartdoc we're using.
final ProcessResult result = Process.runSync(
pubExecutable,
- <String>[]..addAll(dartdocBaseArgs)..add('--version'),
+ <String>[...dartdocBaseArgs, '--version'],
workingDirectory: kDocsRoot,
environment: pubEnvironment,
);
@@ -137,7 +137,8 @@
// Generate the documentation.
// We don't need to exclude flutter_tools in this list because it's not in the
// recursive dependencies of the package defined at dev/docs/pubspec.yaml
- final List<String> dartdocArgs = <String>[]..addAll(dartdocBaseArgs)..addAll(<String>[
+ final List<String> dartdocArgs = <String>[
+ ...dartdocBaseArgs,
'--inject-html',
'--header', 'styles.html',
'--header', 'analytics.html',
@@ -145,7 +146,8 @@
'--header', 'snippets.html',
'--header', 'opensearch.html',
'--footer-text', 'lib/footer.html',
- '--allow-warnings-in-packages', <String>[
+ '--allow-warnings-in-packages',
+ <String>[
'Flutter',
'flutter',
'platform_integration',
@@ -198,7 +200,7 @@
'--favicon=favicon.ico',
'--package-order', 'flutter,Dart,platform_integration,flutter_test,flutter_driver',
'--auto-include-dependencies',
- ]);
+ ];
String quote(String arg) => arg.contains(' ') ? "'$arg'" : arg;
print('Executing: (cd $kDocsRoot ; $pubExecutable ${dartdocArgs.map<String>(quote).join(' ')})');
diff --git a/dev/tools/pubspec.yaml b/dev/tools/pubspec.yaml
index b441205..d346ff6 100644
--- a/dev/tools/pubspec.yaml
+++ b/dev/tools/pubspec.yaml
@@ -3,7 +3,7 @@
environment:
# The pub client defaults to an <2.0.0 sdk constraint which we need to explicitly overwrite.
- sdk: ">=2.2.0 <3.0.0"
+ sdk: ">=2.2.2 <3.0.0"
dependencies:
archive: 2.0.10