add missing type parameter on methods (#22096)
diff --git a/dev/benchmarks/complex_layout/lib/main.dart b/dev/benchmarks/complex_layout/lib/main.dart
index 9b95c74..efae0a2 100644
--- a/dev/benchmarks/complex_layout/lib/main.dart
+++ b/dev/benchmarks/complex_layout/lib/main.dart
@@ -494,7 +494,7 @@
children: <Widget>[
Expanded(
child: TabBarView(
- children: tabNames.map((String tabName) {
+ children: tabNames.map<Widget>((String tabName) {
return Container(
key: PageStorageKey<String>(tabName),
child: Padding(
diff --git a/dev/bots/analyze.dart b/dev/bots/analyze.dart
index ec41f2c..20b70d9 100644
--- a/dev/bots/analyze.dart
+++ b/dev/bots/analyze.dart
@@ -207,8 +207,8 @@
final Future<List<List<int>>> savedStderr = process.stderr.toList();
final int exitCode = await process.exitCode;
final EvalResult result = EvalResult(
- stdout: utf8.decode((await savedStdout).expand((List<int> ints) => ints).toList()),
- stderr: utf8.decode((await savedStderr).expand((List<int> ints) => ints).toList()),
+ stdout: utf8.decode((await savedStdout).expand<int>((List<int> ints) => ints).toList()),
+ stderr: utf8.decode((await savedStderr).expand<int>((List<int> ints) => ints).toList()),
exitCode: exitCode,
);
@@ -328,13 +328,13 @@
.whereType<Directory>()
.map<String>((Directory entity) => path.basename(entity.path))
.toList()..sort();
- if (!_matches(packages, directories)) {
+ if (!_matches<String>(packages, directories)) {
errors.add(
'flutter/lib/*.dart does not match flutter/lib/src/*/:\n'
'These are the exported packages:\n' +
- packages.map((String path) => ' lib/$path.dart').join('\n') +
+ packages.map<String>((String path) => ' lib/$path.dart').join('\n') +
'These are the directories:\n' +
- directories.map((String path) => ' lib/src/$path/').join('\n')
+ directories.map<String>((String path) => ' lib/src/$path/').join('\n')
);
}
// Verify that the imports are well-ordered.
@@ -350,7 +350,7 @@
}
}
for (String package in dependencyMap.keys) {
- final List<String> loop = _deepSearch(dependencyMap, package);
+ final List<String> loop = _deepSearch<String>(dependencyMap, package);
if (loop != null) {
errors.add(
'${yellow}Dependency loop:$reset ' +
@@ -421,7 +421,7 @@
continue; // we catch these separately
if (seen != null && seen.contains(key))
return <T>[start, key];
- final List<T> result = _deepSearch(
+ final List<T> result = _deepSearch<T>(
map,
key,
(seen == null ? Set<T>.from(<T>[start]) : Set<T>.from(seen))..add(key),
diff --git a/dev/bots/prepare_package.dart b/dev/bots/prepare_package.dart
index b3b8fbb..116018e 100644
--- a/dev/bots/prepare_package.dart
+++ b/dev/bots/prepare_package.dart
@@ -587,7 +587,7 @@
argParser.addOption(
'branch',
defaultsTo: null,
- allowed: Branch.values.map((Branch branch) => getBranchName(branch)),
+ allowed: Branch.values.map<String>((Branch branch) => getBranchName(branch)),
help: 'The Flutter branch to build the archive with. Required.',
);
argParser.addOption(
diff --git a/dev/bots/run_command.dart b/dev/bots/run_command.dart
index 539192c..0f32200 100644
--- a/dev/bots/run_command.dart
+++ b/dev/bots/run_command.dart
@@ -56,7 +56,7 @@
Future<List<List<int>>> savedStdout, savedStderr;
if (printOutput) {
- await Future.wait(<Future<void>>[
+ await Future.wait<void>(<Future<void>>[
stdout.addStream(process.stdout),
stderr.addStream(process.stderr)
]);
@@ -75,8 +75,8 @@
print(failureMessage);
}
if (!printOutput) {
- stdout.writeln(utf8.decode((await savedStdout).expand((List<int> ints) => ints).toList()));
- stderr.writeln(utf8.decode((await savedStderr).expand((List<int> ints) => ints).toList()));
+ stdout.writeln(utf8.decode((await savedStdout).expand<int>((List<int> ints) => ints).toList()));
+ stderr.writeln(utf8.decode((await savedStderr).expand<int>((List<int> ints) => ints).toList()));
}
print(
'$redLine\n'
diff --git a/dev/bots/test/analyze-sample-code_test.dart b/dev/bots/test/analyze-sample-code_test.dart
index 7b50ad7..41ac7c4 100644
--- a/dev/bots/test/analyze-sample-code_test.dart
+++ b/dev/bots/test/analyze-sample-code_test.dart
@@ -13,8 +13,8 @@
'../../bin/cache/dart-sdk/bin/dart',
<String>['analyze-sample-code.dart', 'test/analyze-sample-code-test-input'],
);
- final List<String> stdout = await process.stdout.transform(utf8.decoder).transform(const LineSplitter()).toList();
- final List<String> stderr = await process.stderr.transform(utf8.decoder).transform(const LineSplitter()).toList();
+ final List<String> stdout = await process.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).toList();
+ final List<String> stderr = await process.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).toList();
final Match line = RegExp(r'^(.+)/main\.dart:[0-9]+:[0-9]+: .+$').matchAsPrefix(stdout[1]);
expect(line, isNot(isNull));
final String directory = line.group(1);
diff --git a/dev/devicelab/bin/tasks/commands_test.dart b/dev/devicelab/bin/tasks/commands_test.dart
index f23f4b8..a1e695d 100644
--- a/dev/devicelab/bin/tasks/commands_test.dart
+++ b/dev/devicelab/bin/tasks/commands_test.dart
@@ -30,8 +30,8 @@
);
final StreamController<String> stdout = StreamController<String>.broadcast();
run.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('run:stdout: $line');
stdout.add(line);
@@ -46,12 +46,12 @@
}
});
run.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
stderr.writeln('run:stderr: $line');
});
- run.exitCode.then((int exitCode) { ok = false; });
+ run.exitCode.then<void>((int exitCode) { ok = false; });
await Future.any<dynamic>(<Future<dynamic>>[ ready.future, run.exitCode ]);
if (!ok)
throw 'Failed to run test app.';
@@ -114,14 +114,14 @@
<String>['drive', '--use-existing-app', 'http://127.0.0.1:$vmServicePort/', '--keep-app-running', '--driver', 'test_driver/commands_${name}_test.dart'],
);
drive.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('drive:stdout: $line');
});
drive.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
stderr.writeln('drive:stderr: $line');
});
diff --git a/dev/devicelab/bin/tasks/dartdocs.dart b/dev/devicelab/bin/tasks/dartdocs.dart
index bac9d9b..174ca24 100644
--- a/dev/devicelab/bin/tasks/dartdocs.dart
+++ b/dev/devicelab/bin/tasks/dartdocs.dart
@@ -21,7 +21,7 @@
int publicMembers = 0;
int otherErrors = 0;
int otherLines = 0;
- await for (String entry in analysis.stdout.transform(utf8.decoder).transform(const LineSplitter())) {
+ await for (String entry in analysis.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter())) {
entry = entry.trim();
print('analyzer stdout: $entry');
if (entry == 'Building flutter tool...') {
@@ -36,7 +36,7 @@
otherLines += 1;
}
}
- await for (String entry in analysis.stderr.transform(utf8.decoder).transform(const LineSplitter())) {
+ await for (String entry in analysis.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter())) {
print('analyzer stderr: $entry');
if (entry.startsWith('[lint] ')) {
// ignore this line
diff --git a/dev/devicelab/bin/tasks/flutter_attach_test.dart b/dev/devicelab/bin/tasks/flutter_attach_test.dart
index 3c6641f..f39faf2 100644
--- a/dev/devicelab/bin/tasks/flutter_attach_test.dart
+++ b/dev/devicelab/bin/tasks/flutter_attach_test.dart
@@ -26,8 +26,8 @@
int exitCode;
process.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('attach:stdout: $line');
stdout.add(line);
@@ -43,14 +43,14 @@
finished.complete();
});
process.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('run:stderr: $line');
stdout.add(line);
});
- process.exitCode.then((int processExitCode) { exitCode = processExitCode; });
+ process.exitCode.then<void>((int processExitCode) { exitCode = processExitCode; });
Future<dynamic> eventOrExit(Future<Null> event) {
return Future.any<dynamic>(<Future<dynamic>>[ event, process.exitCode ]);
diff --git a/dev/devicelab/bin/tasks/flutter_test_performance.dart b/dev/devicelab/bin/tasks/flutter_test_performance.dart
index 2434680..0e5ef8d 100644
--- a/dev/devicelab/bin/tasks/flutter_test_performance.dart
+++ b/dev/devicelab/bin/tasks/flutter_test_performance.dart
@@ -45,7 +45,7 @@
);
int badLines = 0;
TestStep step = TestStep.starting;
- await for (String entry in analysis.stdout.transform(utf8.decoder).transform(const LineSplitter())) {
+ await for (String entry in analysis.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter())) {
print('test stdout ($step): $entry');
if (step == TestStep.starting && entry == 'Building flutter tool...') {
// ignore this line
@@ -76,7 +76,7 @@
}
}
}
- await for (String entry in analysis.stderr.transform(utf8.decoder).transform(const LineSplitter())) {
+ await for (String entry in analysis.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter())) {
print('test stderr: $entry');
badLines += 1;
}
diff --git a/dev/devicelab/bin/tasks/gradle_plugin_test.dart b/dev/devicelab/bin/tasks/gradle_plugin_test.dart
index 32442d9..8521314 100644
--- a/dev/devicelab/bin/tasks/gradle_plugin_test.dart
+++ b/dev/devicelab/bin/tasks/gradle_plugin_test.dart
@@ -297,7 +297,7 @@
.replaceAllMapped(_separatorExpr, (Match match) => '${match.group(1)}\n')
.split('\n')
// Expand escape sequences, so that '\ ', for example,ß becomes ' '
- .map((String path) => path.replaceAllMapped(_escapeExpr, (Match match) => match.group(1)).trim())
+ .map<String>((String path) => path.replaceAllMapped(_escapeExpr, (Match match) => match.group(1)).trim())
.where((String path) => path.isNotEmpty)
.toSet();
}
diff --git a/dev/devicelab/bin/tasks/routing_test.dart b/dev/devicelab/bin/tasks/routing_test.dart
index d001aa5..851d9dc 100644
--- a/dev/devicelab/bin/tasks/routing_test.dart
+++ b/dev/devicelab/bin/tasks/routing_test.dart
@@ -37,8 +37,8 @@
<String>['run', '--verbose', '-d', device.deviceId, '--route', '/smuggle-it', 'lib/route.dart'],
);
run.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('run:stdout: $line');
if (vmServicePort == null) {
@@ -52,12 +52,12 @@
}
});
run.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
stderr.writeln('run:stderr: $line');
});
- run.exitCode.then((int exitCode) { ok = false; });
+ run.exitCode.then<void>((int exitCode) { ok = false; });
await Future.any<dynamic>(<Future<dynamic>>[ ready.future, run.exitCode ]);
if (!ok)
throw 'Failed to run test app.';
@@ -67,14 +67,14 @@
<String>['drive', '--use-existing-app', 'http://127.0.0.1:$vmServicePort/', '--no-keep-app-running', 'lib/route.dart'],
);
drive.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('drive:stdout: $line');
});
drive.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
stderr.writeln('drive:stderr: $line');
});
diff --git a/dev/devicelab/bin/tasks/run_machine_concurrent_hot_reload.dart b/dev/devicelab/bin/tasks/run_machine_concurrent_hot_reload.dart
index 19d48d3..aa441e5 100644
--- a/dev/devicelab/bin/tasks/run_machine_concurrent_hot_reload.dart
+++ b/dev/devicelab/bin/tasks/run_machine_concurrent_hot_reload.dart
@@ -27,7 +27,7 @@
}
Stream<String> transformToLines(Stream<List<int>> byteStream) {
- return byteStream.transform(utf8.decoder).transform(const LineSplitter());
+ return byteStream.transform<String>(utf8.decoder).transform<String>(const LineSplitter());
}
task(() async {
@@ -74,7 +74,7 @@
transformToLines(run.stderr).listen((String line) {
stderr.writeln('run:stderr: $line');
});
- run.exitCode.then((int exitCode) {
+ run.exitCode.then<void>((int exitCode) {
ok = false;
});
await Future.any<dynamic>(<Future<dynamic>>[ready.future, run.exitCode]);
diff --git a/dev/devicelab/bin/tasks/run_release_test.dart b/dev/devicelab/bin/tasks/run_release_test.dart
index d3a8851..7ebcb42 100644
--- a/dev/devicelab/bin/tasks/run_release_test.dart
+++ b/dev/devicelab/bin/tasks/run_release_test.dart
@@ -29,8 +29,8 @@
final List<String> stderr = <String>[];
int runExitCode;
run.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('run:stdout: $line');
stdout.add(line);
@@ -38,13 +38,13 @@
ready.complete();
});
run.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('run:stderr: $line');
stdout.add(line);
});
- run.exitCode.then((int exitCode) { runExitCode = exitCode; });
+ run.exitCode.then<void>((int exitCode) { runExitCode = exitCode; });
await Future.any<dynamic>(<Future<dynamic>>[ ready.future, run.exitCode ]);
if (runExitCode != null)
throw 'Failed to run test app; runner unexpected exited, with exit code $runExitCode.';
diff --git a/dev/devicelab/bin/tasks/service_extensions_test.dart b/dev/devicelab/bin/tasks/service_extensions_test.dart
index dda1676..898d76f 100644
--- a/dev/devicelab/bin/tasks/service_extensions_test.dart
+++ b/dev/devicelab/bin/tasks/service_extensions_test.dart
@@ -29,8 +29,8 @@
<String>['run', '--verbose', '-d', device.deviceId, 'lib/main.dart'],
);
run.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('run:stdout: $line');
if (vmServicePort == null) {
@@ -44,12 +44,12 @@
}
});
run.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
stderr.writeln('run:stderr: $line');
});
- run.exitCode.then((int exitCode) { ok = false; });
+ run.exitCode.then<void>((int exitCode) { ok = false; });
await Future.any<dynamic>(<Future<dynamic>>[ ready.future, run.exitCode ]);
if (!ok)
throw 'Failed to run test app.';
diff --git a/dev/devicelab/bin/tasks/technical_debt__cost.dart b/dev/devicelab/bin/tasks/technical_debt__cost.dart
index dc2d076..7cc137d 100644
--- a/dev/devicelab/bin/tasks/technical_debt__cost.dart
+++ b/dev/devicelab/bin/tasks/technical_debt__cost.dart
@@ -54,7 +54,7 @@
workingDirectory: flutterDirectory.path,
);
double total = 0.0;
- await for (String entry in git.stdout.transform(utf8.decoder).transform(const LineSplitter()))
+ await for (String entry in git.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()))
total += await findCostsForFile(File(path.join(flutterDirectory.path, entry)));
final int gitExitCode = await git.exitCode;
if (gitExitCode != 0)
diff --git a/dev/devicelab/lib/framework/adb.dart b/dev/devicelab/lib/framework/adb.dart
index 8098d70..2ea21c8 100644
--- a/dev/devicelab/lib/framework/adb.dart
+++ b/dev/devicelab/lib/framework/adb.dart
@@ -129,7 +129,7 @@
@override
Future<Null> chooseWorkingDevice() async {
final List<Device> allDevices = (await discoverDevices())
- .map((String id) => AndroidDevice(deviceId: id))
+ .map<Device>((String id) => AndroidDevice(deviceId: id))
.toList();
if (allDevices.isEmpty)
@@ -298,19 +298,19 @@
await adb(<String>['logcat', '--clear']);
final Process process = await startProcess(adbPath, <String>['-s', deviceId, 'logcat']);
process.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('adb logcat: $line');
stream.sink.add(line);
}, onDone: () { stdoutDone.complete(); });
process.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('adb logcat stderr: $line');
}, onDone: () { stderrDone.complete(); });
- process.exitCode.then((int exitCode) {
+ process.exitCode.then<void>((int exitCode) {
print('adb logcat process terminated with exit code $exitCode');
if (!aborted) {
stream.addError(BuildFailedError('adb logcat failed with exit code $exitCode.'));
@@ -374,7 +374,7 @@
@override
Future<Null> chooseWorkingDevice() async {
final List<IosDevice> allDevices = (await discoverDevices())
- .map((String id) => IosDevice(deviceId: id))
+ .map<IosDevice>((String id) => IosDevice(deviceId: id))
.toList();
if (allDevices.isEmpty)
@@ -387,7 +387,7 @@
@override
Future<List<String>> discoverDevices() async {
final List<String> iosDeviceIDs = LineSplitter.split(await eval('idevice_id', <String>['-l']))
- .map((String line) => line.trim())
+ .map<String>((String line) => line.trim())
.where((String line) => line.isNotEmpty)
.toList();
if (iosDeviceIDs.isEmpty)
diff --git a/dev/devicelab/lib/framework/manifest.dart b/dev/devicelab/lib/framework/manifest.dart
index f5e2854..dc0eca3 100644
--- a/dev/devicelab/lib/framework/manifest.dart
+++ b/dev/devicelab/lib/framework/manifest.dart
@@ -83,7 +83,7 @@
List<ManifestTask> _validateAndParseTasks(dynamic tasksYaml) {
_checkType(tasksYaml is Map, tasksYaml, 'Value of "tasks"', 'dictionary');
final List<dynamic> sortedKeys = tasksYaml.keys.toList()..sort();
- return sortedKeys.map((dynamic taskName) => _validateAndParseTask(taskName, tasksYaml[taskName])).toList();
+ return sortedKeys.map<ManifestTask>((dynamic taskName) => _validateAndParseTask(taskName, tasksYaml[taskName])).toList();
}
ManifestTask _validateAndParseTask(dynamic taskName, dynamic taskYaml) {
diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
index e836d9f..87ad319 100644
--- a/dev/devicelab/lib/framework/runner.dart
+++ b/dev/devicelab/lib/framework/runner.dart
@@ -44,8 +44,8 @@
final Completer<int> port = Completer<int>();
final StreamSubscription<String> stdoutSub = runner.stdout
- .transform(const Utf8Decoder())
- .transform(const LineSplitter())
+ .transform<String>(const Utf8Decoder())
+ .transform<String>(const LineSplitter())
.listen((String line) {
if (!port.isCompleted) {
final int portValue = parseServicePort(line, prefix: 'Observatory listening on ');
@@ -58,8 +58,8 @@
});
final StreamSubscription<String> stderrSub = runner.stderr
- .transform(const Utf8Decoder())
- .transform(const LineSplitter())
+ .transform<String>(const Utf8Decoder())
+ .transform<String>(const LineSplitter())
.listen((String line) {
stderr.writeln('[$taskName] [STDERR] $line');
});
diff --git a/dev/devicelab/lib/framework/utils.dart b/dev/devicelab/lib/framework/utils.dart
index c90adf4..8ec8345 100644
--- a/dev/devicelab/lib/framework/utils.dart
+++ b/dev/devicelab/lib/framework/utils.dart
@@ -172,14 +172,14 @@
return null;
}
- return inDirectory(flutterDirectory, () {
+ return inDirectory<String>(flutterDirectory, () {
return eval('git', <String>['rev-parse', 'HEAD']);
});
}
Future<DateTime> getFlutterRepoCommitTimestamp(String commit) {
// git show -s --format=%at 4b546df7f0b3858aaaa56c4079e5be1ba91fbb65
- return inDirectory(flutterDirectory, () async {
+ return inDirectory<DateTime>(flutterDirectory, () async {
final String unixTimestamp = await eval('git', <String>[
'show',
'-s',
@@ -235,7 +235,7 @@
final ProcessInfo processInfo = ProcessInfo(command, process);
_runningProcesses.add(processInfo);
- process.exitCode.then((int exitCode) {
+ process.exitCode.then<void>((int exitCode) {
print('"$executable" exit code: $exitCode');
_runningProcesses.remove(processInfo);
});
@@ -273,14 +273,14 @@
final Completer<Null> stdoutDone = Completer<Null>();
final Completer<Null> stderrDone = Completer<Null>();
process.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('stdout: $line');
}, onDone: () { stdoutDone.complete(); });
process.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('stderr: $line');
}, onDone: () { stderrDone.complete(); });
@@ -310,15 +310,15 @@
final Completer<Null> stdoutDone = Completer<Null>();
final Completer<Null> stderrDone = Completer<Null>();
process.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('stdout: $line');
output.writeln(line);
}, onDone: () { stdoutDone.complete(); });
process.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('stderr: $line');
}, onDone: () { stderrDone.complete(); });
@@ -427,11 +427,11 @@
flutterDirectory.deleteSync(recursive: true);
}
- await inDirectory(flutterDirectory.parent, () async {
+ await inDirectory<void>(flutterDirectory.parent, () async {
await exec('git', <String>['clone', 'https://github.com/flutter/flutter.git']);
});
- await inDirectory(flutterDirectory, () async {
+ await inDirectory<void>(flutterDirectory, () async {
await exec('git', <String>['checkout', revision]);
});
diff --git a/dev/devicelab/lib/tasks/analysis.dart b/dev/devicelab/lib/tasks/analysis.dart
index 4959358..cbf4366 100644
--- a/dev/devicelab/lib/tasks/analysis.dart
+++ b/dev/devicelab/lib/tasks/analysis.dart
@@ -22,7 +22,7 @@
Directory get _megaGalleryDirectory => dir(path.join(Directory.systemTemp.path, 'mega_gallery'));
Future<TaskResult> analyzerBenchmarkTask() async {
- await inDirectory(flutterDirectory, () async {
+ await inDirectory<void>(flutterDirectory, () async {
rmTree(_megaGalleryDirectory);
mkdirs(_megaGalleryDirectory);
await dart(<String>['dev/tools/mega_gallery.dart', '--out=${_megaGalleryDirectory.path}']);
@@ -74,7 +74,7 @@
Future<double> execute(int iteration, int targetIterations) async {
section('Analyze $title ${watch ? 'with watcher' : ''} - ${iteration + 1} / $targetIterations');
final Stopwatch stopwatch = Stopwatch();
- await inDirectory(directory, () async {
+ await inDirectory<void>(directory, () async {
stopwatch.start();
await flutter('analyze', options: options);
stopwatch.stop();
diff --git a/dev/devicelab/lib/tasks/gallery.dart b/dev/devicelab/lib/tasks/gallery.dart
index 6044e4e..7fdc271 100644
--- a/dev/devicelab/lib/tasks/gallery.dart
+++ b/dev/devicelab/lib/tasks/gallery.dart
@@ -28,7 +28,7 @@
final String deviceId = device.deviceId;
final Directory galleryDirectory =
dir('${flutterDirectory.path}/examples/flutter_gallery');
- await inDirectory(galleryDirectory, () async {
+ await inDirectory<void>(galleryDirectory, () async {
await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
diff --git a/dev/devicelab/lib/tasks/hot_mode_tests.dart b/dev/devicelab/lib/tasks/hot_mode_tests.dart
index c938318..e24ff66 100644
--- a/dev/devicelab/lib/tasks/hot_mode_tests.dart
+++ b/dev/devicelab/lib/tasks/hot_mode_tests.dart
@@ -29,11 +29,11 @@
int hotReloadCount = 0;
Map<String, dynamic> twoReloadsData;
Map<String, dynamic> freshRestartReloadsData;
- await inDirectory(flutterDirectory, () async {
+ await inDirectory<void>(flutterDirectory, () async {
rmTree(_editedFlutterGalleryDir);
mkdirs(_editedFlutterGalleryDir);
recursiveCopy(flutterGalleryDir, _editedFlutterGalleryDir);
- await inDirectory(_editedFlutterGalleryDir, () async {
+ await inDirectory<void>(_editedFlutterGalleryDir, () async {
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(_editedFlutterGalleryDir.path);
{
@@ -46,8 +46,8 @@
final Completer<Null> stdoutDone = Completer<Null>();
final Completer<Null> stderrDone = Completer<Null>();
process.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
if (line.contains('\] Reloaded ')) {
if (hotReloadCount == 0) {
@@ -72,8 +72,8 @@
stdoutDone.complete();
});
process.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('stderr: $line');
}, onDone: () {
@@ -99,8 +99,8 @@
final Completer<Null> stdoutDone = Completer<Null>();
final Completer<Null> stderrDone = Completer<Null>();
process.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
if (line.contains('\] Reloaded ')) {
process.stdin.writeln('q');
@@ -110,8 +110,8 @@
stdoutDone.complete();
});
process.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
print('stderr: $line');
}, onDone: () {
diff --git a/dev/devicelab/lib/tasks/integration_tests.dart b/dev/devicelab/lib/tasks/integration_tests.dart
index 0064c1b..05ec556 100644
--- a/dev/devicelab/lib/tasks/integration_tests.dart
+++ b/dev/devicelab/lib/tasks/integration_tests.dart
@@ -73,7 +73,7 @@
final List<String> extraOptions;
Future<TaskResult> call() {
- return inDirectory(testDirectory, () async {
+ return inDirectory<TaskResult>(testDirectory, () async {
final Device device = await devices.workingDevice;
await device.unlock();
final String deviceId = device.deviceId;
diff --git a/dev/devicelab/lib/tasks/integration_ui.dart b/dev/devicelab/lib/tasks/integration_ui.dart
index c40495f..335130f 100644
--- a/dev/devicelab/lib/tasks/integration_ui.dart
+++ b/dev/devicelab/lib/tasks/integration_ui.dart
@@ -15,7 +15,7 @@
await device.unlock();
final String deviceId = device.deviceId;
final Directory testDirectory = dir('${flutterDirectory.path}/dev/integration_tests/ui');
- await inDirectory(testDirectory, () async {
+ await inDirectory<void>(testDirectory, () async {
await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
diff --git a/dev/devicelab/lib/tasks/microbenchmarks.dart b/dev/devicelab/lib/tasks/microbenchmarks.dart
index ae96483..91892be 100644
--- a/dev/devicelab/lib/tasks/microbenchmarks.dart
+++ b/dev/devicelab/lib/tasks/microbenchmarks.dart
@@ -78,8 +78,8 @@
final Completer<Map<String, double>> completer = Completer<Map<String, double>>();
final StreamSubscription<String> stderrSub = process.stderr
- .transform(const Utf8Decoder())
- .transform(const LineSplitter())
+ .transform<String>(const Utf8Decoder())
+ .transform<String>(const LineSplitter())
.listen((String line) {
stderr.writeln('[STDERR] $line');
});
@@ -87,8 +87,8 @@
bool processWasKilledIntentionally = false;
bool resultsHaveBeenParsed = false;
final StreamSubscription<String> stdoutSub = process.stdout
- .transform(const Utf8Decoder())
- .transform(const LineSplitter())
+ .transform<String>(const Utf8Decoder())
+ .transform<String>(const LineSplitter())
.listen((String line) async {
print(line);
diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart
index 345fd7c..1c09012 100644
--- a/dev/devicelab/lib/tasks/perf_tests.dart
+++ b/dev/devicelab/lib/tasks/perf_tests.dart
@@ -75,7 +75,7 @@
rmTree(sampleDir);
- await inDirectory(Directory.systemTemp, () async {
+ await inDirectory<void>(Directory.systemTemp, () async {
await flutter('create', options: <String>[sampleAppName]);
});
@@ -95,7 +95,7 @@
final bool reportMetrics;
Future<TaskResult> run() async {
- return await inDirectory(testDirectory, () async {
+ return await inDirectory<TaskResult>(testDirectory, () async {
final String deviceId = (await devices.workingDevice).deviceId;
await flutter('packages', options: <String>['get']);
@@ -131,7 +131,7 @@
final String timelineFileName;
Future<TaskResult> run() {
- return inDirectory(testDirectory, () async {
+ return inDirectory<TaskResult>(testDirectory, () async {
final Device device = await devices.workingDevice;
await device.unlock();
final String deviceId = device.deviceId;
@@ -183,7 +183,7 @@
final bool reportPackageContentSizes;
Future<TaskResult> run() async {
- return await inDirectory(testDirectory, () async {
+ return await inDirectory<TaskResult>(testDirectory, () async {
final Device device = await devices.workingDevice;
await device.unlock();
await flutter('packages', options: <String>['get']);
@@ -402,7 +402,7 @@
Device _device;
Future<TaskResult> run() {
- return inDirectory(project, () async {
+ return inDirectory<TaskResult>(project, () async {
// This test currently only works on Android, because device.logcat,
// device.getMemoryStats, etc, aren't implemented for iOS.
diff --git a/dev/devicelab/lib/tasks/sample_catalog_generator.dart b/dev/devicelab/lib/tasks/sample_catalog_generator.dart
index ef52a3d..376cc67 100644
--- a/dev/devicelab/lib/tasks/sample_catalog_generator.dart
+++ b/dev/devicelab/lib/tasks/sample_catalog_generator.dart
@@ -18,7 +18,7 @@
final String deviceId = device.deviceId;
final Directory catalogDirectory = dir('${flutterDirectory.path}/examples/catalog');
- await inDirectory(catalogDirectory, () async {
+ await inDirectory<void>(catalogDirectory, () async {
await flutter('packages', options: <String>['get']);
final bool isIosDevice = deviceOperatingSystem == DeviceOperatingSystem.ios;
diff --git a/dev/devicelab/lib/tasks/save_catalog_screenshots.dart b/dev/devicelab/lib/tasks/save_catalog_screenshots.dart
index 727358b..e1bd4d0 100644
--- a/dev/devicelab/lib/tasks/save_catalog_screenshots.dart
+++ b/dev/devicelab/lib/tasks/save_catalog_screenshots.dart
@@ -65,7 +65,7 @@
} else {
// TODO(hansmuller): only retry on 5xx and 429 responses
logMessage('Request to save "$name" (length ${content.length}) failed with status ${response.statusCode}, will retry');
- logMessage(await response.transform(utf8.decoder).join());
+ logMessage(await response.transform<String>(utf8.decoder).join());
}
return response.statusCode == HttpStatus.ok;
} on TimeoutException catch (_) {
@@ -104,7 +104,7 @@
while (uploads.any(Upload.isNotComplete)) {
final HttpClient client = HttpClient();
uploads = uploads.where(Upload.isNotComplete).toList();
- await Future.wait(uploads.map((Upload upload) => upload.run(client)));
+ await Future.wait<bool>(uploads.map<Future<bool>>((Upload upload) => upload.run(client)));
client.close(force: true);
}
}
diff --git a/dev/integration_tests/android_semantics_testing/lib/main.dart b/dev/integration_tests/android_semantics_testing/lib/main.dart
index 1b7bf65..d0f5285 100644
--- a/dev/integration_tests/android_semantics_testing/lib/main.dart
+++ b/dev/integration_tests/android_semantics_testing/lib/main.dart
@@ -59,7 +59,7 @@
builder: (BuildContext context) {
return Scaffold(
body: ListView(
- children: routes.map((String value) {
+ children: routes.map<Widget>((String value) {
return MaterialButton(
child: Text(value),
onPressed: () {
diff --git a/dev/integration_tests/android_views/lib/main.dart b/dev/integration_tests/android_views/lib/main.dart
index e1d0679..a9e79fa 100644
--- a/dev/integration_tests/android_views/lib/main.dart
+++ b/dev/integration_tests/android_views/lib/main.dart
@@ -123,7 +123,7 @@
final List<dynamic> unTypedRecordedEvents = codec.decodeMessage(data);
final List<Map<String, dynamic>> recordedEvents = unTypedRecordedEvents
.cast<Map<dynamic, dynamic>>()
- .map((Map<dynamic, dynamic> e) =>e.cast<String, dynamic>())
+ .map<Map<String, dynamic>>((Map<dynamic, dynamic> e) =>e.cast<String, dynamic>())
.toList();
await channel.invokeMethod('pipeFlutterViewEvents');
await viewChannel.invokeMethod('pipeTouchEvents');
diff --git a/dev/manual_tests/lib/animated_icons.dart b/dev/manual_tests/lib/animated_icons.dart
index 3cf6f10..b857423 100644
--- a/dev/manual_tests/lib/animated_icons.dart
+++ b/dev/manual_tests/lib/animated_icons.dart
@@ -22,7 +22,7 @@
@override
Widget build(BuildContext context) {
return ListView(
- children: samples.map((IconSample s) => IconSampleRow(s)).toList(),
+ children: samples.map<IconSampleRow>((IconSample s) => IconSampleRow(s)).toList(),
);
}
}
diff --git a/dev/manual_tests/lib/material_arc.dart b/dev/manual_tests/lib/material_arc.dart
index 5b7fada..4d9ece5 100644
--- a/dev/manual_tests/lib/material_arc.dart
+++ b/dev/manual_tests/lib/material_arc.dart
@@ -452,7 +452,7 @@
appBar: AppBar(
title: const Text('Animation'),
bottom: TabBar(
- tabs: _allDemos.map((_ArcDemo demo) => Tab(text: demo.title)).toList(),
+ tabs: _allDemos.map<Tab>((_ArcDemo demo) => Tab(text: demo.title)).toList(),
),
),
floatingActionButton: Builder(
@@ -466,7 +466,7 @@
},
),
body: TabBarView(
- children: _allDemos.map((_ArcDemo demo) => demo.builder(demo)).toList()
+ children: _allDemos.map<Widget>((_ArcDemo demo) => demo.builder(demo)).toList()
)
)
);
diff --git a/dev/manual_tests/lib/page_view.dart b/dev/manual_tests/lib/page_view.dart
index 5487f08..b882f31 100644
--- a/dev/manual_tests/lib/page_view.dart
+++ b/dev/manual_tests/lib/page_view.dart
@@ -119,7 +119,7 @@
Widget _buildBody(BuildContext context) {
return PageView(
- children: cardModels.map(buildCard).toList(),
+ children: cardModels.map<Widget>(buildCard).toList(),
// TODO(abarth): itemsWrap: itemsWrap,
scrollDirection: scrollDirection,
);
diff --git a/dev/manual_tests/lib/text.dart b/dev/manual_tests/lib/text.dart
index 938b532..0244f3e 100644
--- a/dev/manual_tests/lib/text.dart
+++ b/dev/manual_tests/lib/text.dart
@@ -189,7 +189,7 @@
switch (_random.nextInt(10)) {
case 0:
if (value == null)
- return pickFromList(_random, Colors.primaries)[(_random.nextInt(9) + 1) * 100];
+ return pickFromList<MaterialColor>(_random, Colors.primaries)[(_random.nextInt(9) + 1) * 100];
switch (_random.nextInt(4)) {
case 0:
return value.withAlpha(value.alpha + _random.nextInt(10) - 5);
@@ -240,7 +240,7 @@
case 0:
return null;
case 1:
- return pickFromList(_random, TextDecorationStyle.values);
+ return pickFromList<TextDecorationStyle>(_random, TextDecorationStyle.values);
}
return value;
}
@@ -250,7 +250,7 @@
case 0:
return null;
case 1:
- return pickFromList(_random, FontWeight.values);
+ return pickFromList<FontWeight>(_random, FontWeight.values);
}
return value;
}
@@ -260,7 +260,7 @@
case 0:
return null;
case 1:
- return pickFromList(_random, FontStyle.values);
+ return pickFromList<FontStyle>(_random, FontStyle.values);
}
return value;
}
@@ -938,7 +938,7 @@
if (mounted && intrinsicKey.currentContext.size.height != controlKey.currentContext.size.height) {
debugPrint('Found some text that unexpectedly renders at different heights.');
debugPrint('Text: $_text');
- debugPrint(_text.runes.map((int index) => 'U+' + index.toRadixString(16).padLeft(4, '0')).join(' '));
+ debugPrint(_text.runes.map<String>((int index) => 'U+' + index.toRadixString(16).padLeft(4, '0')).join(' '));
setState(() {
_ticker.stop();
});
@@ -1045,7 +1045,7 @@
FlatButton(
onPressed: _ticker.isActive ? null : () {
print('The currently visible text is: $_text');
- print(_text.runes.map((int value) => 'U+${value.toRadixString(16).padLeft(4, '0').toUpperCase()}').join(' '));
+ print(_text.runes.map<String>((int value) => 'U+${value.toRadixString(16).padLeft(4, '0').toUpperCase()}').join(' '));
},
child: const Text('DUMP TEXT TO LOGS'),
),
@@ -2109,7 +2109,7 @@
Range(0x2ceb0, 0x2ebe0),
Range(0x2f800, 0x2fa1d),
];
- final Range range = pickFromList(random, characterRanges);
+ final Range range = pickFromList<Range>(random, characterRanges);
if (range.start == range.end)
return range.start;
return range.start + random.nextInt(range.end - range.start);
diff --git a/dev/manual_tests/test/card_collection_test.dart b/dev/manual_tests/test/card_collection_test.dart
index 3ed2a1b..8de4efb 100644
--- a/dev/manual_tests/test/card_collection_test.dart
+++ b/dev/manual_tests/test/card_collection_test.dart
@@ -12,7 +12,7 @@
void main() {
testWidgets('Card Collection smoke test', (WidgetTester tester) async {
- HttpOverrides.runZoned(() async {
+ HttpOverrides.runZoned<Future<void>>(() async {
card_collection.main(); // builds the app and schedules a frame but doesn't trigger one
await tester.pump(); // see https://github.com/flutter/flutter/issues/1865
await tester.pump(); // triggers a frame
diff --git a/dev/manual_tests/test/color_testing_demo_test.dart b/dev/manual_tests/test/color_testing_demo_test.dart
index 9c3b16e..eca5509 100644
--- a/dev/manual_tests/test/color_testing_demo_test.dart
+++ b/dev/manual_tests/test/color_testing_demo_test.dart
@@ -12,7 +12,7 @@
void main() {
testWidgets('Color testing demo smoke test', (WidgetTester tester) async {
- HttpOverrides.runZoned(() async {
+ HttpOverrides.runZoned<Future<void>>(() async {
color_testing_demo.main(); // builds the app and schedules a frame but doesn't trigger one
await tester.pump(); // see https://github.com/flutter/flutter/issues/1865
await tester.pump(); // triggers a frame
diff --git a/dev/tools/dartdoc.dart b/dev/tools/dartdoc.dart
index 20ca85d..cde62e9 100644
--- a/dev/tools/dartdoc.dart
+++ b/dev/tools/dartdoc.dart
@@ -146,7 +146,7 @@
}
String quote(String arg) => arg.contains(' ') ? "'$arg'" : arg;
- print('Executing: (cd dev/docs ; $pubExecutable ${dartdocArgs.map(quote).join(' ')})');
+ print('Executing: (cd dev/docs ; $pubExecutable ${dartdocArgs.map<String>(quote).join(' ')})');
process = await Process.start(
pubExecutable,
@@ -302,7 +302,7 @@
}
List<String> findPackageNames() {
- return findPackages().map((FileSystemEntity file) => path.basename(file.path)).toList();
+ return findPackages().map<String>((FileSystemEntity file) => path.basename(file.path)).toList();
}
/// Finds all packages in the Flutter SDK
@@ -350,8 +350,8 @@
assert(prefix != null);
assert(filter != null);
stream
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
if (!filter.any((Pattern pattern) => line.contains(pattern)))
print('$prefix$line'.trim());
diff --git a/dev/tools/gen_date_localizations.dart b/dev/tools/gen_date_localizations.dart
index 6a72ced..59c3a42 100644
--- a/dev/tools/gen_date_localizations.dart
+++ b/dev/tools/gen_date_localizations.dart
@@ -135,7 +135,7 @@
}
if (json is Iterable)
- return '<dynamic>[${json.map(_jsonToMap).join(',')}]';
+ return '<dynamic>[${json.map<String>(_jsonToMap).join(',')}]';
if (json is Map<String, dynamic>) {
final StringBuffer buffer = StringBuffer('<String, dynamic>{');
diff --git a/dev/tools/gen_localizations.dart b/dev/tools/gen_localizations.dart
index da4a34c..7419912 100644
--- a/dev/tools/gen_localizations.dart
+++ b/dev/tools/gen_localizations.dart
@@ -202,7 +202,7 @@
///
/// * [getTranslation], whose documentation describes these values.
final Set<String> kSupportedLanguages = HashSet<String>.from(const <String>[
-${languageCodes.map((String value) => " '$value', // ${describeLocale(value)}").toList().join('\n')}
+${languageCodes.map<String>((String value) => " '$value', // ${describeLocale(value)}").toList().join('\n')}
]);
/// Creates a [GlobalMaterialLocalizations] instance for the given `locale`.
diff --git a/dev/tools/lib/roll_dev.dart b/dev/tools/lib/roll_dev.dart
index 143db30..d513ba0 100644
--- a/dev/tools/lib/roll_dev.dart
+++ b/dev/tools/lib/roll_dev.dart
@@ -105,7 +105,7 @@
exit(1);
}
- final List<int> parts = match.groups(<int>[1, 2, 3]).map(int.parse).toList();
+ final List<int> parts = match.groups(<int>[1, 2, 3]).map<int>(int.parse).toList();
if (match.group(4) == '0') {
print('This commit has already been released, as version ${parts.join(".")}.');
diff --git a/dev/tools/localizations_utils.dart b/dev/tools/localizations_utils.dart
index bcfadd5..dfd7a83 100644
--- a/dev/tools/localizations_utils.dart
+++ b/dev/tools/localizations_utils.dart
@@ -29,7 +29,7 @@
String camelCase(String locale) {
return locale
.split('_')
- .map((String part) => part.substring(0, 1).toUpperCase() + part.substring(1).toLowerCase())
+ .map<String>((String part) => part.substring(0, 1).toUpperCase() + part.substring(1).toLowerCase())
.join('');
}
@@ -91,7 +91,7 @@
final HttpClient client = HttpClient();
final HttpClientRequest request = await client.getUrl(Uri.parse(registry));
final HttpClientResponse response = await request.close();
- final String body = (await response.transform(utf8.decoder).toList()).join('');
+ final String body = (await response.transform<String>(utf8.decoder).toList()).join('');
client.close(force: true);
final List<Map<String, List<String>>> sections = body.split('%%').skip(1).map<Map<String, List<String>>>(_parseSection).toList();
for (Map<String, List<String>> section in sections) {
diff --git a/dev/tools/update_icons.dart b/dev/tools/update_icons.dart
index 43a1f79..1984cdf 100644
--- a/dev/tools/update_icons.dart
+++ b/dev/tools/update_icons.dart
@@ -199,9 +199,9 @@
String generateIconDeclarations(String codepointData) {
return LineSplitter.split(codepointData)
- .map((String l) => l.trim())
+ .map<String>((String l) => l.trim())
.where((String l) => l.isNotEmpty)
- .map(getIconDeclaration)
+ .map<String>(getIconDeclaration)
.join();
}
diff --git a/dev/tools/vitool/lib/vitool.dart b/dev/tools/vitool/lib/vitool.dart
index f89a93a..0e1ab4e 100644
--- a/dev/tools/vitool/lib/vitool.dart
+++ b/dev/tools/vitool/lib/vitool.dart
@@ -314,7 +314,7 @@
SvgPath applyTransform(_Transform transform) {
final List<SvgPathCommand> transformedCommands =
- commands.map((SvgPathCommand c) => c.applyTransform(transform)).toList();
+ commands.map<SvgPathCommand>((SvgPathCommand c) => c.applyTransform(transform)).toList();
return SvgPath(id, transformedCommands, opacity: opacity * transform.opacity);
}
@@ -400,7 +400,7 @@
SvgPathCommand build(String type, List<Point<double>> points) {
List<Point<double>> absPoints = points;
if (_isRelativeCommand(type)) {
- absPoints = points.map((Point<double> p) => p + lastPoint).toList();
+ absPoints = points.map<Point<double>>((Point<double> p) => p + lastPoint).toList();
}
if (type == 'M' || type == 'm')
diff --git a/examples/catalog/bin/sample_page.dart b/examples/catalog/bin/sample_page.dart
index 42afe92..d278041 100644
--- a/examples/catalog/bin/sample_page.dart
+++ b/examples/catalog/bin/sample_page.dart
@@ -89,7 +89,7 @@
final String classNames = commentValues['classes'];
if (classNames == null)
return const <String>[];
- return classNames.split(',').map((String s) => s.trim()).where((String s) => s.isNotEmpty);
+ return classNames.split(',').map<String>((String s) => s.trim()).where((String s) => s.isNotEmpty);
}
// The relative import path for this sample, like '../lib/foo.dart'.
@@ -163,7 +163,7 @@
final String entryTemplate = inputFile('bin', 'entry.md.template').readAsStringSync();
// Write the sample catalog's home page: index.md
- final Iterable<String> entries = samples.map((SampleInfo sample) {
+ final Iterable<String> entries = samples.map<String>((SampleInfo sample) {
return expandTemplate(entryTemplate, sample.commentValues);
});
writeExpandedTemplate(
@@ -195,7 +195,7 @@
}
}
for (String className in classToSamples.keys) {
- final Iterable<String> entries = classToSamples[className].map((SampleInfo sample) {
+ final Iterable<String> entries = classToSamples[className].map<String>((SampleInfo sample) {
return expandTemplate(entryTemplate, sample.commentValues);
});
writeExpandedTemplate(
@@ -215,10 +215,10 @@
outputFile('screenshot.dart', driverDirectory),
inputFile('bin', 'screenshot.dart.template').readAsStringSync(),
<String, String>{
- 'imports': samples.map((SampleInfo page) {
+ 'imports': samples.map<String>((SampleInfo page) {
return "import '${page.importPath}' show ${page.sampleClass};\n";
}).toList().join(),
- 'widgets': samples.map((SampleInfo sample) {
+ 'widgets': samples.map<String>((SampleInfo sample) {
return 'new ${sample.sampleClass}(),\n';
}).toList().join(),
},
@@ -230,7 +230,7 @@
outputFile('screenshot_test.dart', driverDirectory),
inputFile('bin', 'screenshot_test.dart.template').readAsStringSync(),
<String, String>{
- 'paths': samples.map((SampleInfo sample) {
+ 'paths': samples.map<String>((SampleInfo sample) {
return "'${outputFile(sample.sourceName + '.png').path}'";
}).toList().join(',\n'),
},
diff --git a/examples/catalog/lib/app_bar_bottom.dart b/examples/catalog/lib/app_bar_bottom.dart
index fd6be4dd..2fd1a60 100644
--- a/examples/catalog/lib/app_bar_bottom.dart
+++ b/examples/catalog/lib/app_bar_bottom.dart
@@ -63,7 +63,7 @@
),
body: TabBarView(
controller: _tabController,
- children: choices.map((Choice choice) {
+ children: choices.map<Widget>((Choice choice) {
return Padding(
padding: const EdgeInsets.all(16.0),
child: ChoiceCard(choice: choice),
diff --git a/examples/catalog/lib/basic_app_bar.dart b/examples/catalog/lib/basic_app_bar.dart
index 3638d64..6bf4cac 100644
--- a/examples/catalog/lib/basic_app_bar.dart
+++ b/examples/catalog/lib/basic_app_bar.dart
@@ -37,7 +37,7 @@
PopupMenuButton<Choice>( // overflow menu
onSelected: _select,
itemBuilder: (BuildContext context) {
- return choices.skip(2).map((Choice choice) {
+ return choices.skip(2).map<PopupMenuItem<Choice>>((Choice choice) {
return PopupMenuItem<Choice>(
value: choice,
child: Text(choice.title),
diff --git a/examples/catalog/lib/custom_semantics.dart b/examples/catalog/lib/custom_semantics.dart
index f9dc9e4..e8bd86c 100644
--- a/examples/catalog/lib/custom_semantics.dart
+++ b/examples/catalog/lib/custom_semantics.dart
@@ -50,7 +50,7 @@
trailing: DropdownButton<String>(
value: value,
onChanged: onChanged,
- items: items.map((String item) {
+ items: items.map<DropdownMenuItem<String>>((String item) {
return DropdownMenuItem<String>(
value: item,
child: Text(item),
diff --git a/examples/catalog/lib/expansion_tile_sample.dart b/examples/catalog/lib/expansion_tile_sample.dart
index 9e0264d..1d9fdfe 100644
--- a/examples/catalog/lib/expansion_tile_sample.dart
+++ b/examples/catalog/lib/expansion_tile_sample.dart
@@ -78,7 +78,7 @@
return ExpansionTile(
key: PageStorageKey<Entry>(root),
title: Text(root.title),
- children: root.children.map(_buildTiles).toList(),
+ children: root.children.map<Widget>(_buildTiles).toList(),
);
}
diff --git a/examples/catalog/lib/tabbed_app_bar.dart b/examples/catalog/lib/tabbed_app_bar.dart
index 6bcfc1d..99aba1e 100644
--- a/examples/catalog/lib/tabbed_app_bar.dart
+++ b/examples/catalog/lib/tabbed_app_bar.dart
@@ -15,7 +15,7 @@
title: const Text('Tabbed AppBar'),
bottom: TabBar(
isScrollable: true,
- tabs: choices.map((Choice choice) {
+ tabs: choices.map<Widget>((Choice choice) {
return Tab(
text: choice.title,
icon: Icon(choice.icon),
@@ -24,7 +24,7 @@
),
),
body: TabBarView(
- children: choices.map((Choice choice) {
+ children: choices.map<Widget>((Choice choice) {
return Padding(
padding: const EdgeInsets.all(16.0),
child: ChoiceCard(choice: choice),
diff --git a/examples/flutter_gallery/lib/demo/animation/home.dart b/examples/flutter_gallery/lib/demo/animation/home.dart
index 4a0de2d..6f3d9e4 100644
--- a/examples/flutter_gallery/lib/demo/animation/home.dart
+++ b/examples/flutter_gallery/lib/demo/animation/home.dart
@@ -493,7 +493,7 @@
}
Iterable<Widget> _detailItemsFor(Section section) {
- final Iterable<Widget> detailItems = section.details.map((SectionDetail detail) {
+ final Iterable<Widget> detailItems = section.details.map<Widget>((SectionDetail detail) {
return SectionDetailView(detail: detail);
});
return ListTile.divideTiles(context: context, tiles: detailItems);
@@ -591,7 +591,7 @@
},
child: PageView(
controller: _detailsPageController,
- children: allSections.map((Section section) {
+ children: allSections.map<Widget>((Section section) {
return Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: _detailItemsFor(section).toList(),
diff --git a/examples/flutter_gallery/lib/demo/colors_demo.dart b/examples/flutter_gallery/lib/demo/colors_demo.dart
index a38999b..59a9427 100644
--- a/examples/flutter_gallery/lib/demo/colors_demo.dart
+++ b/examples/flutter_gallery/lib/demo/colors_demo.dart
@@ -99,7 +99,7 @@
final TextTheme textTheme = Theme.of(context).textTheme;
final TextStyle whiteTextStyle = textTheme.body1.copyWith(color: Colors.white);
final TextStyle blackTextStyle = textTheme.body1.copyWith(color: Colors.black);
- final List<Widget> colorItems = primaryKeys.map((int index) {
+ final List<Widget> colorItems = primaryKeys.map<Widget>((int index) {
return DefaultTextStyle(
style: index > colors.threshold ? whiteTextStyle : blackTextStyle,
child: ColorItem(index: index, color: colors.primary[index]),
@@ -107,7 +107,7 @@
}).toList();
if (colors.accent != null) {
- colorItems.addAll(accentKeys.map((int index) {
+ colorItems.addAll(accentKeys.map<Widget>((int index) {
return DefaultTextStyle(
style: index > colors.threshold ? whiteTextStyle : blackTextStyle,
child: ColorItem(index: index, color: colors.accent[index], prefix: 'A'),
@@ -135,11 +135,11 @@
title: const Text('Colors'),
bottom: TabBar(
isScrollable: true,
- tabs: allPalettes.map((Palette swatch) => Tab(text: swatch.name)).toList(),
+ tabs: allPalettes.map<Widget>((Palette swatch) => Tab(text: swatch.name)).toList(),
),
),
body: TabBarView(
- children: allPalettes.map((Palette colors) {
+ children: allPalettes.map<Widget>((Palette colors) {
return PaletteTabView(colors: colors);
}).toList(),
),
diff --git a/examples/flutter_gallery/lib/demo/contacts_demo.dart b/examples/flutter_gallery/lib/demo/contacts_demo.dart
index 3ff7e6f..5566f8c 100644
--- a/examples/flutter_gallery/lib/demo/contacts_demo.dart
+++ b/examples/flutter_gallery/lib/demo/contacts_demo.dart
@@ -54,7 +54,7 @@
@override
Widget build(BuildContext context) {
final ThemeData themeData = Theme.of(context);
- final List<Widget> columnChildren = lines.sublist(0, lines.length - 1).map((String line) => Text(line)).toList();
+ final List<Widget> columnChildren = lines.sublist(0, lines.length - 1).map<Widget>((String line) => Text(line)).toList();
columnChildren.add(Text(lines.last, style: themeData.textTheme.caption));
final List<Widget> rowChildren = <Widget>[
diff --git a/examples/flutter_gallery/lib/demo/cupertino/cupertino_refresh_demo.dart b/examples/flutter_gallery/lib/demo/cupertino/cupertino_refresh_demo.dart
index cd4aecf..84f8dc7 100644
--- a/examples/flutter_gallery/lib/demo/cupertino/cupertino_refresh_demo.dart
+++ b/examples/flutter_gallery/lib/demo/cupertino/cupertino_refresh_demo.dart
@@ -58,7 +58,7 @@
CupertinoSliverRefreshControl(
onRefresh: () {
return Future<void>.delayed(const Duration(seconds: 2))
- ..then((_) {
+ ..then<void>((_) {
if (mounted) {
setState(() => repopulateList());
}
diff --git a/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart b/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart
index 9b1d14d..bf327f0 100644
--- a/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart
@@ -281,7 +281,7 @@
Widget build(BuildContext context) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: colors.map((_NamedColor namedColor) {
+ children: colors.map<Widget>((_NamedColor namedColor) {
return RawMaterialButton(
onPressed: () {
onChanged(namedColor.color);
diff --git a/examples/flutter_gallery/lib/demo/material/bottom_navigation_demo.dart b/examples/flutter_gallery/lib/demo/material/bottom_navigation_demo.dart
index 479c81a..3046c74 100644
--- a/examples/flutter_gallery/lib/demo/material/bottom_navigation_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/bottom_navigation_demo.dart
@@ -194,7 +194,7 @@
Widget build(BuildContext context) {
final BottomNavigationBar botNavBar = BottomNavigationBar(
items: _navigationViews
- .map((NavigationIconView navigationView) => navigationView.item)
+ .map<BottomNavigationBarItem>((NavigationIconView navigationView) => navigationView.item)
.toList(),
currentIndex: _currentIndex,
type: _type,
diff --git a/examples/flutter_gallery/lib/demo/material/buttons_demo.dart b/examples/flutter_gallery/lib/demo/material/buttons_demo.dart
index a590f1f..9de0655 100644
--- a/examples/flutter_gallery/lib/demo/material/buttons_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/buttons_demo.dart
@@ -280,7 +280,7 @@
dropdown1Value = newValue;
});
},
- items: <String>['One', 'Two', 'Free', 'Four'].map((String value) {
+ items: <String>['One', 'Two', 'Free', 'Four'].map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
@@ -301,7 +301,7 @@
dropdown2Value = newValue;
});
},
- items: <String>['One', 'Two', 'Free', 'Four'].map((String value) {
+ items: <String>['One', 'Two', 'Free', 'Four'].map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
@@ -325,7 +325,7 @@
'One', 'Two', 'Free', 'Four', 'Can', 'I', 'Have', 'A', 'Little',
'Bit', 'More', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten'
]
- .map((String value) {
+ .map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
@@ -365,7 +365,7 @@
onPressed: null,
)
]
- .map((Widget button) => SizedBox(width: 64.0, height: 64.0, child: button))
+ .map<Widget>((Widget button) => SizedBox(width: 64.0, height: 64.0, child: button))
.toList(),
),
);
diff --git a/examples/flutter_gallery/lib/demo/material/cards_demo.dart b/examples/flutter_gallery/lib/demo/material/cards_demo.dart
index e318eb7..2a09e8c 100644
--- a/examples/flutter_gallery/lib/demo/material/cards_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/cards_demo.dart
@@ -191,7 +191,7 @@
body: ListView(
itemExtent: TravelDestinationItem.height,
padding: const EdgeInsets.only(top: 8.0, left: 8.0, right: 8.0),
- children: destinations.map((TravelDestination destination) {
+ children: destinations.map<Widget>((TravelDestination destination) {
return Container(
margin: const EdgeInsets.only(bottom: 8.0),
child: TravelDestinationItem(
diff --git a/examples/flutter_gallery/lib/demo/material/chip_demo.dart b/examples/flutter_gallery/lib/demo/material/chip_demo.dart
index 48be2b1..3590c02 100644
--- a/examples/flutter_gallery/lib/demo/material/chip_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/chip_demo.dart
@@ -92,7 +92,7 @@
];
if (children.isNotEmpty) {
cardChildren.add(Wrap(
- children: children.map((Widget chip) {
+ children: children.map<Widget>((Widget chip) {
return Padding(
padding: const EdgeInsets.all(2.0),
child: chip,
diff --git a/examples/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart b/examples/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart
index 76ccf44..64701fe 100644
--- a/examples/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart
@@ -201,7 +201,7 @@
_activity = newValue;
});
},
- items: _allActivities.map((String value) {
+ items: _allActivities.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
diff --git a/examples/flutter_gallery/lib/demo/material/dialog_demo.dart b/examples/flutter_gallery/lib/demo/material/dialog_demo.dart
index dc48a7e..27c7bff 100644
--- a/examples/flutter_gallery/lib/demo/material/dialog_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/dialog_demo.dart
@@ -201,7 +201,7 @@
),
]
// Add a little space between the buttons
- .map((Widget button) {
+ .map<Widget>((Widget button) {
return Container(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: button
diff --git a/examples/flutter_gallery/lib/demo/material/drawer_demo.dart b/examples/flutter_gallery/lib/demo/material/drawer_demo.dart
index 5590fd5..3f08bde 100644
--- a/examples/flutter_gallery/lib/demo/material/drawer_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/drawer_demo.dart
@@ -159,7 +159,7 @@
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
- children: _drawerContents.map((String id) {
+ children: _drawerContents.map<Widget>((String id) {
return ListTile(
leading: CircleAvatar(child: Text(id)),
title: Text('Drawer item $id'),
diff --git a/examples/flutter_gallery/lib/demo/material/elevation_demo.dart b/examples/flutter_gallery/lib/demo/material/elevation_demo.dart
index 651854f..c2500a4 100644
--- a/examples/flutter_gallery/lib/demo/material/elevation_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/elevation_demo.dart
@@ -25,7 +25,7 @@
24.0,
];
- return elevations.map((double elevation) {
+ return elevations.map<Widget>((double elevation) {
return Center(
child: Card(
margin: const EdgeInsets.all(20.0),
diff --git a/examples/flutter_gallery/lib/demo/material/expansion_panels_demo.dart b/examples/flutter_gallery/lib/demo/material/expansion_panels_demo.dart
index 861d578..c3f2b86 100644
--- a/examples/flutter_gallery/lib/demo/material/expansion_panels_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/expansion_panels_demo.dart
@@ -356,7 +356,7 @@
_demoItems[index].isExpanded = !isExpanded;
});
},
- children: _demoItems.map((DemoItem<dynamic> item) {
+ children: _demoItems.map<ExpansionPanel>((DemoItem<dynamic> item) {
return ExpansionPanel(
isExpanded: item.isExpanded,
headerBuilder: item.headerBuilder,
diff --git a/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart b/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart
index 99db465..9d268fe 100644
--- a/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart
@@ -251,7 +251,7 @@
)
)
]
- .map((Widget child) {
+ .map<Widget>((Widget child) {
return Container(
padding: const EdgeInsets.symmetric(vertical: 8.0),
height: 96.0,
diff --git a/examples/flutter_gallery/lib/demo/material/grid_list_demo.dart b/examples/flutter_gallery/lib/demo/material/grid_list_demo.dart
index e6f2c60..eaa72b3 100644
--- a/examples/flutter_gallery/lib/demo/material/grid_list_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/grid_list_demo.dart
@@ -374,7 +374,7 @@
crossAxisSpacing: 4.0,
padding: const EdgeInsets.all(4.0),
childAspectRatio: (orientation == Orientation.portrait) ? 1.0 : 1.3,
- children: photos.map((Photo photo) {
+ children: photos.map<Widget>((Photo photo) {
return GridDemoPhotoItem(
photo: photo,
tileStyle: _tileStyle,
diff --git a/examples/flutter_gallery/lib/demo/material/leave_behind_demo.dart b/examples/flutter_gallery/lib/demo/material/leave_behind_demo.dart
index 3cce01a..c723baf 100644
--- a/examples/flutter_gallery/lib/demo/material/leave_behind_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/leave_behind_demo.dart
@@ -126,7 +126,7 @@
);
} else {
body = ListView(
- children: leaveBehindItems.map((LeaveBehindItem item) {
+ children: leaveBehindItems.map<Widget>((LeaveBehindItem item) {
return _LeaveBehindListItem(
item: item,
onArchive: _handleArchive,
diff --git a/examples/flutter_gallery/lib/demo/material/list_demo.dart b/examples/flutter_gallery/lib/demo/material/list_demo.dart
index a3fdb96..0f35f96 100644
--- a/examples/flutter_gallery/lib/demo/material/list_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/list_demo.dart
@@ -209,7 +209,7 @@
break;
}
- Iterable<Widget> listTiles = items.map((String item) => buildListTile(context, item));
+ Iterable<Widget> listTiles = items.map<Widget>((String item) => buildListTile(context, item));
if (_showDividers)
listTiles = ListTile.divideTiles(context: context, tiles: listTiles);
diff --git a/examples/flutter_gallery/lib/demo/material/overscroll_demo.dart b/examples/flutter_gallery/lib/demo/material/overscroll_demo.dart
index 6720de9..5863444 100644
--- a/examples/flutter_gallery/lib/demo/material/overscroll_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/overscroll_demo.dart
@@ -29,7 +29,7 @@
Future<Null> _handleRefresh() {
final Completer<Null> completer = Completer<Null>();
Timer(const Duration(seconds: 3), () { completer.complete(null); });
- return completer.future.then((_) {
+ return completer.future.then<Null>((_) {
_scaffoldKey.currentState?.showSnackBar(SnackBar(
content: const Text('Refresh complete'),
action: SnackBarAction(
diff --git a/examples/flutter_gallery/lib/demo/material/page_selector_demo.dart b/examples/flutter_gallery/lib/demo/material/page_selector_demo.dart
index 3c9a47c..4a7dfe5 100644
--- a/examples/flutter_gallery/lib/demo/material/page_selector_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/page_selector_demo.dart
@@ -54,7 +54,7 @@
color: color,
),
child: TabBarView(
- children: icons.map((Icon icon) {
+ children: icons.map<Widget>((Icon icon) {
return Container(
padding: const EdgeInsets.all(12.0),
child: Card(
diff --git a/examples/flutter_gallery/lib/demo/material/progress_indicator_demo.dart b/examples/flutter_gallery/lib/demo/material/progress_indicator_demo.dart
index cdd086f..edfa549 100644
--- a/examples/flutter_gallery/lib/demo/material/progress_indicator_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/progress_indicator_demo.dart
@@ -94,7 +94,7 @@
];
return Column(
children: indicators
- .map((Widget c) => Container(child: c, margin: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 20.0)))
+ .map<Widget>((Widget c) => Container(child: c, margin: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 20.0)))
.toList(),
);
}
diff --git a/examples/flutter_gallery/lib/demo/material/reorderable_list_demo.dart b/examples/flutter_gallery/lib/demo/material/reorderable_list_demo.dart
index af386a7..4cda720 100644
--- a/examples/flutter_gallery/lib/demo/material/reorderable_list_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/reorderable_list_demo.dart
@@ -44,7 +44,7 @@
bool _reverseSort = false;
final List<_ListItem> _items = <String>[
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
- ].map((String item) => _ListItem(item, false)).toList();
+ ].map<_ListItem>((String item) => _ListItem(item, false)).toList();
void changeItemType(_ReorderableListType type) {
setState(() {
@@ -191,7 +191,7 @@
onReorder: _onReorder,
scrollDirection: _itemType == _ReorderableListType.horizontalAvatar ? Axis.horizontal : Axis.vertical,
padding: const EdgeInsets.symmetric(vertical: 8.0),
- children: _items.map(buildListTile).toList(),
+ children: _items.map<Widget>(buildListTile).toList(),
),
),
);
diff --git a/examples/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart b/examples/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart
index 2d23648..0135c30 100644
--- a/examples/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart
@@ -174,7 +174,7 @@
),
body: TabBarView(
controller: _controller,
- children: _allPages.map((_Page page) {
+ children: _allPages.map<Widget>((_Page page) {
return SafeArea(
top: false,
bottom: false,
diff --git a/examples/flutter_gallery/lib/demo/material/search_demo.dart b/examples/flutter_gallery/lib/demo/material/search_demo.dart
index afc6186..e1be3ea 100644
--- a/examples/flutter_gallery/lib/demo/material/search_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/search_demo.dart
@@ -160,7 +160,7 @@
return _SuggestionList(
query: query,
- suggestions: suggestions.map((int i) => '$i').toList(),
+ suggestions: suggestions.map<String>((int i) => '$i').toList(),
onSelected: (String suggestion) {
query = suggestion;
showResults(context);
diff --git a/examples/flutter_gallery/lib/demo/material/snack_bar_demo.dart b/examples/flutter_gallery/lib/demo/material/snack_bar_demo.dart
index 830ceba..6f135bf 100644
--- a/examples/flutter_gallery/lib/demo/material/snack_bar_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/snack_bar_demo.dart
@@ -60,7 +60,7 @@
),
const Text(_text3),
]
- .map((Widget child) {
+ .map<Widget>((Widget child) {
return Container(
margin: const EdgeInsets.symmetric(vertical: 12.0),
child: child
diff --git a/examples/flutter_gallery/lib/demo/material/tabs_demo.dart b/examples/flutter_gallery/lib/demo/material/tabs_demo.dart
index 5cdfdcb..a9064b1 100644
--- a/examples/flutter_gallery/lib/demo/material/tabs_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/tabs_demo.dart
@@ -157,7 +157,7 @@
expandedHeight: 150.0,
forceElevated: innerBoxIsScrolled,
bottom: TabBar(
- tabs: _allPages.keys.map(
+ tabs: _allPages.keys.map<Widget>(
(_Page page) => Tab(text: page.label),
).toList(),
),
@@ -166,7 +166,7 @@
];
},
body: TabBarView(
- children: _allPages.keys.map((_Page page) {
+ children: _allPages.keys.map<Widget>((_Page page) {
return SafeArea(
top: false,
bottom: false,
diff --git a/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart b/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart
index 2a7371a..0ebb592 100644
--- a/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart
@@ -136,7 +136,7 @@
title: const Text('FAB per tab'),
bottom: TabBar(
controller: _controller,
- tabs: _allPages.map((_Page page) => Tab(text: page.label.toUpperCase())).toList(),
+ tabs: _allPages.map<Widget>((_Page page) => Tab(text: page.label.toUpperCase())).toList(),
),
actions: <Widget>[
MaterialDemoDocumentationButton(TabsFabDemo.routeName),
@@ -153,7 +153,7 @@
floatingActionButton: buildFloatingActionButton(_selectedPage),
body: TabBarView(
controller: _controller,
- children: _allPages.map(buildTabView).toList()
+ children: _allPages.map<Widget>(buildTabView).toList()
),
);
}
diff --git a/examples/flutter_gallery/lib/demo/material/tooltip_demo.dart b/examples/flutter_gallery/lib/demo/material/tooltip_demo.dart
index 6963908..20707a3 100644
--- a/examples/flutter_gallery/lib/demo/material/tooltip_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/tooltip_demo.dart
@@ -59,7 +59,7 @@
)
)
]
- .map((Widget widget) {
+ .map<Widget>((Widget widget) {
return Padding(
padding: const EdgeInsets.only(top: 16.0, left: 16.0, right: 16.0),
child: widget
diff --git a/examples/flutter_gallery/lib/demo/pesto_demo.dart b/examples/flutter_gallery/lib/demo/pesto_demo.dart
index 29ed01f..8683c33 100644
--- a/examples/flutter_gallery/lib/demo/pesto_demo.dart
+++ b/examples/flutter_gallery/lib/demo/pesto_demo.dart
@@ -492,7 +492,7 @@
),
]
),
- ]..addAll(recipe.ingredients.map(
+ ]..addAll(recipe.ingredients.map<TableRow>(
(RecipeIngredient ingredient) {
return _buildItemRow(ingredient.amount, ingredient.description);
}
@@ -506,7 +506,7 @@
),
]
)
- )..addAll(recipe.steps.map(
+ )..addAll(recipe.steps.map<TableRow>(
(RecipeStep step) {
return _buildItemRow(step.duration ?? '', step.description);
}
diff --git a/examples/flutter_gallery/lib/demo/shrine/shrine_home.dart b/examples/flutter_gallery/lib/demo/shrine/shrine_home.dart
index 6e30227..9382df9 100644
--- a/examples/flutter_gallery/lib/demo/shrine/shrine_home.dart
+++ b/examples/flutter_gallery/lib/demo/shrine/shrine_home.dart
@@ -395,7 +395,7 @@
sliver: SliverGrid(
gridDelegate: gridDelegate,
delegate: SliverChildListDelegate(
- _products.map((Product product) {
+ _products.map<Widget>((Product product) {
return _ProductItem(
product: product,
onPressed: () { _showOrderPage(product); },
diff --git a/examples/flutter_gallery/lib/demo/shrine/shrine_order.dart b/examples/flutter_gallery/lib/demo/shrine/shrine_order.dart
index 453b16e..45f0bb5 100644
--- a/examples/flutter_gallery/lib/demo/shrine/shrine_order.dart
+++ b/examples/flutter_gallery/lib/demo/shrine/shrine_order.dart
@@ -46,7 +46,7 @@
),
),
child: DropdownButton<int>(
- items: <int>[0, 1, 2, 3, 4, 5].map((int value) {
+ items: <int>[0, 1, 2, 3, 4, 5].map<DropdownMenuItem<int>>((int value) {
return DropdownMenuItem<int>(
value: value,
child: Padding(
diff --git a/examples/flutter_gallery/lib/demo/video_demo.dart b/examples/flutter_gallery/lib/demo/video_demo.dart
index ef4b9ff..59bbc1c 100644
--- a/examples/flutter_gallery/lib/demo/video_demo.dart
+++ b/examples/flutter_gallery/lib/demo/video_demo.dart
@@ -381,7 +381,7 @@
initController(butterflyController);
initController(beeController);
- isIOSSimulator().then((bool result) {
+ isIOSSimulator().then<void>((bool result) {
isSupported = !result;
});
}
diff --git a/examples/flutter_gallery/lib/gallery/demo.dart b/examples/flutter_gallery/lib/gallery/demo.dart
index d6e1168..9b428b7 100644
--- a/examples/flutter_gallery/lib/gallery/demo.dart
+++ b/examples/flutter_gallery/lib/gallery/demo.dart
@@ -96,11 +96,11 @@
),
bottom: TabBar(
isScrollable: true,
- tabs: demos.map((ComponentDemoTabData data) => Tab(text: data.tabName)).toList(),
+ tabs: demos.map<Widget>((ComponentDemoTabData data) => Tab(text: data.tabName)).toList(),
),
),
body: TabBarView(
- children: demos.map((ComponentDemoTabData demo) {
+ children: demos.map<Widget>((ComponentDemoTabData demo) {
return SafeArea(
top: false,
bottom: false,
diff --git a/examples/flutter_gallery/lib/gallery/example_code.dart b/examples/flutter_gallery/lib/gallery/example_code.dart
index 595b149..9696939 100644
--- a/examples/flutter_gallery/lib/gallery/example_code.dart
+++ b/examples/flutter_gallery/lib/gallery/example_code.dart
@@ -104,7 +104,7 @@
});
},
items: <String>['One', 'Two', 'Free', 'Four']
- .map((String value) {
+ .map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value));
@@ -263,7 +263,7 @@
'https://example.com/image-2.jpg',
'...',
'https://example.com/image-n.jpg'
- ].map((String url) {
+ ].map<Widget>((String url) {
return GridTile(
footer: GridTileBar(
title: Text(url)
diff --git a/examples/flutter_gallery/lib/gallery/options.dart b/examples/flutter_gallery/lib/gallery/options.dart
index 29e09f2..d40b31a 100644
--- a/examples/flutter_gallery/lib/gallery/options.dart
+++ b/examples/flutter_gallery/lib/gallery/options.dart
@@ -252,7 +252,7 @@
padding: const EdgeInsetsDirectional.only(end: 16.0),
icon: const Icon(Icons.arrow_drop_down),
itemBuilder: (BuildContext context) {
- return kAllGalleryTextScaleValues.map((GalleryTextScaleValue scaleValue) {
+ return kAllGalleryTextScaleValues.map<PopupMenuItem<GalleryTextScaleValue>>((GalleryTextScaleValue scaleValue) {
return PopupMenuItem<GalleryTextScaleValue>(
value: scaleValue,
child: Text(scaleValue.label),
diff --git a/examples/layers/services/isolate.dart b/examples/layers/services/isolate.dart
index 6feeda9..d7bfae7 100644
--- a/examples/layers/services/isolate.dart
+++ b/examples/layers/services/isolate.dart
@@ -141,7 +141,7 @@
final CalculationMessage message = CalculationMessage(data, _receivePort.sendPort);
// Spawn an isolate to JSON-parse the file contents. The JSON parsing
// is synchronous, so if done in the main isolate, the UI would block.
- Isolate.spawn(_calculate, message).then<Null>((Isolate isolate) {
+ Isolate.spawn<CalculationMessage>(_calculate, message).then<Null>((Isolate isolate) {
if (!isRunning) {
isolate.kill(priority: Isolate.immediate);
} else {
diff --git a/examples/layers/widgets/media_query.dart b/examples/layers/widgets/media_query.dart
index 69ed7f3..091fadb 100644
--- a/examples/layers/widgets/media_query.dart
+++ b/examples/layers/widgets/media_query.dart
@@ -74,12 +74,12 @@
if (MediaQuery.of(context).size.width < _kGridViewBreakpoint) {
return ListView(
itemExtent: _kListItemExtent,
- children: names.map((String name) => AdaptedListItem(name: name)).toList(),
+ children: names.map<Widget>((String name) => AdaptedListItem(name: name)).toList(),
);
} else {
return GridView.extent(
maxCrossAxisExtent: _kMaxTileWidth,
- children: names.map((String name) => AdaptedGridItem(name: name)).toList(),
+ children: names.map<Widget>((String name) => AdaptedGridItem(name: name)).toList(),
);
}
}
diff --git a/examples/layers/widgets/sectors.dart b/examples/layers/widgets/sectors.dart
index b8fae26..553e8af 100644
--- a/examples/layers/widgets/sectors.dart
+++ b/examples/layers/widgets/sectors.dart
@@ -28,7 +28,7 @@
List<double> wantedSectorSizes = <double>[];
List<double> actualSectorSizes = <double>[];
- double get currentTheta => wantedSectorSizes.fold(0.0, (double total, double value) => total + value);
+ double get currentTheta => wantedSectorSizes.fold<double>(0.0, (double total, double value) => total + value);
void addSector() {
final double currentTheta = this.currentTheta;
diff --git a/examples/layers/widgets/styled_text.dart b/examples/layers/widgets/styled_text.dart
index b3dae6c..633d55e 100644
--- a/examples/layers/widgets/styled_text.dart
+++ b/examples/layers/widgets/styled_text.dart
@@ -20,7 +20,7 @@
// [["Dave", "Open the pod bay..."] ...]
final List<List<String>> _kNameLines = _kDialogText
.split('\n')
- .map((String line) => line.split(':'))
+ .map<List<String>>((String line) => line.split(':'))
.toList();
final TextStyle _kDaveStyle = TextStyle(color: Colors.indigo.shade400, height: 1.8);
diff --git a/examples/stocks/lib/stock_strings.dart b/examples/stocks/lib/stock_strings.dart
index 136d079..ed14224 100644
--- a/examples/stocks/lib/stock_strings.dart
+++ b/examples/stocks/lib/stock_strings.dart
@@ -19,7 +19,7 @@
static Future<StockStrings> load(Locale locale) {
return initializeMessages(locale.toString())
- .then((Object _) {
+ .then<StockStrings>((Object _) {
return StockStrings(locale);
});
}
diff --git a/packages/flutter/lib/src/cupertino/button.dart b/packages/flutter/lib/src/cupertino/button.dart
index 046cc11..323d2c6 100644
--- a/packages/flutter/lib/src/cupertino/button.dart
+++ b/packages/flutter/lib/src/cupertino/button.dart
@@ -191,7 +191,7 @@
final Future<Null> ticker = _buttonHeldDown
? _animationController.animateTo(1.0, duration: kFadeOutDuration)
: _animationController.animateTo(0.0, duration: kFadeInDuration);
- ticker.then((Null value) {
+ ticker.then<void>((Null value) {
if (mounted && wasHeldDown != _buttonHeldDown)
_animate();
});
diff --git a/packages/flutter/lib/src/cupertino/dialog.dart b/packages/flutter/lib/src/cupertino/dialog.dart
index 092beb0..4f5c7ce 100644
--- a/packages/flutter/lib/src/cupertino/dialog.dart
+++ b/packages/flutter/lib/src/cupertino/dialog.dart
@@ -1564,7 +1564,7 @@
)
: Rect.zero;
- final List<Rect> pressedButtonRects = _pressedButtons.map((RenderBox pressedButton) {
+ final List<Rect> pressedButtonRects = _pressedButtons.map<Rect>((RenderBox pressedButton) {
final MultiChildLayoutParentData buttonParentData = pressedButton.parentData;
return Rect.fromLTWH(
diff --git a/packages/flutter/lib/src/foundation/isolates.dart b/packages/flutter/lib/src/foundation/isolates.dart
index 603e052..7eaf618 100644
--- a/packages/flutter/lib/src/foundation/isolates.dart
+++ b/packages/flutter/lib/src/foundation/isolates.dart
@@ -50,7 +50,7 @@
Timeline.startSync('$debugLabel: start', flow: flow);
final ReceivePort resultPort = ReceivePort();
Timeline.finishSync();
- final Isolate isolate = await Isolate.spawn(
+ final Isolate isolate = await Isolate.spawn<_IsolateConfiguration<Q, R>>(
_spawn,
_IsolateConfiguration<Q, R>(
callback,
diff --git a/packages/flutter/lib/src/foundation/print.dart b/packages/flutter/lib/src/foundation/print.dart
index 2e8acd1..434dbb2 100644
--- a/packages/flutter/lib/src/foundation/print.dart
+++ b/packages/flutter/lib/src/foundation/print.dart
@@ -32,7 +32,7 @@
/// Used by tests.
void debugPrintSynchronously(String message, { int wrapWidth }) {
if (wrapWidth != null) {
- print(message.split('\n').expand((String line) => debugWordWrap(line, wrapWidth)).join('\n'));
+ print(message.split('\n').expand<String>((String line) => debugWordWrap(line, wrapWidth)).join('\n'));
} else {
print(message);
}
@@ -42,7 +42,7 @@
/// messages on platforms that rate-limit their logging (for example, Android).
void debugPrintThrottled(String message, { int wrapWidth }) {
if (wrapWidth != null) {
- _debugPrintBuffer.addAll(message.split('\n').expand((String line) => debugWordWrap(line, wrapWidth)));
+ _debugPrintBuffer.addAll(message.split('\n').expand<String>((String line) => debugWordWrap(line, wrapWidth)));
} else {
_debugPrintBuffer.addAll(message.split('\n'));
}
diff --git a/packages/flutter/lib/src/material/animated_icons/animated_icons.dart b/packages/flutter/lib/src/material/animated_icons/animated_icons.dart
index 1077544..6284d47 100644
--- a/packages/flutter/lib/src/material/animated_icons/animated_icons.dart
+++ b/packages/flutter/lib/src/material/animated_icons/animated_icons.dart
@@ -195,7 +195,7 @@
final List<double> opacities;
void paint(ui.Canvas canvas, Color color, _UiPathFactory uiPathFactory, double progress) {
- final double opacity = _interpolate(opacities, progress, lerpDouble);
+ final double opacity = _interpolate<double>(opacities, progress, lerpDouble);
final ui.Paint paint = ui.Paint()
..style = PaintingStyle.fill
..color = color.withOpacity(color.opacity * opacity);
@@ -227,7 +227,7 @@
@override
void apply(Path path, double progress) {
- final Offset offset = _interpolate(points, progress, Offset.lerp);
+ final Offset offset = _interpolate<Offset>(points, progress, Offset.lerp);
path.moveTo(offset.dx, offset.dy);
}
}
@@ -241,9 +241,9 @@
@override
void apply(Path path, double progress) {
- final Offset controlPoint1 = _interpolate(controlPoints1, progress, Offset.lerp);
- final Offset controlPoint2 = _interpolate(controlPoints2, progress, Offset.lerp);
- final Offset targetPoint = _interpolate(targetPoints, progress, Offset.lerp);
+ final Offset controlPoint1 = _interpolate<Offset>(controlPoints1, progress, Offset.lerp);
+ final Offset controlPoint2 = _interpolate<Offset>(controlPoints2, progress, Offset.lerp);
+ final Offset targetPoint = _interpolate<Offset>(targetPoints, progress, Offset.lerp);
path.cubicTo(
controlPoint1.dx, controlPoint1.dy,
controlPoint2.dx, controlPoint2.dy,
@@ -260,7 +260,7 @@
@override
void apply(Path path, double progress) {
- final Offset point = _interpolate(points, progress, Offset.lerp);
+ final Offset point = _interpolate<Offset>(points, progress, Offset.lerp);
path.lineTo(point.dx, point.dy);
}
}
diff --git a/packages/flutter/lib/src/material/bottom_navigation_bar.dart b/packages/flutter/lib/src/material/bottom_navigation_bar.dart
index 1116501..9024b53 100644
--- a/packages/flutter/lib/src/material/bottom_navigation_bar.dart
+++ b/packages/flutter/lib/src/material/bottom_navigation_bar.dart
@@ -582,7 +582,7 @@
double weightSum(Iterable<Animation<double>> animations) {
// We're adding flex values instead of animation values to produce correct
// ratios.
- return animations.map(state._evaluateFlex).fold(0.0, (double sum, double value) => sum + value);
+ return animations.map<double>(state._evaluateFlex).fold<double>(0.0, (double sum, double value) => sum + value);
}
final double allWeights = weightSum(state._animations);
diff --git a/packages/flutter/lib/src/material/mergeable_material.dart b/packages/flutter/lib/src/material/mergeable_material.dart
index 5e333a2..757b6d3 100644
--- a/packages/flutter/lib/src/material/mergeable_material.dart
+++ b/packages/flutter/lib/src/material/mergeable_material.dart
@@ -278,10 +278,10 @@
void didUpdateWidget(MergeableMaterial oldWidget) {
super.didUpdateWidget(oldWidget);
- final Set<LocalKey> oldKeys = oldWidget.children.map(
+ final Set<LocalKey> oldKeys = oldWidget.children.map<LocalKey>(
(MergeableMaterialItem child) => child.key
).toSet();
- final Set<LocalKey> newKeys = widget.children.map(
+ final Set<LocalKey> newKeys = widget.children.map<LocalKey>(
(MergeableMaterialItem child) => child.key
).toSet();
final Set<LocalKey> newOnly = newKeys.difference(oldKeys);
diff --git a/packages/flutter/lib/src/material/user_accounts_drawer_header.dart b/packages/flutter/lib/src/material/user_accounts_drawer_header.dart
index 7c37659..3ca9773 100644
--- a/packages/flutter/lib/src/material/user_accounts_drawer_header.dart
+++ b/packages/flutter/lib/src/material/user_accounts_drawer_header.dart
@@ -30,7 +30,7 @@
top: 0.0,
end: 0.0,
child: Row(
- children: (otherAccountsPictures ?? <Widget>[]).take(3).map((Widget picture) {
+ children: (otherAccountsPictures ?? <Widget>[]).take(3).map<Widget>((Widget picture) {
return Padding(
padding: const EdgeInsetsDirectional.only(start: 8.0),
child: Semantics(
diff --git a/packages/flutter/lib/src/painting/image_resolution.dart b/packages/flutter/lib/src/painting/image_resolution.dart
index 7b9bb82..2061de0 100644
--- a/packages/flutter/lib/src/painting/image_resolution.dart
+++ b/packages/flutter/lib/src/painting/image_resolution.dart
@@ -223,7 +223,7 @@
final Iterable<String> keys = parsedJson.keys;
final Map<String, List<String>> parsedManifest =
Map<String, List<String>>.fromIterables(keys,
- keys.map((String key) => List<String>.from(parsedJson[key])));
+ keys.map<List<String>>((String key) => List<String>.from(parsedJson[key])));
// TODO(ianh): convert that data structure to the right types.
return SynchronousFuture<Map<String, List<String>>>(parsedManifest);
}
diff --git a/packages/flutter/lib/src/painting/text_span.dart b/packages/flutter/lib/src/painting/text_span.dart
index f2a08d5..55a8f15 100644
--- a/packages/flutter/lib/src/painting/text_span.dart
+++ b/packages/flutter/lib/src/painting/text_span.dart
@@ -355,7 +355,7 @@
List<DiagnosticsNode> debugDescribeChildren() {
if (children == null)
return const <DiagnosticsNode>[];
- return children.map((TextSpan child) {
+ return children.map<DiagnosticsNode>((TextSpan child) {
if (child != null) {
return child.toDiagnosticsNode();
} else {
diff --git a/packages/flutter/lib/src/rendering/custom_layout.dart b/packages/flutter/lib/src/rendering/custom_layout.dart
index 79f0577..1b44d04 100644
--- a/packages/flutter/lib/src/rendering/custom_layout.dart
+++ b/packages/flutter/lib/src/rendering/custom_layout.dart
@@ -214,7 +214,7 @@
if (_debugChildrenNeedingLayout.length > 1) {
throw FlutterError(
'The $this custom multichild layout delegate forgot to lay out the following children:\n'
- ' ${_debugChildrenNeedingLayout.map(_debugDescribeChild).join("\n ")}\n'
+ ' ${_debugChildrenNeedingLayout.map<String>(_debugDescribeChild).join("\n ")}\n'
'Each child must be laid out exactly once.'
);
} else {
diff --git a/packages/flutter/lib/src/rendering/layer.dart b/packages/flutter/lib/src/rendering/layer.dart
index 2c12b3e..c018819 100644
--- a/packages/flutter/lib/src/rendering/layer.dart
+++ b/packages/flutter/lib/src/rendering/layer.dart
@@ -1140,7 +1140,7 @@
@override
S find<S>(Offset regionOffset) {
- return super.find(regionOffset - offset);
+ return super.find<S>(regionOffset - offset);
}
@override
diff --git a/packages/flutter/lib/src/rendering/platform_view.dart b/packages/flutter/lib/src/rendering/platform_view.dart
index dc87c77..bf03b12 100644
--- a/packages/flutter/lib/src/rendering/platform_view.dart
+++ b/packages/flutter/lib/src/rendering/platform_view.dart
@@ -382,8 +382,8 @@
eventTime: event.timeStamp.inMilliseconds,
action: action,
pointerCount: pointerPositions.length,
- pointerProperties: pointers.map((int i) => pointerProperties[i]).toList(),
- pointerCoords: pointers.map((int i) => pointerPositions[i]).toList(),
+ pointerProperties: pointers.map<AndroidPointerProperties>((int i) => pointerProperties[i]).toList(),
+ pointerCoords: pointers.map<AndroidPointerCoords>((int i) => pointerPositions[i]).toList(),
metaState: 0,
buttonState: 0,
xPrecision: 1.0,
diff --git a/packages/flutter/lib/src/scheduler/ticker.dart b/packages/flutter/lib/src/scheduler/ticker.dart
index a943a91..cd4d77b 100644
--- a/packages/flutter/lib/src/scheduler/ticker.dart
+++ b/packages/flutter/lib/src/scheduler/ticker.dart
@@ -389,7 +389,7 @@
callback();
return null;
}
- orCancel.then(thunk, onError: thunk);
+ orCancel.then<Null>(thunk, onError: thunk);
}
/// A future that resolves when this future resolves or throws when the ticker
diff --git a/packages/flutter/lib/src/semantics/semantics.dart b/packages/flutter/lib/src/semantics/semantics.dart
index 6d956ba..9837cfb 100644
--- a/packages/flutter/lib/src/semantics/semantics.dart
+++ b/packages/flutter/lib/src/semantics/semantics.dart
@@ -1844,12 +1844,12 @@
if (scale != null) {
description = '$rect scaled by ${scale.toStringAsFixed(1)}x';
} else if (transform != null && !MatrixUtils.isIdentity(transform)) {
- final String matrix = transform.toString().split('\n').take(4).map((String line) => line.substring(4)).join('; ');
+ final String matrix = transform.toString().split('\n').take(4).map<String>((String line) => line.substring(4)).join('; ');
description = '$rect with transform [$matrix]';
}
properties.add(DiagnosticsProperty<Rect>('rect', rect, description: description, showName: false));
}
- final List<String> actions = _actions.keys.map((SemanticsAction action) => describeEnum(action)).toList()..sort();
+ final List<String> actions = _actions.keys.map<String>((SemanticsAction action) => describeEnum(action)).toList()..sort();
final List<String> customSemanticsActions = _customSemanticsActions.keys
.map<String>((CustomSemanticsAction action) => action.label)
.toList();
@@ -2118,7 +2118,7 @@
sortedIds.add(id);
}
- startNodes.map((SemanticsNode node) => node.id).forEach(search);
+ startNodes.map<int>((SemanticsNode node) => node.id).forEach(search);
return sortedIds.map<SemanticsNode>((int id) => nodeMap[id]).toList().reversed.toList();
}
}
diff --git a/packages/flutter/lib/src/services/platform_views.dart b/packages/flutter/lib/src/services/platform_views.dart
index e015a98..0efb9c4 100644
--- a/packages/flutter/lib/src/services/platform_views.dart
+++ b/packages/flutter/lib/src/services/platform_views.dart
@@ -328,8 +328,8 @@
eventTime,
action,
pointerCount,
- pointerProperties.map((AndroidPointerProperties p) => p._asList()).toList(),
- pointerCoords.map((AndroidPointerCoords p) => p._asList()).toList(),
+ pointerProperties.map<List<int>>((AndroidPointerProperties p) => p._asList()).toList(),
+ pointerCoords.map<List<double>>((AndroidPointerCoords p) => p._asList()).toList(),
metaState,
buttonState,
xPrecision,
diff --git a/packages/flutter/lib/src/services/text_formatter.dart b/packages/flutter/lib/src/services/text_formatter.dart
index 1eec81c..e421143 100644
--- a/packages/flutter/lib/src/services/text_formatter.dart
+++ b/packages/flutter/lib/src/services/text_formatter.dart
@@ -233,7 +233,7 @@
(String substring) {
return whitelistedPattern
.allMatches(substring)
- .map((Match match) => match.group(0))
+ .map<String>((Match match) => match.group(0))
.join();
} ,
);
diff --git a/packages/flutter/lib/src/widgets/image.dart b/packages/flutter/lib/src/widgets/image.dart
index 59232c0..91e87ef 100644
--- a/packages/flutter/lib/src/widgets/image.dart
+++ b/packages/flutter/lib/src/widgets/image.dart
@@ -98,7 +98,7 @@
}
}
stream.addListener(listener, onError: errorListener);
- completer.future.then((Null _) { stream.removeListener(listener); });
+ completer.future.then<void>((Null _) { stream.removeListener(listener); });
return completer.future;
}
diff --git a/packages/flutter/lib/src/widgets/list_wheel_scroll_view.dart b/packages/flutter/lib/src/widgets/list_wheel_scroll_view.dart
index 78a1af1..cf6c9a5c 100644
--- a/packages/flutter/lib/src/widgets/list_wheel_scroll_view.dart
+++ b/packages/flutter/lib/src/widgets/list_wheel_scroll_view.dart
@@ -266,7 +266,7 @@
curve: curve,
));
}
- await Future.wait(futures);
+ await Future.wait<void>(futures);
}
/// Changes which item index is centered in the controlled scroll view.
diff --git a/packages/flutter/lib/src/widgets/localizations.dart b/packages/flutter/lib/src/widgets/localizations.dart
index 0b4124c..e960ec3 100644
--- a/packages/flutter/lib/src/widgets/localizations.dart
+++ b/packages/flutter/lib/src/widgets/localizations.dart
@@ -74,7 +74,7 @@
return SynchronousFuture<Map<Type, dynamic>>(output);
// Some of delegate.load() values were asynchronous futures. Wait for them.
- return Future.wait<dynamic>(pendingList.map((_Pending p) => p.futureValue))
+ return Future.wait<dynamic>(pendingList.map<Future<dynamic>>((_Pending p) => p.futureValue))
.then<Map<Type, dynamic>>((List<dynamic> values) {
assert(values.length == pendingList.length);
for (int i = 0; i < values.length; i += 1) {
@@ -502,7 +502,7 @@
Map<Type, dynamic> typeToResources;
final Future<Map<Type, dynamic>> typeToResourcesFuture = _loadAll(locale, delegates)
- .then((Map<Type, dynamic> value) {
+ .then<Map<Type, dynamic>>((Map<Type, dynamic> value) {
return typeToResources = value;
});
@@ -516,7 +516,7 @@
// - If we're running at app startup time then defer reporting the first
// "useful" frame until after the async load has completed.
WidgetsBinding.instance.deferFirstFrameReport();
- typeToResourcesFuture.then((Map<Type, dynamic> value) {
+ typeToResourcesFuture.then<void>((Map<Type, dynamic> value) {
WidgetsBinding.instance.allowFirstFrameReport();
if (!mounted)
return;
diff --git a/packages/flutter/lib/src/widgets/routes.dart b/packages/flutter/lib/src/widgets/routes.dart
index fd6d3df..9da5253 100644
--- a/packages/flutter/lib/src/widgets/routes.dart
+++ b/packages/flutter/lib/src/widgets/routes.dart
@@ -660,6 +660,7 @@
///
/// The given [BuildContext] will be rebuilt if the state of the route changes
/// (specifically, if [isCurrent] or [canPop] change value).
+ @optionalTypeArgs
static ModalRoute<T> of<T extends Object>(BuildContext context) {
final _ModalScopeStatus widget = context.inheritFromWidgetOfExactType(_ModalScopeStatus);
return widget?.route;
@@ -1519,7 +1520,7 @@
}) {
assert(pageBuilder != null);
assert(!barrierDismissible || barrierLabel != null);
- return Navigator.of(context, rootNavigator: true).push(_DialogRoute<T>(
+ return Navigator.of(context, rootNavigator: true).push<T>(_DialogRoute<T>(
pageBuilder: pageBuilder,
barrierDismissible: barrierDismissible,
barrierLabel: barrierLabel,
diff --git a/packages/flutter/lib/src/widgets/scroll_controller.dart b/packages/flutter/lib/src/widgets/scroll_controller.dart
index 3c37682..abaf543 100644
--- a/packages/flutter/lib/src/widgets/scroll_controller.dart
+++ b/packages/flutter/lib/src/widgets/scroll_controller.dart
@@ -150,7 +150,7 @@
final List<Future<Null>> animations = List<Future<Null>>(_positions.length);
for (int i = 0; i < _positions.length; i += 1)
animations[i] = _positions[i].animateTo(offset, duration: duration, curve: curve);
- return Future.wait<Null>(animations).then((List<Null> _) => null);
+ return Future.wait<Null>(animations).then<Null>((List<Null> _) => null);
}
/// Jumps the scroll position from its current value to the given value,
diff --git a/packages/flutter/lib/src/widgets/scrollable.dart b/packages/flutter/lib/src/widgets/scrollable.dart
index fac04a3..d64c67a 100644
--- a/packages/flutter/lib/src/widgets/scrollable.dart
+++ b/packages/flutter/lib/src/widgets/scrollable.dart
@@ -213,7 +213,7 @@
return Future<Null>.value();
if (futures.length == 1)
return futures.single;
- return Future.wait<Null>(futures).then((List<Null> _) => null);
+ return Future.wait<Null>(futures).then<Null>((List<Null> _) => null);
}
}
diff --git a/packages/flutter/lib/src/widgets/table.dart b/packages/flutter/lib/src/widgets/table.dart
index 9023b57..85257f1 100644
--- a/packages/flutter/lib/src/widgets/table.dart
+++ b/packages/flutter/lib/src/widgets/table.dart
@@ -141,7 +141,7 @@
: null,
super(key: key) {
assert(() {
- final List<Widget> flatChildren = children.expand((TableRow row) => row.children).toList(growable: false);
+ final List<Widget> flatChildren = children.expand<Widget>((TableRow row) => row.children).toList(growable: false);
if (debugChildrenHaveDuplicateKeys(this, flatChildren)) {
throw FlutterError(
'Two or more cells in this Table contain widgets with the same key.\n'
@@ -255,7 +255,7 @@
super.mount(parent, newSlot);
assert(!_debugWillReattachChildren);
assert(() { _debugWillReattachChildren = true; return true; }());
- _children = widget.children.map((TableRow row) {
+ _children = widget.children.map<_TableElementRow>((TableRow row) {
return _TableElementRow(
key: row.key,
children: row.children.map<Element>((Widget child) {
@@ -351,7 +351,7 @@
@override
void visitChildren(ElementVisitor visitor) {
- for (Element child in _children.expand((_TableElementRow row) => row.children)) {
+ for (Element child in _children.expand<Element>((_TableElementRow row) => row.children)) {
if (!_forgottenChildren.contains(child))
visitor(child);
}
diff --git a/packages/flutter/lib/src/widgets/widget_inspector.dart b/packages/flutter/lib/src/widgets/widget_inspector.dart
index 9b7a624..941de32 100644
--- a/packages/flutter/lib/src/widgets/widget_inspector.dart
+++ b/packages/flutter/lib/src/widgets/widget_inspector.dart
@@ -1262,7 +1262,7 @@
else
throw FlutterError('Cannot get parent chain for node of type ${value.runtimeType}');
- return path.map((_DiagnosticsPathNode node) => _pathNodeToJson(
+ return path.map<Object>((_DiagnosticsPathNode node) => _pathNodeToJson(
node,
_SerializeConfig(groupName: groupName),
)).toList();
diff --git a/packages/flutter/test/cupertino/nav_bar_test.dart b/packages/flutter/test/cupertino/nav_bar_test.dart
index 3ccadc0..0855c7e 100644
--- a/packages/flutter/test/cupertino/nav_bar_test.dart
+++ b/packages/flutter/test/cupertino/nav_bar_test.dart
@@ -262,7 +262,7 @@
return aParagraph.text.style.fontSize.compareTo(bParagraph.text.style.fontSize);
});
- Iterable<double> opacities = titles.map((Element element) {
+ Iterable<double> opacities = titles.map<double>((Element element) {
final RenderAnimatedOpacity renderOpacity = element.ancestorRenderObjectOfType(const TypeMatcher<RenderAnimatedOpacity>());
return renderOpacity.opacity.value;
});
@@ -287,7 +287,7 @@
return aParagraph.text.style.fontSize.compareTo(bParagraph.text.style.fontSize);
});
- opacities = titles.map((Element element) {
+ opacities = titles.map<double>((Element element) {
final RenderAnimatedOpacity renderOpacity = element.ancestorRenderObjectOfType(const TypeMatcher<RenderAnimatedOpacity>());
return renderOpacity.opacity.value;
});
diff --git a/packages/flutter/test/cupertino/route_test.dart b/packages/flutter/test/cupertino/route_test.dart
index de721c5..fd706fc 100644
--- a/packages/flutter/test/cupertino/route_test.dart
+++ b/packages/flutter/test/cupertino/route_test.dart
@@ -80,7 +80,7 @@
);
});
- final Iterable<double> opacities = titles.map((Element element) {
+ final Iterable<double> opacities = titles.map<double>((Element element) {
final RenderAnimatedOpacity renderOpacity =
element.ancestorRenderObjectOfType(const TypeMatcher<RenderAnimatedOpacity>());
return renderOpacity.opacity.value;
diff --git a/packages/flutter/test/foundation/caching_iterable_test.dart b/packages/flutter/test/foundation/caching_iterable_test.dart
index f93229d..39e345e 100644
--- a/packages/flutter/test/foundation/caching_iterable_test.dart
+++ b/packages/flutter/test/foundation/caching_iterable_test.dart
@@ -63,7 +63,7 @@
expect(integers.first, equals(1));
expect(yieldCount, equals(2));
- expect(evens.map((int i) => i + 1), equals(<int>[3, 5]));
+ expect(evens.map<int>((int i) => i + 1), equals(<int>[3, 5]));
expect(yieldCount, equals(5));
expect(evens, equals(<int>[2, 4]));
@@ -95,13 +95,13 @@
final Iterable<int> integers = CachingIterable<int>(range(1, 5).iterator);
expect(yieldCount, equals(0));
- final Iterable<int> expanded1 = integers.expand((int i) => <int>[i, i]);
+ final Iterable<int> expanded1 = integers.expand<int>((int i) => <int>[i, i]);
expect(yieldCount, equals(0));
expect(expanded1, equals(<int>[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]));
expect(yieldCount, equals(5));
- final Iterable<int> expanded2 = integers.expand((int i) => <int>[i, i]);
+ final Iterable<int> expanded2 = integers.expand<int>((int i) => <int>[i, i]);
expect(yieldCount, equals(5));
expect(expanded2, equals(<int>[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]));
diff --git a/packages/flutter/test/material/app_bar_test.dart b/packages/flutter/test/material/app_bar_test.dart
index b22df03..39687a7 100644
--- a/packages/flutter/test/material/app_bar_test.dart
+++ b/packages/flutter/test/material/app_bar_test.dart
@@ -33,7 +33,7 @@
expandedHeight: expandedHeight,
snap: snap,
bottom: TabBar(
- tabs: <String>['A','B','C'].map((String t) => Tab(text: 'TAB $t')).toList(),
+ tabs: <String>['A','B','C'].map<Widget>((String t) => Tab(text: 'TAB $t')).toList(),
),
),
SliverToBoxAdapter(
diff --git a/packages/flutter/test/material/colors_test.dart b/packages/flutter/test/material/colors_test.dart
index 243fb79..7414363 100644
--- a/packages/flutter/test/material/colors_test.dart
+++ b/packages/flutter/test/material/colors_test.dart
@@ -54,12 +54,12 @@
test('Colors swatches do not contain duplicates', () {
for (MaterialColor color in Colors.primaries)
- expect(primaryKeys.map((int key) => color[key]).toSet().length, primaryKeys.length);
+ expect(primaryKeys.map<Color>((int key) => color[key]).toSet().length, primaryKeys.length);
- expect(primaryKeys.map((int key) => Colors.grey[key]).toSet().length, primaryKeys.length);
+ expect(primaryKeys.map<Color>((int key) => Colors.grey[key]).toSet().length, primaryKeys.length);
for (MaterialAccentColor color in Colors.accents)
- expect(accentKeys.map((int key) => color[key]).toSet().length, accentKeys.length);
+ expect(accentKeys.map<Color>((int key) => color[key]).toSet().length, accentKeys.length);
});
test('All color swatch colors are opaque and equal their primary color', () {
diff --git a/packages/flutter/test/material/data_table_test.dart b/packages/flutter/test/material/data_table_test.dart
index 88cf8e6..d05561f 100644
--- a/packages/flutter/test/material/data_table_test.dart
+++ b/packages/flutter/test/material/data_table_test.dart
@@ -32,7 +32,7 @@
}
),
],
- rows: kDesserts.map((Dessert dessert) {
+ rows: kDesserts.map<DataRow>((Dessert dessert) {
return DataRow(
key: Key(dessert.name),
onSelectChanged: (bool selected) {
diff --git a/packages/flutter/test/material/dropdown_test.dart b/packages/flutter/test/material/dropdown_test.dart
index a5fa903..950629d 100644
--- a/packages/flutter/test/material/dropdown_test.dart
+++ b/packages/flutter/test/material/dropdown_test.dart
@@ -43,7 +43,7 @@
onChanged: onChanged,
isDense: isDense,
isExpanded: isExpanded,
- items: items.map((String item) {
+ items: items.map<DropdownMenuItem<String>>((String item) {
return DropdownMenuItem<String>(
key: ValueKey<String>(item),
value: item,
@@ -407,7 +407,7 @@
// When isDense is true, the button's height is reduced. The menu items'
// heights are not.
- final double menuItemHeight = itemBoxes.map((RenderBox box) => box.size.height).reduce(math.max);
+ final double menuItemHeight = itemBoxes.map<double>((RenderBox box) => box.size.height).reduce(math.max);
expect(menuItemHeight, greaterThan(buttonBox.size.height));
for (RenderBox itemBox in itemBoxes) {
diff --git a/packages/flutter/test/material/list_tile_test.dart b/packages/flutter/test/material/list_tile_test.dart
index 39ecd20..4102acc 100644
--- a/packages/flutter/test/material/list_tile_test.dart
+++ b/packages/flutter/test/material/list_tile_test.dart
@@ -235,7 +235,7 @@
return ListView(
children: ListTile.divideTiles(
context: context,
- tiles: titles.map((String title) => ListTile(title: Text(title))),
+ tiles: titles.map<Widget>((String title) => ListTile(title: Text(title))),
).toList(),
);
},
diff --git a/packages/flutter/test/material/page_selector_test.dart b/packages/flutter/test/material/page_selector_test.dart
index 42a1ae0..8a41013 100644
--- a/packages/flutter/test/material/page_selector_test.dart
+++ b/packages/flutter/test/material/page_selector_test.dart
@@ -52,7 +52,7 @@
matching: find.byType(TabPageSelectorIndicator)
)
);
- return indicators.map((TabPageSelectorIndicator indicator) => indicator.backgroundColor).toList();
+ return indicators.map<Color>((TabPageSelectorIndicator indicator) => indicator.backgroundColor).toList();
}
void main() {
diff --git a/packages/flutter/test/material/refresh_indicator_test.dart b/packages/flutter/test/material/refresh_indicator_test.dart
index ea49f94..4e6e0be 100644
--- a/packages/flutter/test/material/refresh_indicator_test.dart
+++ b/packages/flutter/test/material/refresh_indicator_test.dart
@@ -29,7 +29,7 @@
onRefresh: refresh,
child: ListView(
physics: const AlwaysScrollableScrollPhysics(),
- children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map((String item) {
+ children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map<Widget>((String item) {
return SizedBox(
height: 200.0,
child: Text(item),
@@ -61,7 +61,7 @@
width: 600.0,
child: ListView(
physics: const AlwaysScrollableScrollPhysics(),
- children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map((String item) {
+ children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map<Widget>((String item) {
return SizedBox(
height: 200.0,
child: Text(item),
@@ -362,7 +362,7 @@
},
child: ListView(
physics: const AlwaysScrollableScrollPhysics(),
- children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map((String item) {
+ children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map<Widget>((String item) {
return SizedBox(
height: 200.0,
child: Text(item),
@@ -393,7 +393,7 @@
child: ListView(
controller: controller,
physics: const AlwaysScrollableScrollPhysics(),
- children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map((String item) {
+ children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map<Widget>((String item) {
return SizedBox(
height: 200.0,
child: Text(item),
diff --git a/packages/flutter/test/material/reorderable_list_test.dart b/packages/flutter/test/material/reorderable_list_test.dart
index bc21f79..bab13e2 100644
--- a/packages/flutter/test/material/reorderable_list_test.dart
+++ b/packages/flutter/test/material/reorderable_list_test.dart
@@ -39,7 +39,7 @@
width: itemHeight * 10,
child: ReorderableListView(
header: header,
- children: listItems.map(listItemToWidget).toList(),
+ children: listItems.map<Widget>(listItemToWidget).toList(),
scrollDirection: scrollDirection,
onReorder: onReorder,
),
diff --git a/packages/flutter/test/material/tabs_test.dart b/packages/flutter/test/material/tabs_test.dart
index 81dc96b..5eab066 100644
--- a/packages/flutter/test/material/tabs_test.dart
+++ b/packages/flutter/test/material/tabs_test.dart
@@ -78,7 +78,7 @@
length: tabs.length,
child: TabBar(
key: tabBarKey,
- tabs: tabs.map((String tab) => Tab(text: tab)).toList(),
+ tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(),
isScrollable: isScrollable,
indicatorColor: indicatorColor,
),
@@ -134,7 +134,7 @@
appBar: AppBar(
title: const Text('tabs'),
bottom: TabBar(
- tabs: tabs.map((String tab) => Tab(text: tab)).toList(),
+ tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(),
),
),
body: const TabBarView(
@@ -295,7 +295,7 @@
initialIndex: tabs.indexOf(value),
length: tabs.length,
child: TabBarView(
- children: tabs.map((String name) {
+ children: tabs.map<Widget>((String name) {
return StateMarker(
child: Text(name)
);
@@ -483,11 +483,11 @@
title: const Text('tabs'),
bottom: TabBar(
isScrollable: true,
- tabs: tabs.map((String tab) => Tab(text: tab)).toList(),
+ tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(),
),
),
body: TabBarView(
- children: tabs.map((String name) => Text('${index++}')).toList(),
+ children: tabs.map<Widget>((String name) => Text('${index++}')).toList(),
),
),
),
@@ -550,7 +550,7 @@
title: const Text('tabs'),
bottom: TabBar(
controller: controller,
- tabs: tabs.map((String tab) => Tab(text: tab)).toList(),
+ tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(),
),
),
body: TabBarView(
@@ -609,7 +609,7 @@
title: const Text('tabs'),
bottom: TabBar(
controller: controller,
- tabs: tabs.map((String tab) => Tab(text: tab)).toList(),
+ tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(),
),
),
body: TabBarView(
@@ -1866,7 +1866,7 @@
title: const Text('tabs'),
bottom: TabBar(
controller: controller,
- tabs: tabs.map((String tab) => Tab(text: tab)).toList(),
+ tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(),
),
),
body: TabBarView(
diff --git a/packages/flutter/test/material/text_field_test.dart b/packages/flutter/test/material/text_field_test.dart
index 46979c5..0124ede 100644
--- a/packages/flutter/test/material/text_field_test.dart
+++ b/packages/flutter/test/material/text_field_test.dart
@@ -145,7 +145,7 @@
}
List<TextSelectionPoint> globalize(Iterable<TextSelectionPoint> points, RenderBox box) {
- return points.map((TextSelectionPoint point) {
+ return points.map<TextSelectionPoint>((TextSelectionPoint point) {
return TextSelectionPoint(
box.localToGlobal(point.point),
point.direction,
diff --git a/packages/flutter/test/material/theme_test.dart b/packages/flutter/test/material/theme_test.dart
index 8ea5f38..81f060d 100644
--- a/packages/flutter/test/material/theme_test.dart
+++ b/packages/flutter/test/material/theme_test.dart
@@ -388,7 +388,7 @@
}
for (TextTheme textTheme in <TextTheme>[theme.textTheme, theme.primaryTextTheme, theme.accentTextTheme]) {
- for (TextStyle style in extractStyles(textTheme).map((TextStyle style) => _TextStyleProxy(style))) {
+ for (TextStyle style in extractStyles(textTheme).map<TextStyle>((TextStyle style) => _TextStyleProxy(style))) {
expect(style.inherit, false);
expect(style.color, isNotNull);
expect(style.fontFamily, isNotNull);
diff --git a/packages/flutter/test/scheduler/scheduler_test.dart b/packages/flutter/test/scheduler/scheduler_test.dart
index 60c5178..75eb269 100644
--- a/packages/flutter/test/scheduler/scheduler_test.dart
+++ b/packages/flutter/test/scheduler/scheduler_test.dart
@@ -94,7 +94,7 @@
test('2 calls to scheduleWarmUpFrame just schedules it once', () {
final List<VoidCallback> timerQueueTasks = <VoidCallback>[];
bool taskExecuted = false;
- runZoned(
+ runZoned<void>(
() {
// Run it twice without processing the queued tasks.
scheduler.scheduleWarmUpFrame();
diff --git a/packages/flutter/test/widgets/custom_painter_test.dart b/packages/flutter/test/widgets/custom_painter_test.dart
index 52369b9..03455e5 100644
--- a/packages/flutter/test/widgets/custom_painter_test.dart
+++ b/packages/flutter/test/widgets/custom_painter_test.dart
@@ -363,7 +363,7 @@
TestSemantics.rootChild(
id: expectedId,
rect: TestSemantics.fullScreen,
- actions: allActions.fold(0, (int previous, SemanticsAction action) => previous | action.index),
+ actions: allActions.fold<int>(0, (int previous, SemanticsAction action) => previous | action.index),
),
]
),
diff --git a/packages/flutter/test/widgets/dismissible_test.dart b/packages/flutter/test/widgets/dismissible_test.dart
index 71e19d8..084de05 100644
--- a/packages/flutter/test/widgets/dismissible_test.dart
+++ b/packages/flutter/test/widgets/dismissible_test.dart
@@ -53,7 +53,7 @@
itemExtent: itemExtent,
children: <int>[0, 1, 2, 3, 4]
.where((int i) => !dismissedItems.contains(i))
- .map(buildDismissibleItem).toList(),
+ .map<Widget>(buildDismissibleItem).toList(),
),
);
},
diff --git a/packages/flutter/test/widgets/grid_view_test.dart b/packages/flutter/test/widgets/grid_view_test.dart
index 1adc5e7..38b4786 100644
--- a/packages/flutter/test/widgets/grid_view_test.dart
+++ b/packages/flutter/test/widgets/grid_view_test.dart
@@ -29,7 +29,7 @@
textDirection: TextDirection.ltr,
child: GridView.count(
crossAxisCount: 4,
- children: kStates.map((String state) {
+ children: kStates.map<Widget>((String state) {
return GestureDetector(
onTap: () {
log.add(state);
@@ -100,7 +100,7 @@
textDirection: TextDirection.ltr,
child: GridView.extent(
maxCrossAxisExtent: 200.0,
- children: kStates.map((String state) {
+ children: kStates.map<Widget>((String state) {
return GestureDetector(
onTap: () {
log.add(state);
diff --git a/packages/flutter/test/widgets/heroes_test.dart b/packages/flutter/test/widgets/heroes_test.dart
index 850ae99..45fd966 100644
--- a/packages/flutter/test/widgets/heroes_test.dart
+++ b/packages/flutter/test/widgets/heroes_test.dart
@@ -948,7 +948,7 @@
// One Opacity widget per Hero, only one now has opacity 0.0
final Iterable<RenderOpacity> renderers = tester.renderObjectList(find.byType(Opacity));
- final Iterable<double> opacities = renderers.map((RenderOpacity r) => r.opacity);
+ final Iterable<double> opacities = renderers.map<double>((RenderOpacity r) => r.opacity);
expect(opacities.singleWhere((double opacity) => opacity == 0.0), 0.0);
// Hero BC's flight finishes normally.
diff --git a/packages/flutter/test/widgets/image_headers_test.dart b/packages/flutter/test/widgets/image_headers_test.dart
index a4dc552..c7f8de1 100644
--- a/packages/flutter/test/widgets/image_headers_test.dart
+++ b/packages/flutter/test/widgets/image_headers_test.dart
@@ -18,7 +18,7 @@
final MockHttpHeaders headers = MockHttpHeaders();
testWidgets('Headers', (WidgetTester tester) async {
- HttpOverrides.runZoned(() async {
+ HttpOverrides.runZoned<Future<void>>(() async {
await tester.pumpWidget(Image.network(
'https://www.example.com/images/frame.png',
headers: const <String, String>{'flutter': 'flutter'},
diff --git a/packages/flutter/test/widgets/list_view_horizontal_test.dart b/packages/flutter/test/widgets/list_view_horizontal_test.dart
index 8ed0474..fb425be 100644
--- a/packages/flutter/test/widgets/list_view_horizontal_test.dart
+++ b/packages/flutter/test/widgets/list_view_horizontal_test.dart
@@ -19,7 +19,7 @@
scrollDirection: Axis.horizontal,
reverse: reverse,
physics: const BouncingScrollPhysics(),
- children: items.map((int item) {
+ children: items.map<Widget>((int item) {
return Container(
child: Text('$item')
);
diff --git a/packages/flutter/test/widgets/list_view_vertical_test.dart b/packages/flutter/test/widgets/list_view_vertical_test.dart
index ebc3fe2..617be7e 100644
--- a/packages/flutter/test/widgets/list_view_vertical_test.dart
+++ b/packages/flutter/test/widgets/list_view_vertical_test.dart
@@ -13,7 +13,7 @@
child: ListView(
itemExtent: 290.0,
scrollDirection: Axis.vertical,
- children: items.map((int item) {
+ children: items.map<Widget>((int item) {
return Container(
child: Text('$item')
);
@@ -74,7 +74,7 @@
itemExtent: 290.0,
padding: const EdgeInsets.only(top: 250.0),
scrollDirection: Axis.vertical,
- children: items.map((int item) {
+ children: items.map<Widget>((int item) {
return Container(
child: Text('$item')
);
diff --git a/packages/flutter/test/widgets/nested_scroll_view_test.dart b/packages/flutter/test/widgets/nested_scroll_view_test.dart
index fd091f5..b52360b 100644
--- a/packages/flutter/test/widgets/nested_scroll_view_test.dart
+++ b/packages/flutter/test/widgets/nested_scroll_view_test.dart
@@ -389,7 +389,7 @@
forceElevated: innerBoxIsScrolled,
bottom: TabBar(
// These are the widgets to put in each tab in the tab bar.
- tabs: _tabs.map((String name) => Tab(text: name)).toList(),
+ tabs: _tabs.map<Widget>((String name) => Tab(text: name)).toList(),
),
),
),
@@ -397,7 +397,7 @@
},
body: TabBarView(
// These are the contents of the tab views, below the tabs.
- children: _tabs.map((String name) {
+ children: _tabs.map<Widget>((String name) {
return SafeArea(
top: false,
bottom: false,
diff --git a/packages/flutter/test/widgets/pageable_list_test.dart b/packages/flutter/test/widgets/pageable_list_test.dart
index 670a233..79f2dda 100644
--- a/packages/flutter/test/widgets/pageable_list_test.dart
+++ b/packages/flutter/test/widgets/pageable_list_test.dart
@@ -9,7 +9,7 @@
Size pageSize = const Size(600.0, 300.0);
const List<int> defaultPages = <int>[0, 1, 2, 3, 4, 5];
-final List<GlobalKey> globalKeys = defaultPages.map((_) => GlobalKey()).toList();
+final List<GlobalKey> globalKeys = defaultPages.map<GlobalKey>((_) => GlobalKey()).toList();
int currentPage;
Widget buildPage(int page) {
@@ -30,7 +30,7 @@
scrollDirection: Axis.horizontal,
reverse: reverse,
onPageChanged: (int page) { currentPage = page; },
- children: pages.map(buildPage).toList(),
+ children: pages.map<Widget>(buildPage).toList(),
);
// The test framework forces the frame to be 800x600, so we need to create
diff --git a/packages/flutter/test/widgets/scrollable_list_hit_testing_test.dart b/packages/flutter/test/widgets/scrollable_list_hit_testing_test.dart
index 862873e..c06da6d 100644
--- a/packages/flutter/test/widgets/scrollable_list_hit_testing_test.dart
+++ b/packages/flutter/test/widgets/scrollable_list_hit_testing_test.dart
@@ -20,7 +20,7 @@
child: ListView(
itemExtent: 290.0,
scrollDirection: Axis.horizontal,
- children: items.map((int item) {
+ children: items.map<Widget>((int item) {
return Container(
child: GestureDetector(
onTap: () { tapped.add(item); },
@@ -62,7 +62,7 @@
child: ListView(
itemExtent: 290.0,
scrollDirection: Axis.vertical,
- children: items.map((int item) {
+ children: items.map<Widget>((int item) {
return Container(
child: GestureDetector(
onTap: () { tapped.add(item); },
@@ -104,7 +104,7 @@
child: ListView(
itemExtent: 290.0,
padding: const EdgeInsets.fromLTRB(5.0, 20.0, 15.0, 10.0),
- children: items.map((int item) {
+ children: items.map<Widget>((int item) {
return Container(
child: GestureDetector(
onTap: () { tapped.add(item); },
@@ -139,7 +139,7 @@
itemExtent: 290.0,
reverse: true,
padding: const EdgeInsets.fromLTRB(5.0, 20.0, 15.0, 10.0),
- children: items.map((int item) {
+ children: items.map<Widget>((int item) {
return Container(
child: GestureDetector(
onTap: () { tapped.add(item); },
@@ -173,7 +173,7 @@
textDirection: TextDirection.ltr,
child: ListView(
itemExtent: 200.0,
- children: items.map((int item) {
+ children: items.map<Widget>((int item) {
return Container(
child: GestureDetector(
onTap: () { tapped.add(item); },
diff --git a/packages/flutter/test/widgets/semantics_test.dart b/packages/flutter/test/widgets/semantics_test.dart
index 82ea8d6..c2214c7 100644
--- a/packages/flutter/test/widgets/semantics_test.dart
+++ b/packages/flutter/test/widgets/semantics_test.dart
@@ -427,7 +427,7 @@
TestSemantics.rootChild(
id: expectedId,
rect: TestSemantics.fullScreen,
- actions: allActions.fold(0, (int previous, SemanticsAction action) => previous | action.index),
+ actions: allActions.fold<int>(0, (int previous, SemanticsAction action) => previous | action.index),
),
],
);
diff --git a/packages/flutter/test/widgets/semantics_tester.dart b/packages/flutter/test/widgets/semantics_tester.dart
index 455275a..c10779a 100644
--- a/packages/flutter/test/widgets/semantics_tester.dart
+++ b/packages/flutter/test/widgets/semantics_tester.dart
@@ -325,7 +325,7 @@
if (rect != null)
buf.writeln('$indent rect: $rect,');
if (transform != null)
- buf.writeln('$indent transform:\n${transform.toString().trim().split('\n').map((String line) => '$indent $line').join('\n')},');
+ buf.writeln('$indent transform:\n${transform.toString().trim().split('\n').map<String>((String line) => '$indent $line').join('\n')},');
buf.writeln('$indent children: <TestSemantics>[');
for (TestSemantics child in children) {
buf.writeln('${child.toString(indentAmount + 2)},');
@@ -403,13 +403,13 @@
if (textDirection != null && node.textDirection != textDirection)
return false;
if (actions != null) {
- final int expectedActions = actions.fold(0, (int value, SemanticsAction action) => value | action.index);
+ final int expectedActions = actions.fold<int>(0, (int value, SemanticsAction action) => value | action.index);
final int actualActions = node.getSemanticsData().actions;
if (expectedActions != actualActions)
return false;
}
if (flags != null) {
- final int expectedFlags = flags.fold(0, (int value, SemanticsFlag flag) => value | flag.index);
+ final int expectedFlags = flags.fold<int>(0, (int value, SemanticsFlag flag) => value | flag.index);
final int actualFlags = node.getSemanticsData().flags;
if (expectedFlags != actualFlags)
return false;
@@ -503,7 +503,7 @@
}
static String _tagsToSemanticsTagExpression(Set<SemanticsTag> tags) {
- return '<SemanticsTag>[${tags.map((SemanticsTag tag) => 'const SemanticsTag(\'${tag.name}\')').join(', ')}]';
+ return '<SemanticsTag>[${tags.map<String>((SemanticsTag tag) => 'const SemanticsTag(\'${tag.name}\')').join(', ')}]';
}
static String _actionsToSemanticsActionExpression(dynamic actions) {
@@ -565,7 +565,7 @@
}
buf.write(')');
- return buf.toString().split('\n').map((String l) => '$indent$l').join('\n');
+ return buf.toString().split('\n').map<String>((String l) => '$indent$l').join('\n');
}
}
@@ -614,7 +614,7 @@
}
String _indent(String text) {
- return text.toString().trimRight().split('\n').map((String line) => ' $line').join('\n');
+ return text.toString().trimRight().split('\n').map<String>((String line) => ' $line').join('\n');
}
@override
diff --git a/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart b/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart
index 4b92021..730d830 100644
--- a/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart
+++ b/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart
@@ -56,7 +56,7 @@
final String code = semantics
.generateTestSemanticsExpressionForCurrentSemanticsTree(DebugSemanticsDumpOrder.inverseHitTest)
.split('\n')
- .map((String line) => line.trim())
+ .map<String>((String line) => line.trim())
.join('\n')
.trim() + ',';
@@ -82,7 +82,7 @@
expectedCode.indexOf('^' * 12) - 3,
)
.split('\n')
- .map((String line) => line.trim())
+ .map<String>((String line) => line.trim())
.join('\n')
.trim();
semantics.dispose();
diff --git a/packages/flutter/test/widgets/sliver_list_test.dart b/packages/flutter/test/widgets/sliver_list_test.dart
index 9ab78b7..9db3c88 100644
--- a/packages/flutter/test/widgets/sliver_list_test.dart
+++ b/packages/flutter/test/widgets/sliver_list_test.dart
@@ -76,7 +76,7 @@
expect(find.text('Tile 19'), findsOneWidget);
await tester.pumpWidget(_buildSliverList(
- items: items.map((int i) => i + 100).toList(),
+ items: items.map<int>((int i) => i + 100).toList(),
controller: controller,
itemHeight: itemHeight,
viewportHeight: viewportHeight,
diff --git a/packages/flutter/test/widgets/slivers_block_global_key_test.dart b/packages/flutter/test/widgets/slivers_block_global_key_test.dart
index 92a2860..2aa787d 100644
--- a/packages/flutter/test/widgets/slivers_block_global_key_test.dart
+++ b/packages/flutter/test/widgets/slivers_block_global_key_test.dart
@@ -34,7 +34,7 @@
offset: ViewportOffset.fixed(offset),
slivers: <Widget>[
SliverList(
- delegate: SliverChildListDelegate(keys.map((int key) {
+ delegate: SliverChildListDelegate(keys.map<Widget>((int key) {
return SizedBox(key: GlobalObjectKey(key), height: 100.0, child: GenerationText(key));
}).toList()),
),
diff --git a/packages/flutter_driver/lib/src/driver/driver.dart b/packages/flutter_driver/lib/src/driver/driver.dart
index 7e130d7..5aa1e47 100644
--- a/packages/flutter_driver/lib/src/driver/driver.dart
+++ b/packages/flutter_driver/lib/src/driver/driver.dart
@@ -78,7 +78,7 @@
// See https://github.com/dart-lang/sdk/blob/master/runtime/vm/timeline.cc#L32
String _timelineStreamsToString(List<TimelineStream> streams) {
- final String contents = streams.map((TimelineStream stream) {
+ final String contents = streams.map<String>((TimelineStream stream) {
switch (stream) {
case TimelineStream.all: return 'all';
case TimelineStream.api: return 'API';
@@ -428,7 +428,7 @@
/// The move events are generated at a given [frequency] in Hz (or events per
/// second). It defaults to 60Hz.
Future<Null> scroll(SerializableFinder finder, double dx, double dy, Duration duration, { int frequency = 60, Duration timeout }) async {
- return await _sendCommand(Scroll(finder, dx, dy, duration, frequency, timeout: timeout)).then((Map<String, dynamic> _) => null);
+ return await _sendCommand(Scroll(finder, dx, dy, duration, frequency, timeout: timeout)).then<Null>((Map<String, dynamic> _) => null);
}
/// Scrolls the Scrollable ancestor of the widget located by [finder]
@@ -439,7 +439,7 @@
/// then this method may fail because [finder] doesn't actually exist.
/// The [scrollUntilVisible] method can be used in this case.
Future<Null> scrollIntoView(SerializableFinder finder, { double alignment = 0.0, Duration timeout }) async {
- return await _sendCommand(ScrollIntoView(finder, alignment: alignment, timeout: timeout)).then((Map<String, dynamic> _) => null);
+ return await _sendCommand(ScrollIntoView(finder, alignment: alignment, timeout: timeout)).then<Null>((Map<String, dynamic> _) => null);
}
/// Repeatedly [scroll] the widget located by [scrollable] by [dxScroll] and
@@ -483,7 +483,7 @@
// the chance to complete if the item is already onscreen; if not, scroll
// repeatedly until we either find the item or time out.
bool isVisible = false;
- waitFor(item, timeout: timeout).then((Null value) { isVisible = true; });
+ waitFor(item, timeout: timeout).then<void>((Null value) { isVisible = true; });
await Future<Null>.delayed(const Duration(milliseconds: 500));
while (!isVisible) {
await scroll(scrollable, dxScroll, dyScroll, const Duration(milliseconds: 100));
diff --git a/packages/flutter_driver/lib/src/driver/timeline.dart b/packages/flutter_driver/lib/src/driver/timeline.dart
index 34be834..6bb3087 100644
--- a/packages/flutter_driver/lib/src/driver/timeline.dart
+++ b/packages/flutter_driver/lib/src/driver/timeline.dart
@@ -129,6 +129,6 @@
// TODO(vegorov): use instance method version of castFrom when it is available.
return Iterable.castFrom<dynamic, Map<String, dynamic>>(jsonEvents)
- .map((Map<String, dynamic> eventJson) => TimelineEvent(eventJson))
+ .map<TimelineEvent>((Map<String, dynamic> eventJson) => TimelineEvent(eventJson))
.toList();
}
diff --git a/packages/flutter_driver/lib/src/driver/timeline_summary.dart b/packages/flutter_driver/lib/src/driver/timeline_summary.dart
index 09e61de..64e7dc0 100644
--- a/packages/flutter_driver/lib/src/driver/timeline_summary.dart
+++ b/packages/flutter_driver/lib/src/driver/timeline_summary.dart
@@ -98,10 +98,10 @@
'missed_frame_rasterizer_budget_count': computeMissedFrameRasterizerBudgetCount(),
'frame_count': countFrames(),
'frame_build_times': _extractFrameDurations()
- .map((Duration duration) => duration.inMicroseconds)
+ .map<int>((Duration duration) => duration.inMicroseconds)
.toList(),
'frame_rasterizer_times': _extractGpuRasterizerDrawEvents()
- .map((TimedEvent event) => event.duration.inMicroseconds)
+ .map<int>((TimedEvent event) => event.duration.inMicroseconds)
.toList(),
};
}
@@ -143,7 +143,7 @@
}
List<Duration> _extractDurations(String name) {
- return _extractNamedEvents(name).map((TimelineEvent event) => event.duration).toList();
+ return _extractNamedEvents(name).map<Duration>((TimelineEvent event) => event.duration).toList();
}
/// Extracts timed events that are reported as a pair of begin/end events.
@@ -199,7 +199,7 @@
List<Duration> _extractFrameDurations() => _extractDurations('Frame');
Iterable<Duration> _extractDuration(Iterable<TimedEvent> events) {
- return events.map((TimedEvent e) => e.duration);
+ return events.map<Duration>((TimedEvent e) => e.duration);
}
}
diff --git a/packages/flutter_driver/test/flutter_driver_test.dart b/packages/flutter_driver/test/flutter_driver_test.dart
index d8d8adb..eed263a 100644
--- a/packages/flutter_driver/test/flutter_driver_test.dart
+++ b/packages/flutter_driver/test/flutter_driver_test.dart
@@ -28,7 +28,7 @@
MockPeer mockPeer;
void expectLogContains(String message) {
- expect(log.map((LogRecord r) => '$r'), anyElement(contains(message)));
+ expect(log.map<String>((LogRecord r) => '$r'), anyElement(contains(message)));
}
setUp(() {
diff --git a/packages/flutter_test/lib/src/binding.dart b/packages/flutter_test/lib/src/binding.dart
index 2d47644..80c3fb8 100644
--- a/packages/flutter_test/lib/src/binding.dart
+++ b/packages/flutter_test/lib/src/binding.dart
@@ -228,7 +228,7 @@
/// Artificially calls dispatchLocaleChanged on the Widget binding,
/// then flushes microtasks.
Future<Null> setLocale(String languageCode, String countryCode) {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
assert(inTest);
final Locale locale = Locale(languageCode, countryCode);
dispatchLocaleChanged(locale);
@@ -243,7 +243,7 @@
///
/// Set to null to use the default surface size.
Future<Null> setSurfaceSize(Size size) {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
assert(inTest);
if (_surfaceSize == size)
return null;
@@ -273,7 +273,7 @@
/// to recursively schedule new microtasks. Will not run any timers scheduled
/// after this method was invoked, even if they are zero-time timers.
Future<Null> idle() {
- return TestAsyncUtils.guard(() {
+ return TestAsyncUtils.guard<Null>(() {
final Completer<Null> completer = Completer<Null>();
Timer.run(() {
completer.complete(null);
@@ -537,7 +537,7 @@
);
_parentZone = Zone.current;
final Zone testZone = _parentZone.fork(specification: errorHandlingZoneSpecification);
- testZone.runBinary(_runTestBody, testBody, invariantTester)
+ testZone.runBinary<Future<Null>, Future<Null> Function(), VoidCallback>(_runTestBody, testBody, invariantTester)
.whenComplete(testCompletionHandler);
timeout?.catchError(handleUncaughtError);
return testCompleter.future;
@@ -689,7 +689,7 @@
@override
Future<Null> pump([ Duration duration, EnginePhase newPhase = EnginePhase.sendSemanticsUpdate ]) {
- return TestAsyncUtils.guard(() {
+ return TestAsyncUtils.guard<Null>(() {
assert(inTest);
assert(_clock != null);
if (duration != null)
@@ -741,7 +741,7 @@
addTime(additionalTime);
- return realAsyncZone.run(() {
+ return realAsyncZone.run<Future<T>>(() {
_pendingAsyncTasks = Completer<void>();
return callback().catchError((dynamic exception, StackTrace stack) {
FlutterError.reportError(FlutterErrorDetails(
@@ -1197,7 +1197,7 @@
assert(inTest);
assert(!_expectingFrame);
assert(_pendingFrame == null);
- return TestAsyncUtils.guard(() {
+ return TestAsyncUtils.guard<Null>(() {
if (duration != null) {
Timer(duration, () {
_expectingFrame = true;
diff --git a/packages/flutter_test/lib/src/controller.dart b/packages/flutter_test/lib/src/controller.dart
index d2c18d2..0d70e84 100644
--- a/packages/flutter_test/lib/src/controller.dart
+++ b/packages/flutter_test/lib/src/controller.dart
@@ -46,7 +46,7 @@
Iterable<Widget> get allWidgets {
TestAsyncUtils.guardSync();
return allElements
- .map((Element element) => element.widget);
+ .map<Widget>((Element element) => element.widget);
}
/// The matching widget in the widget tree.
@@ -137,7 +137,7 @@
TestAsyncUtils.guardSync();
return allElements
.whereType<StatefulElement>()
- .map((StatefulElement element) => element.state);
+ .map<State>((StatefulElement element) => element.state);
}
/// The matching state in the widget tree.
@@ -173,7 +173,7 @@
/// * Use [firstState] if you expect to match several but only want the first.
Iterable<T> stateList<T extends State>(Finder finder) {
TestAsyncUtils.guardSync();
- return finder.evaluate().map((Element element) => _stateOf<T>(element, finder));
+ return finder.evaluate().map<T>((Element element) => _stateOf<T>(element, finder));
}
T _stateOf<T extends State>(Element element, Finder finder) {
@@ -194,7 +194,7 @@
Iterable<RenderObject> get allRenderObjects {
TestAsyncUtils.guardSync();
return allElements
- .map((Element element) => element.renderObject);
+ .map<RenderObject>((Element element) => element.renderObject);
}
/// The render object of the matching widget in the widget tree.
@@ -262,7 +262,7 @@
/// Dispatch a pointer down / pointer up sequence at the given location.
Future<Null> tapAt(Offset location, { int pointer }) {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
final TestGesture gesture = await startGesture(location, pointer: pointer);
await gesture.up();
return null;
@@ -293,7 +293,7 @@
/// Dispatch a pointer down / pointer up sequence at the given location with
/// a delay of [kLongPressTimeout] + [kPressTimeout] between the two events.
Future<Null> longPressAt(Offset location, { int pointer }) {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
final TestGesture gesture = await startGesture(location, pointer: pointer);
await pump(kLongPressTimeout + kPressTimeout);
await gesture.up();
@@ -371,7 +371,7 @@
}) {
assert(offset.distance > 0.0);
assert(speed > 0.0); // speed is pixels/second
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
final TestPointer testPointer = TestPointer(pointer ?? _getNextPointer());
final HitTestResult result = hitTestOnBinding(startLocation);
const int kMoveCount = 50; // Needs to be >= kHistorySize, see _LeastSquaresVelocityTrackerStrategy
@@ -428,7 +428,7 @@
/// system identifies the gesture as a fling, consider using [flingFrom]
/// instead.
Future<Null> dragFrom(Offset startLocation, Offset offset, { int pointer }) {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
final TestGesture gesture = await startGesture(startLocation, pointer: pointer);
assert(gesture != null);
await gesture.moveBy(offset);
@@ -469,7 +469,7 @@
/// Forwards the given pointer event to the binding.
Future<Null> sendEventToBinding(PointerEvent event, HitTestResult result) {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
binding.dispatchEvent(event, result);
return null;
});
diff --git a/packages/flutter_test/lib/src/finders.dart b/packages/flutter_test/lib/src/finders.dart
index 6341190..2d41b03 100644
--- a/packages/flutter_test/lib/src/finders.dart
+++ b/packages/flutter_test/lib/src/finders.dart
@@ -633,7 +633,7 @@
@override
Iterable<Element> get allCandidates {
final Iterable<Element> ancestorElements = ancestor.evaluate();
- final List<Element> candidates = ancestorElements.expand(
+ final List<Element> candidates = ancestorElements.expand<Element>(
(Element element) => collectAllElementsFrom(element, skipOffstage: skipOffstage)
).toSet().toList();
if (matchRoot)
diff --git a/packages/flutter_test/lib/src/goldens.dart b/packages/flutter_test/lib/src/goldens.dart
index eeab00b..5ef1493 100644
--- a/packages/flutter_test/lib/src/goldens.dart
+++ b/packages/flutter_test/lib/src/goldens.dart
@@ -181,7 +181,7 @@
throw test_package.TestFailure('Could not be compared against non-existent file: "$golden"');
}
final List<int> goldenBytes = await goldenFile.readAsBytes();
- return _areListsEqual(imageBytes, goldenBytes);
+ return _areListsEqual<int>(imageBytes, goldenBytes);
}
@override
diff --git a/packages/flutter_test/lib/src/test_pointer.dart b/packages/flutter_test/lib/src/test_pointer.dart
index 063440e..56f2096 100644
--- a/packages/flutter_test/lib/src/test_pointer.dart
+++ b/packages/flutter_test/lib/src/test_pointer.dart
@@ -142,7 +142,7 @@
assert(hitTester != null);
assert(dispatcher != null);
TestGesture result;
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
// dispatch down event
final HitTestResult hitTestResult = hitTester(downLocation);
final TestPointer testPointer = TestPointer(pointer);
@@ -170,7 +170,7 @@
/// Send a move event moving the pointer to the given location.
Future<Null> moveTo(Offset location, { Duration timeStamp = Duration.zero }) {
- return TestAsyncUtils.guard(() {
+ return TestAsyncUtils.guard<Null>(() {
assert(_pointer._isDown);
return _dispatcher(_pointer.move(location, timeStamp: timeStamp), _result);
});
@@ -180,7 +180,7 @@
///
/// The object is no longer usable after this method has been called.
Future<Null> up() {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
assert(_pointer._isDown);
await _dispatcher(_pointer.up(), _result);
assert(!_pointer._isDown);
@@ -194,7 +194,7 @@
///
/// The object is no longer usable after this method has been called.
Future<Null> cancel() {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
assert(_pointer._isDown);
await _dispatcher(_pointer.cancel(), _result);
assert(!_pointer._isDown);
diff --git a/packages/flutter_test/lib/src/widget_tester.dart b/packages/flutter_test/lib/src/widget_tester.dart
index 4a766fc..bcdee59 100644
--- a/packages/flutter_test/lib/src/widget_tester.dart
+++ b/packages/flutter_test/lib/src/widget_tester.dart
@@ -221,7 +221,7 @@
Duration duration,
EnginePhase phase = EnginePhase.sendSemanticsUpdate,
]) {
- return TestAsyncUtils.guard(() {
+ return TestAsyncUtils.guard<Null>(() {
binding.attachRootWidget(widget);
binding.scheduleFrame();
return binding.pump(duration, phase);
@@ -244,7 +244,7 @@
Duration duration,
EnginePhase phase = EnginePhase.sendSemanticsUpdate,
]) {
- return TestAsyncUtils.guard(() => binding.pump(duration, phase));
+ return TestAsyncUtils.guard<Null>(() => binding.pump(duration, phase));
}
/// Repeatedly calls [pump] with the given `duration` until there are no
@@ -292,7 +292,7 @@
return true;
}());
int count = 0;
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
final DateTime endTime = binding.clock.fromNowBy(timeout);
do {
if (binding.clock.now().isAfter(endTime))
@@ -325,7 +325,7 @@
/// [TestFailure] error being thrown.
Future<T> runAsync<T>(Future<T> callback(), {
Duration additionalTime = const Duration(milliseconds: 250),
- }) => binding.runAsync(callback, additionalTime: additionalTime);
+ }) => binding.runAsync<T>(callback, additionalTime: additionalTime);
/// Whether there are any any transient callbacks scheduled.
///
@@ -351,7 +351,7 @@
@override
Future<Null> sendEventToBinding(PointerEvent event, HitTestResult result) {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
binding.dispatchEvent(event, result, source: TestBindingEventSource.test);
return null;
});
@@ -485,7 +485,7 @@
/// Does not run timers. May result in an infinite loop or run out of memory
/// if microtasks continue to recursively schedule new microtasks.
Future<Null> idle() {
- return TestAsyncUtils.guard(() => binding.idle());
+ return TestAsyncUtils.guard<Null>(() => binding.idle());
}
Set<Ticker> _tickers;
@@ -570,8 +570,8 @@
/// Tests that just need to add text to widgets like [TextField]
/// or [TextFormField] only need to call [enterText].
Future<Null> showKeyboard(Finder finder) async {
- return TestAsyncUtils.guard(() async {
- final EditableTextState editable = state(
+ return TestAsyncUtils.guard<Null>(() async {
+ final EditableTextState editable = state<EditableTextState>(
find.descendant(
of: finder,
matching: find.byType(EditableText),
@@ -593,7 +593,7 @@
/// To just give [finder] the focus without entering any text,
/// see [showKeyboard].
Future<Null> enterText(Finder finder, String text) async {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<Null>(() async {
await showKeyboard(finder);
testTextInput.enterText(text);
await idle();
@@ -605,7 +605,7 @@
///
/// Will throw an error if there is no back button in the page.
Future<void> pageBack() async {
- return TestAsyncUtils.guard(() async {
+ return TestAsyncUtils.guard<void>(() async {
Finder backButton = find.byTooltip('Back');
if (backButton.evaluate().isEmpty) {
backButton = find.byType(CupertinoNavigationBarBackButton);
diff --git a/packages/flutter_test/test/goldens_test.dart b/packages/flutter_test/test/goldens_test.dart
index 147ed2d..0c084ad 100644
--- a/packages/flutter_test/test/goldens_test.dart
+++ b/packages/flutter_test/test/goldens_test.dart
@@ -34,7 +34,7 @@
void test(String description, FutureOr<void> body()) {
test_package.test(description, () {
- return io.IOOverrides.runZoned(
+ return io.IOOverrides.runZoned<FutureOr<void>>(
body,
createDirectory: (String path) => fs.directory(path),
createFile: (String path) => fs.file(path),
diff --git a/packages/flutter_test/test/widget_tester_test.dart b/packages/flutter_test/test/widget_tester_test.dart
index ecb5ba0..9249398 100644
--- a/packages/flutter_test/test/widget_tester_test.dart
+++ b/packages/flutter_test/test/widget_tester_test.dart
@@ -24,7 +24,7 @@
final Completer<void> completer = Completer<void>();
final Future<void> future = expectLater(null, FakeMatcher(completer));
String value;
- future.then((void _) {
+ future.then<void>((void _) {
value = '123';
});
test_package.expect(value, isNull);
@@ -39,7 +39,7 @@
final Completer<void> completer = Completer<void>();
final Future<void> future = expectLater(null, FakeMatcher(completer), skip: 'testing skip');
bool completed = false;
- future.then((void _) {
+ future.then<void>((void _) {
completed = true;
});
test_package.expect(completed, isFalse);
@@ -498,7 +498,7 @@
testWidgets('maintains existing zone values', (WidgetTester tester) async {
final Object key = Object();
- await runZoned(() {
+ await runZoned<Future<void>>(() {
expect(Zone.current[key], 'abczed');
return tester.runAsync<void>(() async {
expect(Zone.current[key], 'abczed');
diff --git a/packages/flutter_tools/bin/fuchsia_asset_builder.dart b/packages/flutter_tools/bin/fuchsia_asset_builder.dart
index e547025..c659f84 100644
--- a/packages/flutter_tools/bin/fuchsia_asset_builder.dart
+++ b/packages/flutter_tools/bin/fuchsia_asset_builder.dart
@@ -77,7 +77,7 @@
final libfs.File outputFile = libfs.fs.file(libfs.fs.path.join(assetDir, fileName));
calls.add(writeFile(outputFile, content));
});
- await Future.wait(calls);
+ await Future.wait<Null>(calls);
final String outputMan = argResults[_kOptionAssetManifestOut];
await writeFuchsiaManifest(assets, argResults[_kOptionAsset], outputMan, argResults[_kOptionComponentName]);
diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart
index 3395442..9f9545b 100644
--- a/packages/flutter_tools/lib/src/android/android_device.dart
+++ b/packages/flutter_tools/lib/src/android/android_device.dart
@@ -474,7 +474,7 @@
@override
Future<bool> stopApp(ApplicationPackage app) {
final List<String> command = adbCommandForDevice(<String>['shell', 'am', 'force-stop', app.id]);
- return runCommandAndStreamOutput(command).then((int exitCode) => exitCode == 0);
+ return runCommandAndStreamOutput(command).then<bool>((int exitCode) => exitCode == 0);
}
@override
@@ -673,8 +673,8 @@
runCommand(device.adbCommandForDevice(args)).then<Null>((Process process) {
_process = process;
const Utf8Decoder decoder = Utf8Decoder(allowMalformed: true);
- _process.stdout.transform(decoder).transform(const LineSplitter()).listen(_onLine);
- _process.stderr.transform(decoder).transform(const LineSplitter()).listen(_onLine);
+ _process.stdout.transform<String>(decoder).transform<String>(const LineSplitter()).listen(_onLine);
+ _process.stderr.transform<String>(decoder).transform<String>(const LineSplitter()).listen(_onLine);
_process.exitCode.whenComplete(() {
if (_linesController.hasListener)
_linesController.close();
diff --git a/packages/flutter_tools/lib/src/android/android_emulator.dart b/packages/flutter_tools/lib/src/android/android_emulator.dart
index d0ea02d..6a0e24d 100644
--- a/packages/flutter_tools/lib/src/android/android_emulator.dart
+++ b/packages/flutter_tools/lib/src/android/android_emulator.dart
@@ -112,13 +112,13 @@
final Map<String, String> results = <String, String>{};
final Iterable<List<String>> properties = contents
- .map((String l) => l.trim())
+ .map<String>((String l) => l.trim())
// Strip blank lines/comments
.where((String l) => l != '' && !l.startsWith('#'))
// Discard anything that isn't simple name=value
.where((String l) => l.contains('='))
// Split into name/value
- .map((String l) => l.split('='));
+ .map<List<String>>((String l) => l.split('='));
for (List<String> property in properties) {
results[property[0].trim()] = property[1].trim();
diff --git a/packages/flutter_tools/lib/src/android/android_sdk.dart b/packages/flutter_tools/lib/src/android/android_sdk.dart
index 72344d2..4c9ea22 100644
--- a/packages/flutter_tools/lib/src/android/android_sdk.dart
+++ b/packages/flutter_tools/lib/src/android/android_sdk.dart
@@ -382,7 +382,7 @@
}
// Match up platforms with the best corresponding build-tools.
- _sdkVersions = platforms.map((Directory platformDir) {
+ _sdkVersions = platforms.map<AndroidSdkVersion>((Directory platformDir) {
final String platformName = platformDir.basename;
int platformVersion;
@@ -394,7 +394,7 @@
final String buildProps = platformDir.childFile('build.prop').readAsStringSync();
final String versionString = const LineSplitter()
.convert(buildProps)
- .map(_sdkVersionRe.firstMatch)
+ .map<Match>(_sdkVersionRe.firstMatch)
.firstWhere((Match match) => match != null)
.group(1);
platformVersion = int.parse(versionString);
diff --git a/packages/flutter_tools/lib/src/android/android_studio.dart b/packages/flutter_tools/lib/src/android/android_studio.dart
index 9b416d7..4c3dc98 100644
--- a/packages/flutter_tools/lib/src/android/android_studio.dart
+++ b/packages/flutter_tools/lib/src/android/android_studio.dart
@@ -188,7 +188,7 @@
}
return candidatePaths
- .map((FileSystemEntity e) => AndroidStudio.fromMacOSBundle(e.path))
+ .map<AndroidStudio>((FileSystemEntity e) => AndroidStudio.fromMacOSBundle(e.path))
.where((AndroidStudio s) => s != null)
.toList();
}
diff --git a/packages/flutter_tools/lib/src/android/android_studio_validator.dart b/packages/flutter_tools/lib/src/android/android_studio_validator.dart
index fd59e4c..3302e94 100644
--- a/packages/flutter_tools/lib/src/android/android_studio_validator.dart
+++ b/packages/flutter_tools/lib/src/android/android_studio_validator.dart
@@ -22,7 +22,7 @@
validators.add(NoAndroidStudioValidator());
} else {
validators.addAll(studios
- .map((AndroidStudio studio) => AndroidStudioValidator(studio)));
+ .map<DoctorValidator>((AndroidStudio studio) => AndroidStudioValidator(studio)));
}
return validators;
}
@@ -46,11 +46,11 @@
if (_studio.isValid) {
type = ValidationType.installed;
messages.addAll(_studio.validationMessages
- .map((String m) => ValidationMessage(m)));
+ .map<ValidationMessage>((String m) => ValidationMessage(m)));
} else {
type = ValidationType.partial;
messages.addAll(_studio.validationMessages
- .map((String m) => ValidationMessage.error(m)));
+ .map<ValidationMessage>((String m) => ValidationMessage.error(m)));
messages.add(ValidationMessage(
'Try updating or re-installing Android Studio.'));
if (_studio.configured != null) {
diff --git a/packages/flutter_tools/lib/src/android/android_workflow.dart b/packages/flutter_tools/lib/src/android/android_workflow.dart
index d3e4285..2a532a0 100644
--- a/packages/flutter_tools/lib/src/android/android_workflow.dart
+++ b/packages/flutter_tools/lib/src/android/android_workflow.dart
@@ -127,7 +127,7 @@
if (validationResult.isNotEmpty) {
// Android SDK is not functional.
- messages.addAll(validationResult.map((String message) {
+ messages.addAll(validationResult.map<ValidationMessage>((String message) {
return ValidationMessage.error(message);
}));
messages.add(ValidationMessage(
@@ -200,13 +200,13 @@
);
process.stdin.write('n\n');
final Future<void> output = process.stdout
- .transform(const Utf8Decoder(allowMalformed: true))
- .transform(const LineSplitter())
+ .transform<String>(const Utf8Decoder(allowMalformed: true))
+ .transform<String>(const LineSplitter())
.listen(_onLine)
.asFuture<void>(null);
final Future<void> errors = process.stderr
- .transform(const Utf8Decoder(allowMalformed: true))
- .transform(const LineSplitter())
+ .transform<String>(const Utf8Decoder(allowMalformed: true))
+ .transform<String>(const LineSplitter())
.listen(_onLine)
.asFuture<void>(null);
try {
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
index 22b7b24..5052e5d 100644
--- a/packages/flutter_tools/lib/src/asset.dart
+++ b/packages/flutter_tools/lib/src/asset.dart
@@ -354,7 +354,7 @@
printStatus(allPackagesList.join(', '));
}
- final List<String> combinedLicensesList = packageLicenses.keys.map(
+ final List<String> combinedLicensesList = packageLicenses.keys.map<String>(
(String license) {
final List<String> packageNames = packageLicenses[license].toList()
..sort();
@@ -444,7 +444,7 @@
}
List<Map<String, dynamic>> _createFontsDescriptor(List<Font> fonts) {
- return fonts.map((Font font) => font.descriptor).toList();
+ return fonts.map<Map<String, dynamic>>((Font font) => font.descriptor).toList();
}
// Given an assets directory like this:
diff --git a/packages/flutter_tools/lib/src/base/fingerprint.dart b/packages/flutter_tools/lib/src/base/fingerprint.dart
index fed1cbf..b898ed7 100644
--- a/packages/flutter_tools/lib/src/base/fingerprint.dart
+++ b/packages/flutter_tools/lib/src/base/fingerprint.dart
@@ -97,7 +97,7 @@
/// See [Fingerprinter].
class Fingerprint {
Fingerprint.fromBuildInputs(Map<String, String> properties, Iterable<String> inputPaths) {
- final Iterable<File> files = inputPaths.map(fs.file);
+ final Iterable<File> files = inputPaths.map<File>(fs.file);
final Iterable<File> missingInputs = files.where((File file) => !file.existsSync());
if (missingInputs.isNotEmpty)
throw ArgumentError('Missing input files:\n' + missingInputs.join('\n'));
@@ -179,7 +179,7 @@
return dependencies
.replaceAllMapped(_separatorExpr, (Match match) => '${match.group(1)}\n')
.split('\n')
- .map((String path) => path.replaceAllMapped(_escapeExpr, (Match match) => match.group(1)).trim())
+ .map<String>((String path) => path.replaceAllMapped(_escapeExpr, (Match match) => match.group(1)).trim())
.where((String path) => path.isNotEmpty)
.toSet();
}
diff --git a/packages/flutter_tools/lib/src/base/io.dart b/packages/flutter_tools/lib/src/base/io.dart
index fb9be51..70ca4fe 100644
--- a/packages/flutter_tools/lib/src/base/io.dart
+++ b/packages/flutter_tools/lib/src/base/io.dart
@@ -127,7 +127,7 @@
@override
Stream<ProcessSignal> watch() {
- return _delegate.watch().map((io.ProcessSignal signal) => this);
+ return _delegate.watch().map<ProcessSignal>((io.ProcessSignal signal) => this);
}
@override
diff --git a/packages/flutter_tools/lib/src/base/logger.dart b/packages/flutter_tools/lib/src/base/logger.dart
index de9eabf..dd6f0a1 100644
--- a/packages/flutter_tools/lib/src/base/logger.dart
+++ b/packages/flutter_tools/lib/src/base/logger.dart
@@ -112,7 +112,7 @@
message = terminal.color(message, color);
if (indent != null && indent > 0) {
message = LineSplitter.split(message)
- .map((String line) => ' ' * indent + line)
+ .map<String>((String line) => ' ' * indent + line)
.join('\n');
}
if (newline != false)
diff --git a/packages/flutter_tools/lib/src/base/os.dart b/packages/flutter_tools/lib/src/base/os.dart
index 8c3b30d..54f5964 100644
--- a/packages/flutter_tools/lib/src/base/os.dart
+++ b/packages/flutter_tools/lib/src/base/os.dart
@@ -92,7 +92,7 @@
if (result.exitCode != 0)
return const <File>[];
final String stdout = result.stdout;
- return stdout.trim().split('\n').map((String path) => fs.file(path.trim())).toList();
+ return stdout.trim().split('\n').map<File>((String path) => fs.file(path.trim())).toList();
}
@override
@@ -166,7 +166,7 @@
return const <File>[];
final List<String> lines = result.stdout.trim().split('\n');
if (all)
- return lines.map((String path) => fs.file(path.trim())).toList();
+ return lines.map<File>((String path) => fs.file(path.trim())).toList();
return <File>[fs.file(lines.first.trim())];
}
diff --git a/packages/flutter_tools/lib/src/base/process.dart b/packages/flutter_tools/lib/src/base/process.dart
index caf6349..29029d4 100644
--- a/packages/flutter_tools/lib/src/base/process.dart
+++ b/packages/flutter_tools/lib/src/base/process.dart
@@ -137,8 +137,8 @@
environment: environment
);
final StreamSubscription<String> stdoutSubscription = process.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.where((String line) => filter == null ? true : filter.hasMatch(line))
.listen((String line) {
if (mapFunction != null)
@@ -152,8 +152,8 @@
}
});
final StreamSubscription<String> stderrSubscription = process.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.where((String line) => filter == null ? true : filter.hasMatch(line))
.listen((String line) {
if (mapFunction != null)
diff --git a/packages/flutter_tools/lib/src/base/terminal.dart b/packages/flutter_tools/lib/src/base/terminal.dart
index 8e40c59..65a5a46 100644
--- a/packages/flutter_tools/lib/src/base/terminal.dart
+++ b/packages/flutter_tools/lib/src/base/terminal.dart
@@ -107,7 +107,7 @@
///
/// Useful when the console is in [singleCharMode].
Stream<String> get onCharInput {
- _broadcastStdInString ??= io.stdin.transform(const AsciiDecoder(allowInvalid: true)).asBroadcastStream();
+ _broadcastStdInString ??= io.stdin.transform<String>(const AsciiDecoder(allowInvalid: true)).asBroadcastStream();
return _broadcastStdInString;
}
diff --git a/packages/flutter_tools/lib/src/base/utils.dart b/packages/flutter_tools/lib/src/base/utils.dart
index 102a0ec..ee485de 100644
--- a/packages/flutter_tools/lib/src/base/utils.dart
+++ b/packages/flutter_tools/lib/src/base/utils.dart
@@ -202,7 +202,7 @@
final Map<String, String> values = <String, String>{};
void writeContents(File file) {
- file.writeAsStringSync(values.keys.map((String key) {
+ file.writeAsStringSync(values.keys.map<String>((String key) {
return '$key=${values[key]}';
}).join('\n'));
}
diff --git a/packages/flutter_tools/lib/src/bundle.dart b/packages/flutter_tools/lib/src/bundle.dart
index db1b569..4a531b2 100644
--- a/packages/flutter_tools/lib/src/bundle.dart
+++ b/packages/flutter_tools/lib/src/bundle.dart
@@ -193,8 +193,8 @@
bundleDir.deleteSync(recursive: true);
bundleDir.createSync(recursive: true);
- await Future.wait(
- assetEntries.entries.map((MapEntry<String, DevFSContent> entry) async {
+ await Future.wait<void>(
+ assetEntries.entries.map<Future<void>>((MapEntry<String, DevFSContent> entry) async {
final File file = fs.file(fs.path.join(bundleDir.path, entry.key));
file.parent.createSync(recursive: true);
await file.writeAsBytes(await entry.value.contentsAsBytes());
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index 8e2325c..8ab311c 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -560,7 +560,7 @@
@visibleForTesting
String flattenNameSubdirs(Uri url) {
final List<String> pieces = <String>[url.host]..addAll(url.pathSegments);
- final Iterable<String> convertedPieces = pieces.map(_flattenNameNoSubdirs);
+ final Iterable<String> convertedPieces = pieces.map<String>(_flattenNameNoSubdirs);
return fs.path.joinAll(convertedPieces);
}
diff --git a/packages/flutter_tools/lib/src/commands/analyze_once.dart b/packages/flutter_tools/lib/src/commands/analyze_once.dart
index ae14c97..3d181ad 100644
--- a/packages/flutter_tools/lib/src/commands/analyze_once.dart
+++ b/packages/flutter_tools/lib/src/commands/analyze_once.dart
@@ -92,7 +92,7 @@
await server.start();
// Completing the future in the callback can't fail.
- server.onExit.then((int exitCode) { // ignore: unawaited_futures
+ server.onExit.then<void>((int exitCode) { // ignore: unawaited_futures
if (!analysisCompleter.isCompleted) {
analysisCompleter.completeError('analysis server exited: $exitCode');
}
diff --git a/packages/flutter_tools/lib/src/commands/build_aot.dart b/packages/flutter_tools/lib/src/commands/build_aot.dart
index fb07c23..dc5a79f 100644
--- a/packages/flutter_tools/lib/src/commands/build_aot.dart
+++ b/packages/flutter_tools/lib/src/commands/build_aot.dart
@@ -35,8 +35,8 @@
)
..addMultiOption('ios-arch',
splitCommas: true,
- defaultsTo: defaultIOSArchs.map(getNameForIOSArch),
- allowed: IOSArch.values.map(getNameForIOSArch),
+ defaultsTo: defaultIOSArchs.map<String>(getNameForIOSArch),
+ allowed: IOSArch.values.map<String>(getNameForIOSArch),
help: 'iOS architectures to build.',
)
..addMultiOption(FlutterOptions.kExtraFrontEndOptions,
@@ -112,14 +112,14 @@
outputPath: outputPath,
buildSharedLibrary: false,
extraGenSnapshotOptions: argResults[FlutterOptions.kExtraGenSnapshotOptions],
- ).then((int buildExitCode) {
+ ).then<int>((int buildExitCode) {
return buildExitCode;
});
});
// Merge arch-specific App.frameworks into a multi-arch App.framework.
- if ((await Future.wait(exitCodes.values)).every((int buildExitCode) => buildExitCode == 0)) {
- final Iterable<String> dylibs = iosBuilds.values.map((String outputDir) => fs.path.join(outputDir, 'App.framework', 'App'));
+ if ((await Future.wait<int>(exitCodes.values)).every((int buildExitCode) => buildExitCode == 0)) {
+ final Iterable<String> dylibs = iosBuilds.values.map<String>((String outputDir) => fs.path.join(outputDir, 'App.framework', 'App'));
fs.directory(fs.path.join(outputPath, 'App.framework'))..createSync();
await runCheckedAsync(<String>['lipo']
..addAll(dylibs)
diff --git a/packages/flutter_tools/lib/src/commands/config.dart b/packages/flutter_tools/lib/src/commands/config.dart
index a69655e..2d60e8a 100644
--- a/packages/flutter_tools/lib/src/commands/config.dart
+++ b/packages/flutter_tools/lib/src/commands/config.dart
@@ -47,7 +47,7 @@
@override
String get usageFooter {
// List all config settings.
- String values = config.keys.map((String key) {
+ String values = config.keys.map<String>((String key) {
return ' $key: ${config.getValue(key)}';
}).join('\n');
if (values.isNotEmpty)
diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart
index 6189f2c..18d38bc 100644
--- a/packages/flutter_tools/lib/src/commands/daemon.dart
+++ b/packages/flutter_tools/lib/src/commands/daemon.dart
@@ -603,7 +603,7 @@
_DeviceEventHandler _onDeviceEvent(String eventName) {
return (Device device) {
- _serializeDeviceEvents = _serializeDeviceEvents.then((_) async {
+ _serializeDeviceEvents = _serializeDeviceEvents.then<Null>((_) async {
sendEvent(eventName, await _deviceToMap(device));
});
};
@@ -679,10 +679,10 @@
}
Stream<Map<String, dynamic>> get stdinCommandStream => stdin
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.where((String line) => line.startsWith('[{') && line.endsWith('}]'))
- .map((String line) {
+ .map<Map<String, dynamic>>((String line) {
line = line.substring(1, line.length - 1);
return json.decode(line);
});
@@ -829,7 +829,7 @@
Future<List<Map<String, dynamic>>> getEmulators([Map<String, dynamic> args]) async {
final List<Emulator> list = await emulators.getAllAvailableEmulators();
- return list.map(_emulatorToMap).toList();
+ return list.map<Map<String, dynamic>>(_emulatorToMap).toList();
}
Future<Null> launch(Map<String, dynamic> args) async {
diff --git a/packages/flutter_tools/lib/src/commands/drive.dart b/packages/flutter_tools/lib/src/commands/drive.dart
index 419371a..dcccb09 100644
--- a/packages/flutter_tools/lib/src/commands/drive.dart
+++ b/packages/flutter_tools/lib/src/commands/drive.dart
@@ -206,7 +206,7 @@
return null;
} else if (devices.length > 1) {
printStatus('Found multiple connected devices:');
- printStatus(devices.map((Device d) => ' - ${d.name}\n').join(''));
+ printStatus(devices.map<String>((Device d) => ' - ${d.name}\n').join(''));
}
printStatus('Using device ${devices.first.name}.');
return devices.first;
diff --git a/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart b/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart
index fab2988..3979beb 100644
--- a/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart
+++ b/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart
@@ -120,7 +120,7 @@
// Wrap everything in try/finally to make sure we kill the ssh processes
// doing the port forwarding.
try {
- final List<int> servicePorts = forwardedPorts.map(
+ final List<int> servicePorts = forwardedPorts.map<int>(
(_PortForwarder pf) => pf.port).toList();
if (_list) {
@@ -145,10 +145,10 @@
// Set up a device and hot runner and attach the hot runner to the first
// vm service we found.
- final List<String> fullAddresses = targetPorts.map(
+ final List<String> fullAddresses = targetPorts.map<String>(
(int p) => '$ipv4Loopback:$p'
).toList();
- final List<Uri> observatoryUris = fullAddresses.map(
+ final List<Uri> observatoryUris = fullAddresses.map<Uri>(
(String a) => Uri.parse('http://$a')
).toList();
final FuchsiaDevice device = FuchsiaDevice(
@@ -168,7 +168,7 @@
printStatus('Connecting to $_modName');
await hotRunner.attach(viewFilter: isolateName);
} finally {
- await Future.wait(forwardedPorts.map((_PortForwarder pf) => pf.stop()));
+ await Future.wait<Null>(forwardedPorts.map<Future<Null>>((_PortForwarder pf) => pf.stop()));
}
}
@@ -474,11 +474,11 @@
printTrace("_PortForwarder running '${command.join(' ')}'");
final Process process = await processManager.start(command);
process.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String data) { printTrace(data); });
// Best effort to print the exit code.
- process.exitCode.then((int c) { // ignore: unawaited_futures
+ process.exitCode.then<void>((int c) { // ignore: unawaited_futures
printTrace("'${command.join(' ')}' exited with exit code $c");
});
printTrace('Set up forwarding from $localPort to $address:$remotePort');
diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart
index 1f3bbc7..36efd98 100644
--- a/packages/flutter_tools/lib/src/commands/run.dart
+++ b/packages/flutter_tools/lib/src/commands/run.dart
@@ -344,7 +344,7 @@
fs.file(pidFile).writeAsStringSync(pid.toString());
}
- final List<FlutterDevice> flutterDevices = devices.map((Device device) {
+ final List<FlutterDevice> flutterDevices = devices.map<FlutterDevice>((Device device) {
return FlutterDevice(
device,
trackWidgetCreation: argResults['track-widget-creation'],
@@ -392,7 +392,7 @@
// Do not add more operations to the future.
final Completer<void> appStartedTimeRecorder = Completer<void>.sync();
// This callback can't throw.
- appStartedTimeRecorder.future.then( // ignore: unawaited_futures
+ appStartedTimeRecorder.future.then<void>( // ignore: unawaited_futures
(_) { appStartedTime = clock.now(); }
);
diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart
index c2b0352..26c239a 100644
--- a/packages/flutter_tools/lib/src/compile.dart
+++ b/packages/flutter_tools/lib/src/compile.dart
@@ -179,11 +179,11 @@
final _StdoutHandler _stdoutHandler = _StdoutHandler();
server.stderr
- .transform(utf8.decoder)
+ .transform<String>(utf8.decoder)
.listen((String message) { printError(message); });
server.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen(_stdoutHandler.handler);
final int exitCode = await server.exitCode;
if (exitCode == 0) {
@@ -372,8 +372,8 @@
printTrace(command.join(' '));
_server = await processManager.start(command);
_server.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen(
_stdoutHandler.handler,
onDone: () {
@@ -385,8 +385,8 @@
});
_server.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String message) { printError(message); });
_server.stdin.writeln('compile $scriptFilename');
diff --git a/packages/flutter_tools/lib/src/dart/analysis.dart b/packages/flutter_tools/lib/src/dart/analysis.dart
index 0815190..481e4cb 100644
--- a/packages/flutter_tools/lib/src/dart/analysis.dart
+++ b/packages/flutter_tools/lib/src/dart/analysis.dart
@@ -43,11 +43,11 @@
_process.exitCode.whenComplete(() => _process = null); // ignore: unawaited_futures
final Stream<String> errorStream =
- _process.stderr.transform(utf8.decoder).transform(const LineSplitter());
+ _process.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter());
errorStream.listen(printError);
final Stream<String> inStream =
- _process.stdout.transform(utf8.decoder).transform(const LineSplitter());
+ _process.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter());
inStream.listen(_handleServerResponse);
// Available options (many of these are obsolete):
diff --git a/packages/flutter_tools/lib/src/devfs.dart b/packages/flutter_tools/lib/src/devfs.dart
index 0594742..3dd8819 100644
--- a/packages/flutter_tools/lib/src/devfs.dart
+++ b/packages/flutter_tools/lib/src/devfs.dart
@@ -47,7 +47,7 @@
Stream<List<int>> contentsAsStream();
Stream<List<int>> contentsAsCompressedStream() {
- return contentsAsStream().transform(gzip.encoder);
+ return contentsAsStream().transform<List<int>>(gzip.encoder);
}
/// Return the list of files this content depends on.
@@ -445,7 +445,7 @@
if (!content._exists) {
final Future<Map<String, dynamic>> operation =
_operations.deleteFile(fsName, deviceUri)
- .then((dynamic v) => v?.cast<String,dynamic>());
+ .then<Map<String, dynamic>>((dynamic v) => v?.cast<String,dynamic>());
if (operation != null)
_pendingOperations.add(operation);
toRemove.add(deviceUri);
@@ -458,7 +458,7 @@
if (toRemove.isNotEmpty) {
printTrace('Removing deleted files');
toRemove.forEach(_entries.remove);
- await Future.wait(_pendingOperations);
+ await Future.wait<Map<String, dynamic>>(_pendingOperations);
_pendingOperations.clear();
}
@@ -542,11 +542,11 @@
dirtyEntries.forEach((Uri deviceUri, DevFSContent content) {
final Future<Map<String, dynamic>> operation =
_operations.writeFile(fsName, deviceUri, content)
- .then((dynamic v) => v?.cast<String, dynamic>());
+ .then<Map<String, dynamic>>((dynamic v) => v?.cast<String, dynamic>());
if (operation != null)
_pendingOperations.add(operation);
});
- await Future.wait(_pendingOperations, eagerError: true);
+ await Future.wait<Map<String, dynamic>>(_pendingOperations, eagerError: true);
_pendingOperations.clear();
}
}
diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart
index 61ff0ab..29f5c27 100644
--- a/packages/flutter_tools/lib/src/device.dart
+++ b/packages/flutter_tools/lib/src/device.dart
@@ -315,14 +315,14 @@
// Calculate column widths
final List<int> indices = List<int>.generate(table[0].length - 1, (int i) => i);
- List<int> widths = indices.map((int i) => 0).toList();
+ List<int> widths = indices.map<int>((int i) => 0).toList();
for (List<String> row in table) {
- widths = indices.map((int i) => math.max(widths[i], row[i].length)).toList();
+ widths = indices.map<int>((int i) => math.max(widths[i], row[i].length)).toList();
}
// Join columns into lines of text
for (List<String> row in table) {
- yield indices.map((int i) => row[i].padRight(widths[i])).join(' • ') + ' • ${row.last}';
+ yield indices.map<String>((int i) => row[i].padRight(widths[i])).join(' • ') + ' • ${row.last}';
}
}
diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart
index 1c625b4..d0fcf2f 100644
--- a/packages/flutter_tools/lib/src/doctor.dart
+++ b/packages/flutter_tools/lib/src/doctor.dart
@@ -569,9 +569,9 @@
try {
final Iterable<Directory> installDirs = installPaths
- .map((String installPath) => fs.directory(installPath))
- .map((Directory dir) => dir.existsSync() ? dir.listSync() : <FileSystemEntity>[])
- .expand((List<FileSystemEntity> mappedDirs) => mappedDirs)
+ .map<Directory>((String installPath) => fs.directory(installPath))
+ .map<List<FileSystemEntity>>((Directory dir) => dir.existsSync() ? dir.listSync() : <FileSystemEntity>[])
+ .expand<FileSystemEntity>((List<FileSystemEntity> mappedDirs) => mappedDirs)
.whereType<Directory>();
for (Directory dir in installDirs) {
checkForIntelliJ(dir);
@@ -626,13 +626,13 @@
if (devices.isEmpty) {
final List<String> diagnostics = await deviceManager.getDeviceDiagnostics();
if (diagnostics.isNotEmpty) {
- messages = diagnostics.map((String message) => ValidationMessage(message)).toList();
+ messages = diagnostics.map<ValidationMessage>((String message) => ValidationMessage(message)).toList();
} else {
messages = <ValidationMessage>[ValidationMessage.hint('No devices available')];
}
} else {
messages = await Device.descriptions(devices)
- .map((String msg) => ValidationMessage(msg)).toList();
+ .map<ValidationMessage>((String msg) => ValidationMessage(msg)).toList();
}
if (devices.isEmpty) {
diff --git a/packages/flutter_tools/lib/src/emulator.dart b/packages/flutter_tools/lib/src/emulator.dart
index c40497c..42e63fe 100644
--- a/packages/flutter_tools/lib/src/emulator.dart
+++ b/packages/flutter_tools/lib/src/emulator.dart
@@ -54,7 +54,7 @@
/// Return the list of all available emulators.
Future<List<Emulator>> getAllAvailableEmulators() async {
final List<Emulator> emulators = <Emulator>[];
- await Future.forEach(_platformDiscoverers, (EmulatorDiscovery discoverer) async {
+ await Future.forEach<EmulatorDiscovery>(_platformDiscoverers, (EmulatorDiscovery discoverer) async {
emulators.addAll(await discoverer.emulators);
});
return emulators;
@@ -69,7 +69,7 @@
// so we can keep adding suffixes until we miss.
final List<Emulator> all = await getAllAvailableEmulators();
final Set<String> takenNames = all
- .map((Emulator e) => e.id)
+ .map<String>((Emulator e) => e.id)
.where((String id) => id.startsWith(autoName))
.toSet();
int suffix = 1;
@@ -176,8 +176,8 @@
.toList();
final List<int> availableApiVersions = availableIDs
- .map((String id) => androidApiVersion.firstMatch(id).group(1))
- .map((String apiVersion) => int.parse(apiVersion))
+ .map<String>((String id) => androidApiVersion.firstMatch(id).group(1))
+ .map<int>((String apiVersion) => int.parse(apiVersion))
.toList();
// Get the highest Android API version or whats left
@@ -253,21 +253,21 @@
// Calculate column widths
final List<int> indices = List<int>.generate(table[0].length - 1, (int i) => i);
- List<int> widths = indices.map((int i) => 0).toList();
+ List<int> widths = indices.map<int>((int i) => 0).toList();
for (List<String> row in table) {
- widths = indices.map((int i) => math.max(widths[i], row[i].length)).toList();
+ widths = indices.map<int>((int i) => math.max(widths[i], row[i].length)).toList();
}
// Join columns into lines of text
final RegExp whiteSpaceAndDots = RegExp(r'[•\s]+$');
return table
- .map((List<String> row) {
+ .map<String>((List<String> row) {
return indices
- .map((int i) => row[i].padRight(widths[i]))
+ .map<String>((int i) => row[i].padRight(widths[i]))
.join(' • ') +
' • ${row.last}';
})
- .map((String line) => line.replaceAll(whiteSpaceAndDots, ''))
+ .map<String>((String line) => line.replaceAll(whiteSpaceAndDots, ''))
.toList();
}
diff --git a/packages/flutter_tools/lib/src/flutter_manifest.dart b/packages/flutter_tools/lib/src/flutter_manifest.dart
index 9e937f4..6fa8efb 100644
--- a/packages/flutter_tools/lib/src/flutter_manifest.dart
+++ b/packages/flutter_tools/lib/src/flutter_manifest.dart
@@ -224,7 +224,7 @@
Map<String, dynamic> get descriptor {
return <String, dynamic>{
'family': familyName,
- 'fonts': fontAssets.map((FontAsset a) => a.descriptor).toList(),
+ 'fonts': fontAssets.map<Map<String, dynamic>>((FontAsset a) => a.descriptor).toList(),
};
}
diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart
index 111b654..d9f4e26 100644
--- a/packages/flutter_tools/lib/src/ios/devices.dart
+++ b/packages/flutter_tools/lib/src/ios/devices.dart
@@ -477,8 +477,8 @@
void _start() {
iMobileDevice.startLogger().then<Null>((Process process) {
_process = process;
- _process.stdout.transform(utf8.decoder).transform(const LineSplitter()).listen(_newLineHandler());
- _process.stderr.transform(utf8.decoder).transform(const LineSplitter()).listen(_newLineHandler());
+ _process.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_newLineHandler());
+ _process.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_newLineHandler());
_process.exitCode.whenComplete(() {
if (_linesController.hasListener)
_linesController.close();
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart
index d86bf9b..d77a41d 100644
--- a/packages/flutter_tools/lib/src/ios/mac.dart
+++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -662,7 +662,7 @@
void _copyServiceDefinitionsManifest(List<Map<String, String>> services, File manifest) {
printTrace("Creating service definitions manifest at '${manifest.path}'");
- final List<Map<String, String>> jsonServices = services.map((Map<String, String> service) => <String, String>{
+ final List<Map<String, String>> jsonServices = services.map<Map<String, String>>((Map<String, String> service) => <String, String>{
'name': service['name'],
// Since we have already moved it to the Frameworks directory. Strip away
// the directory and basenames.
diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart
index e4ba830..77dd9d4 100644
--- a/packages/flutter_tools/lib/src/ios/simulators.dart
+++ b/packages/flutter_tools/lib/src/ios/simulators.dart
@@ -46,7 +46,7 @@
if (!xcode.isInstalledAndMeetsVersionCheck)
return <IOSSimulator>[];
- return SimControl.instance.getConnectedDevices().map((SimDevice device) {
+ return SimControl.instance.getConnectedDevices().map<IOSSimulator>((SimDevice device) {
return IOSSimulator(device.udid, name: device.name, category: device.category);
}).toList();
}
@@ -339,7 +339,7 @@
}
Future<bool> _applicationIsInstalledAndRunning(ApplicationPackage app) async {
- final List<bool> criteria = await Future.wait(<Future<bool>>[
+ final List<bool> criteria = await Future.wait<bool>(<Future<bool>>[
isAppInstalled(app),
exitsHappyAsync(<String>['/usr/bin/killall', 'Runner']),
]);
@@ -510,15 +510,15 @@
// Device log.
await device.ensureLogsExists();
_deviceProcess = await launchDeviceLogTool(device);
- _deviceProcess.stdout.transform(utf8.decoder).transform(const LineSplitter()).listen(_onDeviceLine);
- _deviceProcess.stderr.transform(utf8.decoder).transform(const LineSplitter()).listen(_onDeviceLine);
+ _deviceProcess.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_onDeviceLine);
+ _deviceProcess.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_onDeviceLine);
// Track system.log crashes.
// ReportCrash[37965]: Saved crash report for FlutterRunner[37941]...
_systemProcess = await launchSystemLogTool(device);
if (_systemProcess != null) {
- _systemProcess.stdout.transform(utf8.decoder).transform(const LineSplitter()).listen(_onSystemLine);
- _systemProcess.stderr.transform(utf8.decoder).transform(const LineSplitter()).listen(_onSystemLine);
+ _systemProcess.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_onSystemLine);
+ _systemProcess.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_onSystemLine);
}
// We don't want to wait for the process or its callback. Best effort
@@ -629,8 +629,8 @@
}
int compareIosVersions(String v1, String v2) {
- final List<int> v1Fragments = v1.split('.').map(int.parse).toList();
- final List<int> v2Fragments = v2.split('.').map(int.parse).toList();
+ final List<int> v1Fragments = v1.split('.').map<int>(int.parse).toList();
+ final List<int> v2Fragments = v2.split('.').map<int>(int.parse).toList();
int i = 0;
while (i < v1Fragments.length && i < v2Fragments.length) {
diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart
index 9e63865..2bb2a20 100644
--- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart
+++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart
@@ -171,7 +171,7 @@
Map<String, String> parseXcodeBuildSettings(String showBuildSettingsOutput) {
final Map<String, String> settings = <String, String>{};
- for (Match match in showBuildSettingsOutput.split('\n').map(_settingExpr.firstMatch)) {
+ for (Match match in showBuildSettingsOutput.split('\n').map<Match>(_settingExpr.firstMatch)) {
if (match != null) {
settings[match[1]] = match[2];
}
diff --git a/packages/flutter_tools/lib/src/plugins.dart b/packages/flutter_tools/lib/src/plugins.dart
index e9a16d7..2b959c7 100644
--- a/packages/flutter_tools/lib/src/plugins.dart
+++ b/packages/flutter_tools/lib/src/plugins.dart
@@ -94,7 +94,7 @@
final File pluginsFile = project.flutterPluginsFile;
final String oldContents = _readFlutterPluginsList(project);
final String pluginManifest =
- plugins.map((Plugin p) => '${p.name}=${escapePath(p.path)}').join('\n');
+ plugins.map<String>((Plugin p) => '${p.name}=${escapePath(p.path)}').join('\n');
if (pluginManifest.isNotEmpty) {
pluginsFile.writeAsStringSync('$pluginManifest\n', flush: true);
} else {
@@ -147,7 +147,7 @@
Future<void> _writeAndroidPluginRegistrant(FlutterProject project, List<Plugin> plugins) async {
final List<Map<String, dynamic>> androidPlugins = plugins
.where((Plugin p) => p.androidPackage != null && p.pluginClass != null)
- .map((Plugin p) => <String, dynamic>{
+ .map<Map<String, dynamic>>((Plugin p) => <String, dynamic>{
'name': p.name,
'package': p.androidPackage,
'class': p.pluginClass,
@@ -238,7 +238,7 @@
Future<void> _writeIOSPluginRegistrant(FlutterProject project, List<Plugin> plugins) async {
final List<Map<String, dynamic>> iosPlugins = plugins
.where((Plugin p) => p.pluginClass != null)
- .map((Plugin p) => <String, dynamic>{
+ .map<Map<String, dynamic>>((Plugin p) => <String, dynamic>{
'name': p.name,
'prefix': p.iosPrefix,
'class': p.pluginClass,
diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart
index 9df371a..0654611 100644
--- a/packages/flutter_tools/lib/src/project.dart
+++ b/packages/flutter_tools/lib/src/project.dart
@@ -77,7 +77,7 @@
example.ios.productBundleIdentifier,
];
return Set<String>.from(candidates
- .map(_organizationNameFromPackageName)
+ .map<String>(_organizationNameFromPackageName)
.where((String name) => name != null));
}
diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart
index 2824e20..73cee56 100644
--- a/packages/flutter_tools/lib/src/resident_runner.dart
+++ b/packages/flutter_tools/lib/src/resident_runner.dart
@@ -89,7 +89,7 @@
return vmServices
.where((VMService service) => !service.isClosed)
- .expand((VMService service) => viewFilter != null
+ .expand<FlutterView>((VMService service) => viewFilter != null
? service.vm.allViewsWithName(viewFilter)
: service.vm.views)
.toList();
@@ -149,7 +149,7 @@
final Uri deviceAssetsDirectoryUri = devFS.baseUri.resolveUri(
fs.path.toUri(getAssetBuildDirectory()));
assert(deviceAssetsDirectoryUri != null);
- await Future.wait(views.map(
+ await Future.wait<Null>(views.map<Future<Null>>(
(FlutterView view) => view.setAssetDirectory(deviceAssetsDirectoryUri)
));
}
@@ -611,8 +611,8 @@
}
Future<Null> stopEchoingDeviceLog() async {
- await Future.wait(
- flutterDevices.map((FlutterDevice device) => device.stopEchoingDeviceLog())
+ await Future.wait<Null>(
+ flutterDevices.map<Future<Null>>((FlutterDevice device) => device.stopEchoingDeviceLog())
);
}
diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart
index f973c89..1d6a0a8 100644
--- a/packages/flutter_tools/lib/src/run_hot.dart
+++ b/packages/flutter_tools/lib/src/run_hot.dart
@@ -582,11 +582,11 @@
);
countExpectedReports += reports.length;
await Future
- .wait(reports)
+ .wait<Map<String, dynamic>>(reports)
.catchError((dynamic error) {
return <Map<String, dynamic>>[error];
})
- .then(
+ .then<void>(
(List<Map<String, dynamic>> list) {
// TODO(aam): Investigate why we are validating only first reload report,
// which seems to be current behavior
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
index edfc074..68cc46f 100644
--- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
+++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
@@ -425,7 +425,7 @@
List<String> getRepoRoots() {
final String root = fs.path.absolute(Cache.flutterRoot);
// not bin, and not the root
- return <String>['dev', 'examples', 'packages'].map((String item) {
+ return <String>['dev', 'examples', 'packages'].map<String>((String item) {
return fs.path.join(root, item);
}).toList();
}
@@ -434,7 +434,7 @@
List<Directory> getRepoPackages() {
return getRepoRoots()
.expand<String>((String root) => _gatherProjectPaths(root))
- .map((String dir) => fs.directory(dir))
+ .map<Directory>((String dir) => fs.directory(dir))
.toList();
}
diff --git a/packages/flutter_tools/lib/src/services.dart b/packages/flutter_tools/lib/src/services.dart
index 2edceb7..bdc61d2 100644
--- a/packages/flutter_tools/lib/src/services.dart
+++ b/packages/flutter_tools/lib/src/services.dart
@@ -98,7 +98,7 @@
String dir, List<Map<String, String>> servicesIn
) {
final List<Map<String, String>> services =
- servicesIn.map((Map<String, String> service) => <String, String>{
+ servicesIn.map<Map<String, String>>((Map<String, String> service) => <String, String>{
'name': service['name'],
'class': service['android-class']
}).toList();
diff --git a/packages/flutter_tools/lib/src/test/flutter_platform.dart b/packages/flutter_tools/lib/src/test/flutter_platform.dart
index 58ae3c6..e734fb2 100644
--- a/packages/flutter_tools/lib/src/test/flutter_platform.dart
+++ b/packages/flutter_tools/lib/src/test/flutter_platform.dart
@@ -526,7 +526,7 @@
watcher?.handleStartedProcess(ProcessEvent(ourTestCount, process, processObservatoryUri));
},
startTimeoutTimer: () {
- Future<_InitialResult>.delayed(_kTestStartupTimeout).then((_) => timeout.complete());
+ Future<_InitialResult>.delayed(_kTestStartupTimeout).then<void>((_) => timeout.complete());
},
);
@@ -536,7 +536,7 @@
// The local test harness could get bored of us.
printTrace('test $ourTestCount: awaiting initial result for pid ${process.pid}');
- final _InitialResult initialResult = await Future.any(<Future<_InitialResult>>[
+ final _InitialResult initialResult = await Future.any<_InitialResult>(<Future<_InitialResult>>[
process.exitCode.then<_InitialResult>((int exitCode) => _InitialResult.crashed),
timeout.future.then<_InitialResult>((void value) => _InitialResult.timedOut),
Future<_InitialResult>.delayed(_kTestProcessTimeout, () => _InitialResult.timedOut),
@@ -615,13 +615,13 @@
);
printTrace('test $ourTestCount: awaiting test result for pid ${process.pid}');
- final _TestResult testResult = await Future.any(<Future<_TestResult>>[
+ final _TestResult testResult = await Future.any<_TestResult>(<Future<_TestResult>>[
process.exitCode.then<_TestResult>((int exitCode) { return _TestResult.crashed; }),
harnessDone.future.then<_TestResult>((void value) { return _TestResult.harnessBailed; }),
testDone.future.then<_TestResult>((void value) { return _TestResult.testBailed; }),
]);
- await Future.wait(<Future<void>>[
+ await Future.wait<void>(<Future<void>>[
harnessToTest.cancel(),
testToHarness.cancel(),
]);
@@ -870,8 +870,8 @@
const String observatoryString = 'Observatory listening on ';
for (Stream<List<int>> stream in
<Stream<List<int>>>[process.stderr, process.stdout]) {
- stream.transform(utf8.decoder)
- .transform(const LineSplitter())
+ stream.transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen(
(String line) {
if (line == _kStartTimeoutTimerMessage) {
diff --git a/packages/flutter_tools/lib/src/tester/flutter_tester.dart b/packages/flutter_tools/lib/src/tester/flutter_tester.dart
index 2487d63..4e5ff5f 100644
--- a/packages/flutter_tools/lib/src/tester/flutter_tester.dart
+++ b/packages/flutter_tools/lib/src/tester/flutter_tester.dart
@@ -153,16 +153,16 @@
},
);
// Setting a bool can't fail in the callback.
- _process.exitCode.then((_) => _isRunning = false); // ignore: unawaited_futures
+ _process.exitCode.then<void>((_) => _isRunning = false); // ignore: unawaited_futures
_process.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
_logReader.addLine(line);
});
_process.stderr
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) {
_logReader.addLine(line);
});
diff --git a/packages/flutter_tools/lib/src/version.dart b/packages/flutter_tools/lib/src/version.dart
index e1dea0e..98612c0 100644
--- a/packages/flutter_tools/lib/src/version.dart
+++ b/packages/flutter_tools/lib/src/version.dart
@@ -161,7 +161,7 @@
static Future<Null> _removeVersionCheckRemoteIfExists() async {
final List<String> remotes = (await _run(<String>['git', 'remote']))
.split('\n')
- .map((String name) => name.trim()) // to account for OS-specific line-breaks
+ .map<String>((String name) => name.trim()) // to account for OS-specific line-breaks
.toList();
if (remotes.contains(_versionCheckRemote))
await _run(<String>['git', 'remote', 'remove', _versionCheckRemote]);
diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart
index 3fc389a..ae7652e 100644
--- a/packages/flutter_tools/lib/src/vmservice.dart
+++ b/packages/flutter_tools/lib/src/vmservice.dart
@@ -289,7 +289,7 @@
String method,
Map<String, dynamic> params,
) {
- return Future.any(<Future<Map<String, dynamic>>>[
+ return Future.any<Map<String, dynamic>>(<Future<Map<String, dynamic>>>[
_peer.sendRequest(method, params).then<Map<String, dynamic>>(castStringKeyedMap),
_connectionError.future,
]);
@@ -954,7 +954,7 @@
return;
_viewCache.clear();
for (Isolate isolate in isolates.toList()) {
- await vmService.vm.invokeRpc('_flutter.listViews',
+ await vmService.vm.invokeRpc<ServiceObject>('_flutter.listViews',
timeout: kLongRequestTimeout,
params: <String, dynamic> {'isolateId': isolate.id});
}
@@ -1208,7 +1208,7 @@
<Future<ProgramElement>>[];
for (Map<String, dynamic> element in response['unused'])
unusedElements.add(_describeElement(element));
- return Future.wait(unusedElements);
+ return Future.wait<ProgramElement>(unusedElements);
}
/// Resumes the isolate.
@@ -1388,7 +1388,7 @@
@override
void removeWhere(bool test(String key, dynamic value)) => _map.removeWhere(test);
@override
- Map<K2, V2> map<K2, V2>(MapEntry<K2, V2> transform(String key, dynamic value)) => _map.map(transform);
+ Map<K2, V2> map<K2, V2>(MapEntry<K2, V2> transform(String key, dynamic value)) => _map.map<K2, V2>(transform);
@override
Iterable<MapEntry<String, dynamic>> get entries => _map.entries;
@override
@@ -1440,7 +1440,7 @@
Future<Null> setAssetDirectory(Uri assetsDirectory) async {
assert(assetsDirectory != null);
- await owner.vmService.vm.invokeRpc('_flutter.setAssetBundlePath',
+ await owner.vmService.vm.invokeRpc<ServiceObject>('_flutter.setAssetBundlePath',
params: <String, dynamic>{
'isolateId': _uiIsolate.id,
'viewId': id,
diff --git a/packages/flutter_tools/lib/src/vscode/vscode_validator.dart b/packages/flutter_tools/lib/src/vscode/vscode_validator.dart
index f68a3ec..b93e1d0 100644
--- a/packages/flutter_tools/lib/src/vscode/vscode_validator.dart
+++ b/packages/flutter_tools/lib/src/vscode/vscode_validator.dart
@@ -18,7 +18,7 @@
static Iterable<DoctorValidator> get installedValidators {
return VsCode
.allInstalled()
- .map((VsCode vsCode) => VsCodeValidator(vsCode));
+ .map<DoctorValidator>((VsCode vsCode) => VsCodeValidator(vsCode));
}
@override
@@ -32,11 +32,11 @@
if (_vsCode.isValid) {
type = ValidationType.installed;
messages.addAll(_vsCode.validationMessages
- .map((String m) => ValidationMessage(m)));
+ .map<ValidationMessage>((String m) => ValidationMessage(m)));
} else {
type = ValidationType.partial;
messages.addAll(_vsCode.validationMessages
- .map((String m) => ValidationMessage.error(m)));
+ .map<ValidationMessage>((String m) => ValidationMessage.error(m)));
messages.add(ValidationMessage(
'Flutter extension not installed; install from\n$extensionMarketplaceUrl'));
}
diff --git a/packages/flutter_tools/test/android/android_workflow_test.dart b/packages/flutter_tools/test/android/android_workflow_test.dart
index 73c9dc1..9564bd8 100644
--- a/packages/flutter_tools/test/android/android_workflow_test.dart
+++ b/packages/flutter_tools/test/android/android_workflow_test.dart
@@ -33,7 +33,7 @@
MockProcess Function(List<String>) processMetaFactory(List<String> stdout) {
final Stream<List<int>> stdoutStream = Stream<List<int>>.fromIterable(
- stdout.map((String s) => s.codeUnits));
+ stdout.map<List<int>>((String s) => s.codeUnits));
return (List<String> command) => MockProcess(stdout: stdoutStream);
}
diff --git a/packages/flutter_tools/test/base/context_test.dart b/packages/flutter_tools/test/base/context_test.dart
index f7291dc..94ec567 100644
--- a/packages/flutter_tools/test/base/context_test.dart
+++ b/packages/flutter_tools/test/base/context_test.dart
@@ -24,7 +24,7 @@
test('returns root context in child of root zone if zone was manually created', () {
final Zone rootZone = Zone.current;
final AppContext rootContext = context;
- runZoned(() {
+ runZoned<void>(() {
expect(Zone.current, isNot(rootZone));
expect(Zone.current.parent, rootZone);
expect(context, rootContext);
@@ -61,7 +61,7 @@
final AppContext rootContext = context;
await rootContext.run<void>(name: 'child', body: () {
final AppContext childContext = context;
- runZoned(() {
+ runZoned<void>(() {
expect(context, isNot(rootContext));
expect(context, same(childContext));
expect(context.name, 'child');
@@ -79,7 +79,7 @@
String value;
await context.run<void>(
body: () {
- outer.future.then((_) {
+ outer.future.then<void>((_) {
value = context[String];
inner.complete();
});
diff --git a/packages/flutter_tools/test/commands/daemon_test.dart b/packages/flutter_tools/test/commands/daemon_test.dart
index 15301da..b1315ea 100644
--- a/packages/flutter_tools/test/commands/daemon_test.dart
+++ b/packages/flutter_tools/test/commands/daemon_test.dart
@@ -73,7 +73,7 @@
testUsingContext('printStatus should log to stdout when logToStdout is enabled', () async {
final StringBuffer buffer = StringBuffer();
- await runZoned(() async {
+ await runZoned<Future<void>>(() async {
final StreamController<Map<String, dynamic>> commands = StreamController<Map<String, dynamic>>();
final StreamController<Map<String, dynamic>> responses = StreamController<Map<String, dynamic>>();
daemon = Daemon(
@@ -228,7 +228,7 @@
daemon.deviceDomain.addDeviceDiscoverer(discoverer);
discoverer.addDevice(MockAndroidDevice());
- return await responses.stream.skipWhile(_isConnectedEvent).first.then((Map<String, dynamic> response) async {
+ return await responses.stream.skipWhile(_isConnectedEvent).first.then<void>((Map<String, dynamic> response) async {
expect(response['event'], 'device.added');
expect(response['params'], isMap);
diff --git a/packages/flutter_tools/test/commands/packages_test.dart b/packages/flutter_tools/test/commands/packages_test.dart
index 95c7f46..5f74b3a 100644
--- a/packages/flutter_tools/test/commands/packages_test.dart
+++ b/packages/flutter_tools/test/commands/packages_test.dart
@@ -159,7 +159,7 @@
pubOutput,
pluginRegistrants,
pluginWitnesses,
- ].expand((List<String> list) => list);
+ ].expand<String>((List<String> list) => list);
for (String path in allFiles) {
final File file = fs.file(fs.path.join(projectPath, path));
if (file.existsSync())
@@ -285,7 +285,7 @@
final Future<Null> simulateUserInput = Future<Null>(() {
mockStdio.simulateStdin('y');
});
- await Future.wait(<Future<Null>>[runPackages, runPrompt, simulateUserInput]);
+ await Future.wait<Null>(<Future<Null>>[runPackages, runPrompt, simulateUserInput]);
final List<String> commands = mockProcessManager.commands;
expect(commands, hasLength(2));
expect(commands[0], matches(r'dart-sdk[\\/]bin[\\/]pub'));
diff --git a/packages/flutter_tools/test/integration/test_driver.dart b/packages/flutter_tools/test/integration/test_driver.dart
index e70eb15..b8503a2 100644
--- a/packages/flutter_tools/test/integration/test_driver.dart
+++ b/packages/flutter_tools/test/integration/test_driver.dart
@@ -127,7 +127,7 @@
// Proxy the stream/sink for the VM Client so we can debugPrint it.
final StreamChannel<String> channel = IOWebSocketChannel.connect(_vmServiceWsUri)
.cast<String>()
- .changeStream((Stream<String> stream) => stream.map(_debugPrint))
+ .changeStream((Stream<String> stream) => stream.map<String>(_debugPrint))
.changeSink((StreamSink<String> sink) =>
StreamController<String>()
..stream.listen((String s) => sink.add(_debugPrint(s))));
@@ -282,7 +282,7 @@
Future<VMInstanceRef> evaluateExpression(String expression) async {
final VMFrame topFrame = await getTopStackFrame();
- return _timeoutWithMessages(() => topFrame.evaluate(expression),
+ return _timeoutWithMessages<VMInstanceRef>(() => topFrame.evaluate(expression),
message: 'Timed out evaluating expression ($expression)');
}
@@ -334,7 +334,7 @@
}
});
- return _timeoutWithMessages(() => response.future,
+ return _timeoutWithMessages<Map<String, dynamic>>(() => response.future,
timeout: timeout,
message: event != null
? 'Did not receive expected $event event.'
@@ -406,5 +406,5 @@
}
Stream<String> _transformToLines(Stream<List<int>> byteStream) {
- return byteStream.transform(utf8.decoder).transform(const LineSplitter());
+ return byteStream.transform<String>(utf8.decoder).transform<String>(const LineSplitter());
}
diff --git a/packages/flutter_tools/test/src/context.dart b/packages/flutter_tools/test/src/context.dart
index b20bac2..e91e155 100644
--- a/packages/flutter_tools/test/src/context.dart
+++ b/packages/flutter_tools/test/src/context.dart
@@ -85,7 +85,7 @@
body: () {
final String flutterRoot = getFlutterRoot();
- return runZoned(() {
+ return runZoned<Future<dynamic>>(() {
try {
return context.run<dynamic>(
// Apply the overrides to the test context in the zone since their
@@ -198,7 +198,7 @@
/// the Doctor.
List<DoctorValidator> get validators {
final List<DoctorValidator> superValidators = super.validators;
- return superValidators.map((DoctorValidator v) {
+ return superValidators.map<DoctorValidator>((DoctorValidator v) {
if (v is AndroidValidator) {
return MockAndroidWorkflowValidator();
}
diff --git a/packages/flutter_tools/test/src/mocks.dart b/packages/flutter_tools/test/src/mocks.dart
index d21cc91..5bcb4bc 100644
--- a/packages/flutter_tools/test/src/mocks.dart
+++ b/packages/flutter_tools/test/src/mocks.dart
@@ -303,8 +303,8 @@
_stdin.add(utf8.encode('$line\n'));
}
- List<String> get writtenToStdout => _stdout.writes.map(_stdout.encoding.decode).toList();
- List<String> get writtenToStderr => _stderr.writes.map(_stderr.encoding.decode).toList();
+ List<String> get writtenToStdout => _stdout.writes.map<String>(_stdout.encoding.decode).toList();
+ List<String> get writtenToStderr => _stderr.writes.map<String>(_stderr.encoding.decode).toList();
}
class MockPollingDeviceDiscovery extends PollingDeviceDiscovery {
diff --git a/packages/flutter_tools/tool/daemon_client.dart b/packages/flutter_tools/tool/daemon_client.dart
index 10f4895..d8a1d75 100644
--- a/packages/flutter_tools/tool/daemon_client.dart
+++ b/packages/flutter_tools/tool/daemon_client.dart
@@ -23,13 +23,13 @@
print('daemon process started, pid: ${daemon.pid}');
daemon.stdout
- .transform(utf8.decoder)
- .transform(const LineSplitter())
+ .transform<String>(utf8.decoder)
+ .transform<String>(const LineSplitter())
.listen((String line) => print('<== $line'));
daemon.stderr.listen((dynamic data) => stderr.add(data));
stdout.write('> ');
- stdin.transform(utf8.decoder).transform(const LineSplitter()).listen((String line) {
+ stdin.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen((String line) {
final List<String> words = line.split(' ');
if (line == 'version' || line == 'v') {
diff --git a/packages/fuchsia_remote_debug_protocol/lib/src/fuchsia_remote_connection.dart b/packages/fuchsia_remote_debug_protocol/lib/src/fuchsia_remote_connection.dart
index f9add30..1fec7ca 100644
--- a/packages/fuchsia_remote_debug_protocol/lib/src/fuchsia_remote_connection.dart
+++ b/packages/fuchsia_remote_debug_protocol/lib/src/fuchsia_remote_connection.dart
@@ -306,9 +306,9 @@
}
isolates.add(vmService.getMainIsolatesByPattern(pattern));
}
- final List<IsolateRef> result = await Future.wait(isolates)
+ final List<IsolateRef> result = await Future.wait<List<IsolateRef>>(isolates)
.timeout(timeout)
- .then((List<List<IsolateRef>> listOfLists) {
+ .then<List<IsolateRef>>((List<List<IsolateRef>> listOfLists) {
final List<List<IsolateRef>> mutableListOfLists =
List<List<IsolateRef>>.from(listOfLists)
..retainWhere((List<IsolateRef> list) => list.isNotEmpty);
@@ -477,7 +477,7 @@
await stop();
final List<int> servicePorts = await getDeviceServicePorts();
final List<PortForwarder> forwardedVmServicePorts =
- await Future.wait(servicePorts.map((int deviceServicePort) {
+ await Future.wait<PortForwarder>(servicePorts.map<Future<PortForwarder>>((int deviceServicePort) {
return fuchsiaPortForwardingFunction(
_sshCommandRunner.address,
deviceServicePort,