add missing type parameter on methods (#22096)
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') {