apply lint prefer_void_to_null in packages/flutter_tools (#22686)
diff --git a/packages/flutter_tools/bin/fuchsia_asset_builder.dart b/packages/flutter_tools/bin/fuchsia_asset_builder.dart index c659f84..aa63d3d 100644 --- a/packages/flutter_tools/bin/fuchsia_asset_builder.dart +++ b/packages/flutter_tools/bin/fuchsia_asset_builder.dart
@@ -30,20 +30,20 @@ _kOptionComponentName, ]; -Future<Null> main(List<String> args) { - return runInContext<Null>(() => run(args), overrides: <Type, Generator>{ +Future<void> main(List<String> args) { + return runInContext<void>(() => run(args), overrides: <Type, Generator>{ Usage: () => DisabledUsage(), }); } -Future<Null> writeFile(libfs.File outputFile, DevFSContent content) async { +Future<void> writeFile(libfs.File outputFile, DevFSContent content) async { outputFile.createSync(recursive: true); final List<int> data = await content.contentsAsBytes(); outputFile.writeAsBytesSync(data); return null; } -Future<Null> run(List<String> args) async { +Future<void> run(List<String> args) async { final ArgParser parser = ArgParser() ..addOption(_kOptionPackages, help: 'The .packages file') ..addOption(_kOptionAsset, @@ -72,18 +72,18 @@ exit(1); } - final List<Future<Null>> calls = <Future<Null>>[]; + final List<Future<void>> calls = <Future<void>>[]; assets.entries.forEach((String fileName, DevFSContent content) { final libfs.File outputFile = libfs.fs.file(libfs.fs.path.join(assetDir, fileName)); calls.add(writeFile(outputFile, content)); }); - await Future.wait<Null>(calls); + await Future.wait<void>(calls); final String outputMan = argResults[_kOptionAssetManifestOut]; await writeFuchsiaManifest(assets, argResults[_kOptionAsset], outputMan, argResults[_kOptionComponentName]); } -Future<Null> writeFuchsiaManifest(AssetBundle assets, String outputBase, String fileDest, String componentName) async { +Future<void> writeFuchsiaManifest(AssetBundle assets, String outputBase, String fileDest, String componentName) async { final libfs.File destFile = libfs.fs.file(fileDest); await destFile.create(recursive: true);
diff --git a/packages/flutter_tools/bin/fuchsia_tester.dart b/packages/flutter_tools/bin/fuchsia_tester.dart index 8d97972..a5e0ee3 100644 --- a/packages/flutter_tools/bin/fuchsia_tester.dart +++ b/packages/flutter_tools/bin/fuchsia_tester.dart
@@ -43,12 +43,12 @@ const String _kOptionCoveragePath = 'coverage-path'; void main(List<String> args) { - runInContext<Null>(() => run(args), overrides: <Type, Generator>{ + runInContext<void>(() => run(args), overrides: <Type, Generator>{ Usage: () => DisabledUsage(), }); } -Future<Null> run(List<String> args) async { +Future<void> run(List<String> args) async { final ArgParser parser = ArgParser() ..addOption(_kOptionPackages, help: 'The .packages file') ..addOption(_kOptionShell, help: 'The Flutter shell binary')
diff --git a/packages/flutter_tools/lib/executable.dart b/packages/flutter_tools/lib/executable.dart index 61a38a7..6d62a5e 100644 --- a/packages/flutter_tools/lib/executable.dart +++ b/packages/flutter_tools/lib/executable.dart
@@ -39,7 +39,7 @@ /// Main entry point for commands. /// /// This function is intended to be used from the `flutter` command line tool. -Future<Null> main(List<String> args) async { +Future<void> main(List<String> args) async { final bool verbose = args.contains('-v') || args.contains('--verbose'); final bool doctor = (args.isNotEmpty && args.first == 'doctor') ||
diff --git a/packages/flutter_tools/lib/runner.dart b/packages/flutter_tools/lib/runner.dart index d727c70..963d801 100644 --- a/packages/flutter_tools/lib/runner.dart +++ b/packages/flutter_tools/lib/runner.dart
@@ -211,7 +211,7 @@ // Run shutdown hooks before flushing logs await runShutdownHooks(); - final Completer<Null> completer = Completer<Null>(); + final Completer<void> completer = Completer<void>(); // Give the task / timer queue one cycle through before we hard exit. Timer.run(() {
diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 497157f..ea70f44 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart
@@ -676,7 +676,7 @@ _timeOrigin = _adbTimestampToDateTime(lastTimestamp); else _timeOrigin = null; - runCommand(device.adbCommandForDevice(args)).then<Null>((Process process) { + runCommand(device.adbCommandForDevice(args)).then<void>((Process process) { _process = process; const Utf8Decoder decoder = Utf8Decoder(allowMalformed: true); _process.stdout.transform<String>(decoder).transform<String>(const LineSplitter()).listen(_onLine); @@ -868,7 +868,7 @@ } @override - Future<Null> unforward(ForwardedPort forwardedPort) async { + Future<void> unforward(ForwardedPort forwardedPort) async { await runCheckedAsync(device.adbCommandForDevice( <String>['forward', '--remove', 'tcp:${forwardedPort.hostPort}'] ));
diff --git a/packages/flutter_tools/lib/src/android/apk.dart b/packages/flutter_tools/lib/src/android/apk.dart index 43b73c1..5b30036 100644 --- a/packages/flutter_tools/lib/src/android/apk.dart +++ b/packages/flutter_tools/lib/src/android/apk.dart
@@ -14,7 +14,7 @@ import 'android_sdk.dart'; import 'gradle.dart'; -Future<Null> buildApk({ +Future<void> buildApk({ @required FlutterProject project, @required String target, BuildInfo buildInfo = BuildInfo.debug
diff --git a/packages/flutter_tools/lib/src/android/gradle.dart b/packages/flutter_tools/lib/src/android/gradle.dart index b676afc..ab3a21a 100644 --- a/packages/flutter_tools/lib/src/android/gradle.dart +++ b/packages/flutter_tools/lib/src/android/gradle.dart
@@ -272,7 +272,7 @@ } } -Future<Null> buildGradleProject({ +Future<void> buildGradleProject({ @required FlutterProject project, @required BuildInfo buildInfo, @required String target, @@ -301,7 +301,7 @@ } } -Future<Null> _buildGradleProjectV1(FlutterProject project, String gradle) async { +Future<void> _buildGradleProjectV1(FlutterProject project, String gradle) async { // Run 'gradlew build'. final Status status = logger.startProgress( "Running 'gradlew build'...", @@ -322,7 +322,7 @@ printStatus('Built ${fs.path.relative(project.android.gradleAppOutV1File.path)}.'); } -Future<Null> _buildGradleProjectV2( +Future<void> _buildGradleProjectV2( FlutterProject flutterProject, String gradle, BuildInfo buildInfo,
diff --git a/packages/flutter_tools/lib/src/base/net.dart b/packages/flutter_tools/lib/src/base/net.dart index 94c724e..0a8270a 100644 --- a/packages/flutter_tools/lib/src/base/net.dart +++ b/packages/flutter_tools/lib/src/base/net.dart
@@ -23,7 +23,7 @@ if (result != null) return result; printStatus('Download failed -- attempting retry $attempts in $duration second${ duration == 1 ? "" : "s"}...'); - await Future<Null>.delayed(Duration(seconds: duration)); + await Future<void>.delayed(Duration(seconds: duration)); if (duration < 64) duration *= 2; }
diff --git a/packages/flutter_tools/lib/src/base/process.dart b/packages/flutter_tools/lib/src/base/process.dart index 29029d4..c612e45 100644 --- a/packages/flutter_tools/lib/src/base/process.dart +++ b/packages/flutter_tools/lib/src/base/process.dart
@@ -74,7 +74,7 @@ /// hooks within a given stage will be started in parallel and will be /// guaranteed to run to completion before shutdown hooks in the next stage are /// started. -Future<Null> runShutdownHooks() async { +Future<void> runShutdownHooks() async { printTrace('Running shutdown hooks'); _shutdownHooksRunning = true; try { @@ -164,12 +164,12 @@ // Wait for stdout to be fully processed // because process.exitCode may complete first causing flaky tests. - await waitGroup<Null>(<Future<Null>>[ - stdoutSubscription.asFuture<Null>(), - stderrSubscription.asFuture<Null>(), + await waitGroup<void>(<Future<void>>[ + stdoutSubscription.asFuture<void>(), + stderrSubscription.asFuture<void>(), ]); - await waitGroup<Null>(<Future<Null>>[ + await waitGroup<void>(<Future<void>>[ stdoutSubscription.cancel(), stderrSubscription.cancel(), ]); @@ -203,9 +203,9 @@ return await process.exitCode; } -Future<Null> runAndKill(List<String> cmd, Duration timeout) { +Future<void> runAndKill(List<String> cmd, Duration timeout) { final Future<Process> proc = runDetached(cmd); - return Future<Null>.delayed(timeout, () async { + return Future<void>.delayed(timeout, () async { printTrace('Intentionally killing ${cmd[0]}'); processManager.killPid((await proc).pid); });
diff --git a/packages/flutter_tools/lib/src/base/utils.dart b/packages/flutter_tools/lib/src/base/utils.dart index ee485de..e74fd49 100644 --- a/packages/flutter_tools/lib/src/base/utils.dart +++ b/packages/flutter_tools/lib/src/base/utils.dart
@@ -251,14 +251,14 @@ Clock get clock => context[Clock]; -typedef AsyncCallback = Future<Null> Function(); +typedef AsyncCallback = Future<void> Function(); /// A [Timer] inspired class that: /// - has a different initial value for the first callback delay /// - waits for a callback to be complete before it starts the next timer class Poller { Poller(this.callback, this.pollingInterval, { this.initialDelay = Duration.zero }) { - Future<Null>.delayed(initialDelay, _handleCallback); + Future<void>.delayed(initialDelay, _handleCallback); } final AsyncCallback callback; @@ -268,7 +268,7 @@ bool _cancelled = false; Timer _timer; - Future<Null> _handleCallback() async { + Future<void> _handleCallback() async { if (_cancelled) return;
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart index 8ab311c..4010e15 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart
@@ -70,7 +70,7 @@ /// Normally the lock will be held until the process exits (this uses normal /// POSIX flock semantics). Long-lived commands should release the lock by /// calling [Cache.releaseLockEarly] once they are no longer touching the cache. - static Future<Null> lock() async { + static Future<void> lock() async { if (!_lockEnabled) return null; assert(_lock == null); @@ -87,7 +87,7 @@ printStatus('Waiting for another flutter command to release the startup lock...'); printed = true; } - await Future<Null>.delayed(const Duration(milliseconds: 50)); + await Future<void>.delayed(const Duration(milliseconds: 50)); } } } @@ -199,7 +199,7 @@ return cachedFile.path; } - Future<Null> updateAll() async { + Future<void> updateAll() async { if (!_lockEnabled) return null; try { @@ -245,7 +245,7 @@ return isUpToDateInner(); } - Future<Null> update() async { + Future<void> update() async { if (location.existsSync()) location.deleteSync(recursive: true); location.createSync(recursive: true); @@ -272,7 +272,7 @@ bool isUpToDateInner() => true; /// Template method to perform artifact update. - Future<Null> updateInner(); + Future<void> updateInner(); String get _storageBaseUrl { final String overrideUrl = platform.environment['FLUTTER_STORAGE_BASE_URL']; @@ -285,7 +285,7 @@ Uri _toStorageUri(String path) => Uri.parse('$_storageBaseUrl/$path'); /// Download an archive from the given [url] and unzip it to [location]. - Future<Null> _downloadArchive(String message, Uri url, Directory location, bool verifier(File f), void extractor(File f, Directory d)) { + Future<void> _downloadArchive(String message, Uri url, Directory location, bool verifier(File f), void extractor(File f, Directory d)) { return _withDownloadFile('${flattenNameSubdirs(url)}', (File tempFile) async { if (!verifier(tempFile)) { final Status status = logger.startProgress(message, expectSlowOperation: true); @@ -305,18 +305,18 @@ } /// Download a zip archive from the given [url] and unzip it to [location]. - Future<Null> _downloadZipArchive(String message, Uri url, Directory location) { + Future<void> _downloadZipArchive(String message, Uri url, Directory location) { return _downloadArchive(message, url, location, os.verifyZip, os.unzip); } /// Download a gzipped tarball from the given [url] and unpack it to [location]. - Future<Null> _downloadZippedTarball(String message, Uri url, Directory location) { + Future<void> _downloadZippedTarball(String message, Uri url, Directory location) { return _downloadArchive(message, url, location, os.verifyGzip, os.unpack); } /// Create a temporary file and invoke [onTemporaryFile] with the file as /// argument, then add the temporary file to the [_downloadedFiles]. - Future<Null> _withDownloadFile(String name, Future<Null> onTemporaryFile(File file)) async { + Future<void> _withDownloadFile(String name, Future<void> onTemporaryFile(File file)) async { final File tempFile = fs.file(fs.path.join(cache.getDownloadDir().path, name)); _downloadedFiles.add(tempFile); await onTemporaryFile(tempFile); @@ -340,7 +340,7 @@ MaterialFonts(Cache cache): super('material_fonts', cache); @override - Future<Null> updateInner() { + Future<void> updateInner() { final Uri archiveUri = _toStorageUri(version); return _downloadZipArchive('Downloading Material fonts...', archiveUri, location); } @@ -470,7 +470,7 @@ } @override - Future<Null> updateInner() async { + Future<void> updateInner() async { final String url = '$_storageBaseUrl/flutter_infra/flutter/$version/'; final Directory pkgDir = cache.getCacheDir('pkg'); @@ -521,9 +521,9 @@ GradleWrapper(Cache cache): super('gradle_wrapper', cache); @override - Future<Null> updateInner() { + Future<void> updateInner() { final Uri archiveUri = _toStorageUri(version); - return _downloadZippedTarball('Downloading Gradle Wrapper...', archiveUri, location).then<Null>((_) { + return _downloadZippedTarball('Downloading Gradle Wrapper...', archiveUri, location).then<void>((_) { // Delete property file, allowing templates to provide it. fs.file(fs.path.join(location.path, 'gradle', 'wrapper', 'gradle-wrapper.properties')).deleteSync(); // Remove NOTICE file. Should not be part of the template. @@ -565,7 +565,7 @@ } /// Download a file from the given [url] and write it to [location]. -Future<Null> _downloadFile(Uri url, File location) async { +Future<void> _downloadFile(Uri url, File location) async { _ensureExists(location.parent); final List<int> fileBytes = await fetchUrl(url); location.writeAsBytesSync(fileBytes, flush: true);
diff --git a/packages/flutter_tools/lib/src/commands/analyze.dart b/packages/flutter_tools/lib/src/commands/analyze.dart index 1da4c74..ddb18d3 100644 --- a/packages/flutter_tools/lib/src/commands/analyze.dart +++ b/packages/flutter_tools/lib/src/commands/analyze.dart
@@ -80,20 +80,22 @@ } @override - Future<Null> runCommand() { + Future<FlutterCommandResult> runCommand() async { if (argResults['watch']) { - return AnalyzeContinuously( + await AnalyzeContinuously( argResults, runner.getRepoRoots(), runner.getRepoPackages(), ).analyze(); + return null; } else { - return AnalyzeOnce( + await AnalyzeOnce( argResults, runner.getRepoRoots(), runner.getRepoPackages(), workingDirectory: workingDirectory, ).analyze(); + return null; } } }
diff --git a/packages/flutter_tools/lib/src/commands/analyze_base.dart b/packages/flutter_tools/lib/src/commands/analyze_base.dart index e10f96f..2e9acfb 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_base.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_base.dart
@@ -21,7 +21,7 @@ final ArgResults argResults; /// Called by [AnalyzeCommand] to start the analysis process. - Future<Null> analyze(); + Future<void> analyze(); void dumpErrors(Iterable<String> errors) { if (argResults['write'] != null) {
diff --git a/packages/flutter_tools/lib/src/commands/analyze_continuously.dart b/packages/flutter_tools/lib/src/commands/analyze_continuously.dart index c326608..dda2ab8 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_continuously.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_continuously.dart
@@ -33,7 +33,7 @@ Status analysisStatus; @override - Future<Null> analyze() async { + Future<void> analyze() async { List<String> directories; if (argResults['flutter-repo']) {
diff --git a/packages/flutter_tools/lib/src/commands/analyze_once.dart b/packages/flutter_tools/lib/src/commands/analyze_once.dart index 3d181ad..d7a13d0 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_once.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_once.dart
@@ -33,7 +33,7 @@ final Directory workingDirectory; @override - Future<Null> analyze() async { + Future<void> analyze() async { final String currentDirectory = (workingDirectory ?? fs.currentDirectory).path; @@ -68,7 +68,7 @@ throwToolExit('Nothing to analyze.', exitCode: 0); // analyze all - final Completer<Null> analysisCompleter = Completer<Null>(); + final Completer<void> analysisCompleter = Completer<void>(); final List<AnalysisError> errors = <AnalysisError>[]; final String sdkPath = argResults['dart-sdk'] ?? sdk.dartSdkPath;
diff --git a/packages/flutter_tools/lib/src/commands/attach.dart b/packages/flutter_tools/lib/src/commands/attach.dart index bcd8b24..35e44ac 100644 --- a/packages/flutter_tools/lib/src/commands/attach.dart +++ b/packages/flutter_tools/lib/src/commands/attach.dart
@@ -76,7 +76,7 @@ } @override - Future<Null> validateCommand() async { + Future<void> validateCommand() async { await super.validateCommand(); if (await findTargetDevice() == null) throwToolExit(null); @@ -84,7 +84,7 @@ } @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { Cache.releaseLockEarly(); await _validateArguments(); @@ -152,6 +152,7 @@ final List<ForwardedPort> ports = device.portForwarder.forwardedPorts.toList(); ports.forEach(device.portForwarder.unforward); } + return null; } Future<void> _validateArguments() async {}
diff --git a/packages/flutter_tools/lib/src/commands/build.dart b/packages/flutter_tools/lib/src/commands/build.dart index eb5ab8e..cda6c43 100644 --- a/packages/flutter_tools/lib/src/commands/build.dart +++ b/packages/flutter_tools/lib/src/commands/build.dart
@@ -32,7 +32,7 @@ final String description = 'Flutter build commands.'; @override - Future<Null> runCommand() async { } + Future<FlutterCommandResult> runCommand() async => null; } abstract class BuildSubCommand extends FlutterCommand { @@ -42,7 +42,7 @@ @override @mustCallSuper - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (isRunningOnBot) { final File dotPackages = fs.file('.packages'); printStatus('Contents of .packages:'); @@ -58,5 +58,6 @@ else printError('File not found: ${pubspecLock.absolute.path}'); } + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/build_aot.dart b/packages/flutter_tools/lib/src/commands/build_aot.dart index dc5a79f..fadfa6d 100644 --- a/packages/flutter_tools/lib/src/commands/build_aot.dart +++ b/packages/flutter_tools/lib/src/commands/build_aot.dart
@@ -56,7 +56,7 @@ final String description = "Build an ahead-of-time compiled snapshot of your app's Dart code."; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { await super.runCommand(); final String targetPlatform = argResults['target-platform']; @@ -89,7 +89,7 @@ ); if (mainPath == null) { throwToolExit('Compiler terminated unexpectedly.'); - return; + return null; } // Build AOT snapshot. @@ -152,7 +152,7 @@ // Catch the String exceptions thrown from the `runCheckedSync` methods below. status?.cancel(); printError(error); - return; + return null; } status?.stop(); @@ -165,5 +165,6 @@ } else { printStatus(builtMessage); } + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/build_apk.dart b/packages/flutter_tools/lib/src/commands/build_apk.dart index c5794b7..cc2b4b6 100644 --- a/packages/flutter_tools/lib/src/commands/build_apk.dart +++ b/packages/flutter_tools/lib/src/commands/build_apk.dart
@@ -6,6 +6,7 @@ import '../android/apk.dart'; import '../project.dart'; +import '../runner/flutter_command.dart' show FlutterCommandResult; import 'build.dart'; class BuildApkCommand extends BuildSubCommand { @@ -38,12 +39,13 @@ 'suitable for deploying to app stores.'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { await super.runCommand(); await buildApk( project: await FlutterProject.current(), target: targetFile, buildInfo: getBuildInfo(), ); + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/build_bundle.dart b/packages/flutter_tools/lib/src/commands/build_bundle.dart index c46d6b5..ef82cf9 100644 --- a/packages/flutter_tools/lib/src/commands/build_bundle.dart +++ b/packages/flutter_tools/lib/src/commands/build_bundle.dart
@@ -7,7 +7,7 @@ import '../base/common.dart'; import '../build_info.dart'; import '../bundle.dart'; -import '../runner/flutter_command.dart' show FlutterOptions; +import '../runner/flutter_command.dart' show FlutterOptions, FlutterCommandResult; import 'build.dart'; class BuildBundleCommand extends BuildSubCommand { @@ -78,7 +78,7 @@ ' iOS runtimes.'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { await super.runCommand(); final String targetPlatform = argResults['target-platform']; @@ -108,5 +108,6 @@ fileSystemScheme: argResults['filesystem-scheme'], fileSystemRoots: argResults['filesystem-root'], ); + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/build_flx.dart b/packages/flutter_tools/lib/src/commands/build_flx.dart index c6b1bee..33e6946 100644 --- a/packages/flutter_tools/lib/src/commands/build_flx.dart +++ b/packages/flutter_tools/lib/src/commands/build_flx.dart
@@ -5,6 +5,7 @@ import 'dart:async'; import '../globals.dart'; +import '../runner/flutter_command.dart' show FlutterCommandResult; import 'build.dart'; class BuildFlxCommand extends BuildSubCommand { @@ -18,11 +19,13 @@ final String usageFooter = 'FLX archives are deprecated.'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { await super.runCommand(); printError("'build flx' is no longer supported. Instead, use 'build " "bundle' to build and assemble the application code and resources " 'for your app.'); + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/build_ios.dart b/packages/flutter_tools/lib/src/commands/build_ios.dart index b586dfd..e34c5eb 100644 --- a/packages/flutter_tools/lib/src/commands/build_ios.dart +++ b/packages/flutter_tools/lib/src/commands/build_ios.dart
@@ -10,6 +10,7 @@ import '../build_info.dart'; import '../globals.dart'; import '../ios/mac.dart'; +import '../runner/flutter_command.dart' show FlutterCommandResult; import 'build.dart'; class BuildIOSCommand extends BuildSubCommand { @@ -48,7 +49,7 @@ final String description = 'Build an iOS application bundle (Mac OS X host only).'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { final bool forSimulator = argResults['simulator']; defaultBuildMode = forSimulator ? BuildMode.debug : BuildMode.release; @@ -90,5 +91,7 @@ if (result.output != null) printStatus('Built ${result.output}.'); + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/channel.dart b/packages/flutter_tools/lib/src/commands/channel.dart index 499fee1..0c21979 100644 --- a/packages/flutter_tools/lib/src/commands/channel.dart +++ b/packages/flutter_tools/lib/src/commands/channel.dart
@@ -32,18 +32,20 @@ String get invocation => '${runner.executableName} $name [<channel-name>]'; @override - Future<Null> runCommand() { + Future<FlutterCommandResult> runCommand() async { switch (argResults.rest.length) { case 0: - return _listChannels(showAll: argResults['all']); + await _listChannels(showAll: argResults['all']); + return null; case 1: - return _switchChannel(argResults.rest[0]); + await _switchChannel(argResults.rest[0]); + return null; default: throw ToolExit('Too many arguments.\n$usage'); } } - Future<Null> _listChannels({ bool showAll }) async { + Future<void> _listChannels({ bool showAll }) async { // Beware: currentBranch could contain PII. See getBranchName(). final String currentChannel = FlutterVersion.instance.channel; final String currentBranch = FlutterVersion.instance.getBranchName(); @@ -76,7 +78,7 @@ throwToolExit('List channels failed: $result', exitCode: result); } - Future<Null> _switchChannel(String branchName) { + Future<void> _switchChannel(String branchName) { printStatus("Switching to flutter channel '$branchName'..."); if (FlutterVersion.obsoleteBranches.containsKey(branchName)) { final String alternative = FlutterVersion.obsoleteBranches[branchName]; @@ -87,7 +89,7 @@ return _checkout(branchName); } - static Future<Null> upgradeChannel() async { + static Future<void> upgradeChannel() async { final String channel = FlutterVersion.instance.channel; if (FlutterVersion.obsoleteBranches.containsKey(channel)) { final String alternative = FlutterVersion.obsoleteBranches[channel]; @@ -96,7 +98,7 @@ } } - static Future<Null> _checkout(String branchName) async { + static Future<void> _checkout(String branchName) async { // Get latest refs from upstream. int result = await runCommandAndStreamOutput( <String>['git', 'fetch'],
diff --git a/packages/flutter_tools/lib/src/commands/clean.dart b/packages/flutter_tools/lib/src/commands/clean.dart index f2e65a3..740f108 100644 --- a/packages/flutter_tools/lib/src/commands/clean.dart +++ b/packages/flutter_tools/lib/src/commands/clean.dart
@@ -22,17 +22,19 @@ final String description = 'Delete the build/ directory.'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { final Directory buildDir = fs.directory(getBuildDirectory()); printStatus("Deleting '${buildDir.path}${fs.path.separator}'."); if (!buildDir.existsSync()) - return; + return null; try { buildDir.deleteSync(recursive: true); } catch (error) { throwToolExit(error.toString()); } + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/config.dart b/packages/flutter_tools/lib/src/commands/config.dart index 2d60e8a..8109f8d 100644 --- a/packages/flutter_tools/lib/src/commands/config.dart +++ b/packages/flutter_tools/lib/src/commands/config.dart
@@ -62,9 +62,11 @@ Future<String> get usagePath => null; @override - Future<Null> runCommand() async { - if (argResults['machine']) - return handleMachine(); + Future<FlutterCommandResult> runCommand() async { + if (argResults['machine']) { + await handleMachine(); + return null; + } if (argResults.wasParsed('analytics')) { final bool value = argResults['analytics']; @@ -86,9 +88,11 @@ if (argResults.arguments.isEmpty) printStatus(usage); + + return null; } - Future<Null> handleMachine() async { + Future<void> handleMachine() async { // Get all the current values. final Map<String, dynamic> results = <String, dynamic>{}; for (String key in config.keys) {
diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index 80cf399..27818f7 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart
@@ -171,7 +171,7 @@ } @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (argResults.rest.isEmpty) throwToolExit('No option specified for the output directory.\n$usage', exitCode: 2); @@ -334,6 +334,8 @@ printStatus('Your application code is in $relativeAppMain'); } } + + return null; } Future<int> _generateApplication(Directory directory, Map<String, dynamic> templateContext) async {
diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart index de16efb..fe94ffd 100644 --- a/packages/flutter_tools/lib/src/commands/daemon.dart +++ b/packages/flutter_tools/lib/src/commands/daemon.dart
@@ -50,14 +50,14 @@ final bool hidden; @override - Future<Null> runCommand() { + Future<FlutterCommandResult> runCommand() async { printStatus('Starting device daemon...'); final NotifyingLogger notifyingLogger = NotifyingLogger(); Cache.releaseLockEarly(); - return context.run<Null>( + await context.run<void>( body: () async { final Daemon daemon = Daemon( stdinCommandStream, stdoutCommandResponse, @@ -71,6 +71,7 @@ Logger: () => notifyingLogger, }, ); + return null; } } @@ -295,9 +296,9 @@ return Future<String>.value(protocolVersion); } - Future<Null> shutdown(Map<String, dynamic> args) { + Future<void> shutdown(Map<String, dynamic> args) { Timer.run(daemon.shutdown); - return Future<Null>.value(); + return Future<void>.value(); } @override @@ -413,7 +414,7 @@ connectionInfoCompleter = Completer<DebugConnectionInfo>(); // We don't want to wait for this future to complete and callbacks won't fail. // As it just writes to stdout. - connectionInfoCompleter.future.then<Null>((DebugConnectionInfo info) { // ignore: unawaited_futures + connectionInfoCompleter.future.then<void>((DebugConnectionInfo info) { // ignore: unawaited_futures final Map<String, dynamic> params = <String, dynamic>{ 'port': info.httpUri.port, 'wsUri': info.wsUri.toString(), @@ -435,7 +436,7 @@ _sendAppEvent(app, 'started'); }); - await app._runInZone<Null>(this, () async { + await app._runInZone<void>(this, () async { try { await runOrAttach( connectionInfoCompleter: connectionInfoCompleter, @@ -599,11 +600,11 @@ discoverer.onRemoved.listen(_onDeviceEvent('device.removed')); } - Future<Null> _serializeDeviceEvents = Future<Null>.value(); + Future<void> _serializeDeviceEvents = Future<void>.value(); _DeviceEventHandler _onDeviceEvent(String eventName) { return (Device device) { - _serializeDeviceEvents = _serializeDeviceEvents.then<Null>((_) async { + _serializeDeviceEvents = _serializeDeviceEvents.then<void>((_) async { sendEvent(eventName, await _deviceToMap(device)); }); }; @@ -620,17 +621,17 @@ } /// Enable device events. - Future<Null> enable(Map<String, dynamic> args) { + Future<void> enable(Map<String, dynamic> args) { for (PollingDeviceDiscovery discoverer in _discoverers) discoverer.startPolling(); - return Future<Null>.value(); + return Future<void>.value(); } /// Disable device events. - Future<Null> disable(Map<String, dynamic> args) { + Future<void> disable(Map<String, dynamic> args) { for (PollingDeviceDiscovery discoverer in _discoverers) discoverer.stopPolling(); - return Future<Null>.value(); + return Future<void>.value(); } /// Forward a host port to a device port. @@ -649,7 +650,7 @@ } /// Removes a forwarded port. - Future<Null> unforward(Map<String, dynamic> args) async { + Future<void> unforward(Map<String, dynamic> args) async { final String deviceId = _getStringArg(args, 'deviceId', required: true); final int devicePort = _getIntArg(args, 'devicePort', required: true); final int hostPort = _getIntArg(args, 'hostPort', required: true); @@ -798,8 +799,8 @@ return runner.restart(fullRestart: fullRestart, pauseAfterRestart: pauseAfterRestart); } - Future<Null> stop() => runner.stop(); - Future<Null> detach() => runner.detach(); + Future<void> stop() => runner.stop(); + Future<void> detach() => runner.detach(); void closeLogger() { _logger.close(); @@ -832,7 +833,7 @@ return list.map<Map<String, dynamic>>(_emulatorToMap).toList(); } - Future<Null> launch(Map<String, dynamic> args) async { + Future<void> launch(Map<String, dynamic> args) async { final String emulatorId = _getStringArg(args, 'emulatorId', required: true); final List<Emulator> matches = await emulators.getEmulatorsMatching(emulatorId);
diff --git a/packages/flutter_tools/lib/src/commands/devices.dart b/packages/flutter_tools/lib/src/commands/devices.dart index 75241b4..0613a98 100644 --- a/packages/flutter_tools/lib/src/commands/devices.dart +++ b/packages/flutter_tools/lib/src/commands/devices.dart
@@ -19,7 +19,7 @@ final String description = 'List all connected devices.'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (!doctor.canListAnything) { throwToolExit( "Unable to locate a development device; please run 'flutter doctor' for " @@ -46,5 +46,7 @@ printStatus('${devices.length} connected ${pluralize('device', devices.length)}:\n'); await Device.printDevices(devices); } + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/drive.dart b/packages/flutter_tools/lib/src/commands/drive.dart index dcccb09..88daf78 100644 --- a/packages/flutter_tools/lib/src/commands/drive.dart +++ b/packages/flutter_tools/lib/src/commands/drive.dart
@@ -14,6 +14,7 @@ import '../device.dart'; import '../globals.dart'; import '../resident_runner.dart'; +import '../runner/flutter_command.dart' show FlutterCommandResult; import 'run.dart'; /// Runs integration (a.k.a. end-to-end) tests. @@ -82,7 +83,7 @@ StreamSubscription<String> _deviceLogSubscription; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { final String testFile = _getTestFile(); if (testFile == null) throwToolExit(null); @@ -133,6 +134,8 @@ await appStopper(this); } } + + return null; } String _getTestFile() { @@ -272,13 +275,13 @@ } /// Runs driver tests. -typedef TestRunner = Future<Null> Function(List<String> testArgs, String observatoryUri); +typedef TestRunner = Future<void> Function(List<String> testArgs, String observatoryUri); TestRunner testRunner = _runTests; void restoreTestRunner() { testRunner = _runTests; } -Future<Null> _runTests(List<String> testArgs, String observatoryUri) async { +Future<void> _runTests(List<String> testArgs, String observatoryUri) async { printTrace('Running driver tests.'); PackageMap.globalPackagesPath = fs.path.normalize(fs.path.absolute(PackageMap.globalPackagesPath));
diff --git a/packages/flutter_tools/lib/src/commands/emulators.dart b/packages/flutter_tools/lib/src/commands/emulators.dart index e1ab0dd..4821519 100644 --- a/packages/flutter_tools/lib/src/commands/emulators.dart +++ b/packages/flutter_tools/lib/src/commands/emulators.dart
@@ -33,7 +33,7 @@ final List<String> aliases = <String>['emulator']; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (doctor.workflows.every((Workflow w) => !w.canListEmulators)) { throwToolExit( 'Unable to find any emulator sources. Please ensure you have some\n' @@ -54,6 +54,8 @@ : null; await _listEmulators(searchText); } + + return null; } Future<void> _launchEmulator(String id) async { @@ -81,7 +83,7 @@ } } - Future<Null> _createEmulator({String name}) async { + Future<void> _createEmulator({String name}) async { final CreateEmulatorResult createResult = await emulatorManager.createEmulator(name: name);
diff --git a/packages/flutter_tools/lib/src/commands/format.dart b/packages/flutter_tools/lib/src/commands/format.dart index 546f267..9d5d56e1 100644 --- a/packages/flutter_tools/lib/src/commands/format.dart +++ b/packages/flutter_tools/lib/src/commands/format.dart
@@ -43,7 +43,7 @@ String get invocation => '${runner.executableName} $name <one or more paths>'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (argResults.rest.isEmpty) { throwToolExit( 'No files specified to be formatted.\n' @@ -77,5 +77,7 @@ final int result = await runCommandAndStreamOutput(command); if (result != 0) throwToolExit('Formatting failed: $result', exitCode: result); + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart b/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart index 9bb14cf..827cae0 100644 --- a/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart +++ b/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart
@@ -102,7 +102,7 @@ bool _list; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { Cache.releaseLockEarly(); await _validateArguments(); @@ -130,7 +130,7 @@ // continue to work. printStatus('Press Enter to exit.'); await stdin.first; - return; + return null; } // Check that there are running VM services on the returned @@ -168,8 +168,10 @@ printStatus('Connecting to $_modName'); await hotRunner.attach(viewFilter: isolateName); } finally { - await Future.wait<Null>(forwardedPorts.map<Future<Null>>((_PortForwarder pf) => pf.stop())); + await Future.wait<void>(forwardedPorts.map<Future<void>>((_PortForwarder pf) => pf.stop())); } + + return null; } // A cache of VMService connections. @@ -286,7 +288,7 @@ '${extraTabs}External: $external\n'; } - Future<Null> _listVMs(List<int> ports) async { + Future<void> _listVMs(List<int> ports) async { for (int port in ports) { final VMService vmService = await _getVMService(port); await vmService.getVM(); @@ -295,7 +297,7 @@ } } - Future<Null> _validateArguments() async { + Future<void> _validateArguments() async { final String fuchsiaBuildDir = argResults['build-dir']; final String gnTarget = argResults['gn-target']; @@ -485,7 +487,7 @@ return _PortForwarder._(address, remotePort, localPort, process, sshConfig); } - Future<Null> stop() async { + Future<void> stop() async { // Kill the original ssh process if it is still around. if (_process != null) { printTrace('_PortForwarder killing ${_process.pid} for port $_localPort');
diff --git a/packages/flutter_tools/lib/src/commands/ide_config.dart b/packages/flutter_tools/lib/src/commands/ide_config.dart index 415555c..f153b3b 100644 --- a/packages/flutter_tools/lib/src/commands/ide_config.dart +++ b/packages/flutter_tools/lib/src/commands/ide_config.dart
@@ -218,7 +218,7 @@ } @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (argResults.rest.isNotEmpty) { throwToolExit('Currently, the only supported IDE is IntelliJ\n$usage', exitCode: 2); } @@ -227,7 +227,7 @@ if (argResults['update-templates']) { _handleTemplateUpdate(); - return; + return null; } final String flutterRoot = fs.path.absolute(Cache.flutterRoot); @@ -250,6 +250,8 @@ printStatus(''); printStatus('Your IntelliJ configuration is now up to date. It is prudent to ' 'restart IntelliJ, if running.'); + + return null; } int _renderTemplate(String templateName, String dirPath, Map<String, dynamic> context) {
diff --git a/packages/flutter_tools/lib/src/commands/inject_plugins.dart b/packages/flutter_tools/lib/src/commands/inject_plugins.dart index 8c2ba4d..4acc452 100644 --- a/packages/flutter_tools/lib/src/commands/inject_plugins.dart +++ b/packages/flutter_tools/lib/src/commands/inject_plugins.dart
@@ -24,7 +24,7 @@ final bool hidden; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { final FlutterProject project = await FlutterProject.current(); refreshPluginsList(project); await injectPlugins(project); @@ -34,5 +34,7 @@ } else { printStatus('This project does not use plugins, no GeneratedPluginRegistrants have been created.'); } + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/install.dart b/packages/flutter_tools/lib/src/commands/install.dart index c2fcc58..ab43906 100644 --- a/packages/flutter_tools/lib/src/commands/install.dart +++ b/packages/flutter_tools/lib/src/commands/install.dart
@@ -25,7 +25,7 @@ Device device; @override - Future<Null> validateCommand() async { + Future<void> validateCommand() async { await super.validateCommand(); device = await findTargetDevice(); if (device == null) @@ -33,7 +33,7 @@ } @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { final ApplicationPackage package = await applicationPackages.getPackageForPlatform(await device.targetPlatform); Cache.releaseLockEarly(); @@ -42,6 +42,8 @@ if (!await installApp(device, package)) throwToolExit('Install failed'); + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/logs.dart b/packages/flutter_tools/lib/src/commands/logs.dart index 56212ad..de8283f 100644 --- a/packages/flutter_tools/lib/src/commands/logs.dart +++ b/packages/flutter_tools/lib/src/commands/logs.dart
@@ -37,7 +37,7 @@ } @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (argResults['clear']) device.clearLogs(); @@ -76,5 +76,7 @@ await subscription.cancel(); if (result != 0) throwToolExit('Error listening to $logReader logs.'); + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart b/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart index efd5aa9..9e51d68 100644 --- a/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart +++ b/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart
@@ -24,7 +24,7 @@ bool get hidden => true; @override - Future<Null> runCommand() async { } + Future<FlutterCommandResult> runCommand() async => null; } abstract class MakeHostAppEditableSubCommand extends FlutterCommand { @@ -36,12 +36,13 @@ @override @mustCallSuper - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { await _project.ensureReadyForPlatformSpecificTooling(); + return null; } @override - Future<Null> validateCommand() async { + Future<void> validateCommand() async { await super.validateCommand(); _project = await FlutterProject.current(); if (!_project.isApplication) @@ -57,9 +58,11 @@ String get description => 'Make an Android host app editable within a Flutter project'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { await super.runCommand(); await _project.android.makeHostAppEditable(); + + return null; } } @@ -71,8 +74,10 @@ String get description => 'Make an iOS host app editable within a Flutter project'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { await super.runCommand(); await _project.ios.makeHostAppEditable(); + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/packages.dart b/packages/flutter_tools/lib/src/commands/packages.dart index e010a35..b7b748a 100644 --- a/packages/flutter_tools/lib/src/commands/packages.dart +++ b/packages/flutter_tools/lib/src/commands/packages.dart
@@ -28,7 +28,7 @@ final String description = 'Commands for managing Flutter packages.'; @override - Future<Null> runCommand() async { } + Future<FlutterCommandResult> runCommand() async => null; } class PackagesGetCommand extends FlutterCommand { @@ -65,7 +65,7 @@ } @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (argResults.rest.length > 1) throwToolExit('Too many arguments.\n$usage'); @@ -89,6 +89,8 @@ await _runPubGet(exampleProject.directory.path); await exampleProject.ensureReadyForPlatformSpecificTooling(); } + + return null; } } @@ -116,7 +118,10 @@ } @override - Future<Null> runCommand() => pub(<String>['run', 'test']..addAll(argResults.rest), context: PubContext.runTest, retry: false); + Future<FlutterCommandResult> runCommand() async { + await pub(<String>['run', 'test']..addAll(argResults.rest), context: PubContext.runTest, retry: false); + return null; + } } class PackagesPassthroughCommand extends FlutterCommand { @@ -139,5 +144,8 @@ } @override - Future<Null> runCommand() => pubInteractively(argResults.rest); + Future<FlutterCommandResult> runCommand() async { + await pubInteractively(argResults.rest); + return null; + } }
diff --git a/packages/flutter_tools/lib/src/commands/precache.dart b/packages/flutter_tools/lib/src/commands/precache.dart index f2a15ab..b1fc4dc 100644 --- a/packages/flutter_tools/lib/src/commands/precache.dart +++ b/packages/flutter_tools/lib/src/commands/precache.dart
@@ -23,7 +23,7 @@ bool get shouldUpdateCache => false; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (argResults['all-platforms']) cache.includeAllPlatforms = true; @@ -31,5 +31,7 @@ printStatus('Already up-to-date.'); else await cache.updateAll(); + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 40c3548..160cf29 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart
@@ -237,7 +237,7 @@ bool get stayResident => argResults['resident']; @override - Future<Null> validateCommand() async { + Future<void> validateCommand() async { // When running with a prebuilt application, no command validation is // necessary. if (!runningWithPrebuiltApplication)
diff --git a/packages/flutter_tools/lib/src/commands/screenshot.dart b/packages/flutter_tools/lib/src/commands/screenshot.dart index be39b24..e6ae9ba 100644 --- a/packages/flutter_tools/lib/src/commands/screenshot.dart +++ b/packages/flutter_tools/lib/src/commands/screenshot.dart
@@ -76,22 +76,27 @@ } @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { File outputFile; if (argResults.wasParsed(_kOut)) outputFile = fs.file(argResults[_kOut]); switch (argResults[_kType]) { case _kDeviceType: - return runScreenshot(outputFile); + await runScreenshot(outputFile); + return null; case _kSkiaType: - return runSkia(outputFile); + await runSkia(outputFile); + return null; case _kRasterizerType: - return runRasterizer(outputFile); + await runRasterizer(outputFile); + return null; } + + return null; } - Future<Null> runScreenshot(File outputFile) async { + Future<void> runScreenshot(File outputFile) async { outputFile ??= getUniqueFile(fs.currentDirectory, 'flutter', 'png'); try { await device.takeScreenshot(outputFile); @@ -101,7 +106,7 @@ await showOutputFileInfo(outputFile); } - Future<Null> runSkia(File outputFile) async { + Future<void> runSkia(File outputFile) async { final Map<String, dynamic> skp = await _invokeVmServiceRpc('_flutter.screenshotSkp'); outputFile ??= getUniqueFile(fs.currentDirectory, 'flutter', 'skp'); final IOSink sink = outputFile.openWrite(); @@ -138,7 +143,7 @@ } } - Future<Null> showOutputFileInfo(File outputFile) async { + Future<void> showOutputFileInfo(File outputFile) async { final int sizeKB = (await outputFile.length()) ~/ 1024; printStatus('Screenshot written to ${fs.path.relative(outputFile.path)} (${sizeKB}kB).'); }
diff --git a/packages/flutter_tools/lib/src/commands/shell_completion.dart b/packages/flutter_tools/lib/src/commands/shell_completion.dart index 1d2ef16..0ef8ca5 100644 --- a/packages/flutter_tools/lib/src/commands/shell_completion.dart +++ b/packages/flutter_tools/lib/src/commands/shell_completion.dart
@@ -42,14 +42,14 @@ Future<String> get usagePath => null; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { if (argResults.rest.length > 1) { throwToolExit('Too many arguments given to bash-completion command.', exitCode: 1); } if (argResults.rest.isEmpty || argResults.rest.first == '-') { stdout.write(generateCompletionScript(<String>['flutter'])); - return; + return null; } final File outputFile = fs.file(argResults.rest.first); @@ -65,5 +65,7 @@ } on FileSystemException catch (error) { throwToolExit('Unable to write shell completion setup script.\n$error', exitCode: 1); } + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/stop.dart b/packages/flutter_tools/lib/src/commands/stop.dart index 089c13d..9b61df5 100644 --- a/packages/flutter_tools/lib/src/commands/stop.dart +++ b/packages/flutter_tools/lib/src/commands/stop.dart
@@ -25,7 +25,7 @@ Device device; @override - Future<Null> validateCommand() async { + Future<void> validateCommand() async { await super.validateCommand(); device = await findTargetDevice(); if (device == null) @@ -33,7 +33,7 @@ } @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { final TargetPlatform targetPlatform = await device.targetPlatform; final ApplicationPackage app = await applicationPackages.getPackageForPlatform(targetPlatform); if (app == null) { @@ -43,5 +43,7 @@ printStatus('Stopping apps on ${device.name}.'); if (!await device.stopApp(app)) throwToolExit(null); + + return null; } }
diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart index 4fc19e9..978b589 100644 --- a/packages/flutter_tools/lib/src/commands/test.dart +++ b/packages/flutter_tools/lib/src/commands/test.dart
@@ -89,7 +89,7 @@ String get description => 'Run Flutter unit tests for the current project.'; @override - Future<Null> validateCommand() async { + Future<void> validateCommand() async { await super.validateCommand(); if (!fs.isFileSync('pubspec.yaml')) { throwToolExit(
diff --git a/packages/flutter_tools/lib/src/commands/trace.dart b/packages/flutter_tools/lib/src/commands/trace.dart index 0b5d44e..a714199 100644 --- a/packages/flutter_tools/lib/src/commands/trace.dart +++ b/packages/flutter_tools/lib/src/commands/trace.dart
@@ -44,7 +44,7 @@ 'The --debug-port argument is required.'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { int observatoryPort; if (argResults.wasParsed('debug-port')) { observatoryPort = int.tryParse(argResults['debug-port']); @@ -88,12 +88,14 @@ if (start) await tracing.startTracing(); - await Future<Null>.delayed(duration); + await Future<void>.delayed(duration); if (stop) await _stopTracing(tracing); + + return null; } - Future<Null> _stopTracing(Tracing tracing) async { + Future<void> _stopTracing(Tracing tracing) async { final Map<String, dynamic> timeline = await tracing.stopTracingAndDownloadTimeline(); File localFile;
diff --git a/packages/flutter_tools/lib/src/commands/update_packages.dart b/packages/flutter_tools/lib/src/commands/update_packages.dart index c6e988a..6c5f69d 100644 --- a/packages/flutter_tools/lib/src/commands/update_packages.dart +++ b/packages/flutter_tools/lib/src/commands/update_packages.dart
@@ -82,7 +82,7 @@ @override final bool hidden; - Future<Null> _downloadCoverageData() async { + Future<void> _downloadCoverageData() async { final Status status = logger.startProgress( 'Downloading lcov data for package:flutter...', expectSlowOperation: true, @@ -100,7 +100,7 @@ } @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { final List<Directory> packages = runner.getRepoPackages(); final bool upgrade = argResults['force-upgrade']; @@ -163,7 +163,7 @@ ); } printStatus('All pubspecs were up to date.'); - return; + return null; } if (upgrade || isPrintPaths || isPrintTransitiveClosure) { @@ -265,12 +265,12 @@ tree._dependencyTree.forEach((String from, Set<String> to) { printStatus('$from -> $to'); }); - return; + return null; } if (isPrintPaths) { showDependencyPaths(from: argResults['from'], to: argResults['to'], tree: tree); - return; + return null; } // Now that we have collected all the data, we can apply our dependency @@ -302,6 +302,8 @@ final double seconds = timer.elapsedMilliseconds / 1000.0; printStatus('\nRan \'pub\' $count time${count == 1 ? "" : "s"} and fetched coverage data in ${seconds.toStringAsFixed(1)}s.'); + + return null; } void showDependencyPaths({
diff --git a/packages/flutter_tools/lib/src/commands/upgrade.dart b/packages/flutter_tools/lib/src/commands/upgrade.dart index eefa606..f7240e0 100644 --- a/packages/flutter_tools/lib/src/commands/upgrade.dart +++ b/packages/flutter_tools/lib/src/commands/upgrade.dart
@@ -28,7 +28,7 @@ bool get shouldUpdateCache => false; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { try { await runCheckedAsync(<String>[ 'git', 'rev-parse', '@{u}' @@ -85,6 +85,8 @@ workingDirectory: Cache.flutterRoot, allowReentrantFlutter: true, ); + + return null; } // dev/benchmarks/complex_layout/lib/main.dart | 24 +-
diff --git a/packages/flutter_tools/lib/src/crash_reporting.dart b/packages/flutter_tools/lib/src/crash_reporting.dart index b353780..39a8cb3 100644 --- a/packages/flutter_tools/lib/src/crash_reporting.dart +++ b/packages/flutter_tools/lib/src/crash_reporting.dart
@@ -80,7 +80,7 @@ /// Sends one crash report. /// /// The report is populated from data in [error] and [stackTrace]. - Future<Null> sendReport({ + Future<void> sendReport({ @required dynamic error, @required StackTrace stackTrace, @required String getFlutterVersion(),
diff --git a/packages/flutter_tools/lib/src/dart/analysis.dart b/packages/flutter_tools/lib/src/dart/analysis.dart index 481e4cb..189c174 100644 --- a/packages/flutter_tools/lib/src/dart/analysis.dart +++ b/packages/flutter_tools/lib/src/dart/analysis.dart
@@ -27,7 +27,7 @@ int _id = 0; - Future<Null> start() async { + Future<void> start() async { final String snapshot = fs.path.join(sdkPath, 'bin/snapshots/analysis_server.dart.snapshot'); final List<String> command = <String>[
diff --git a/packages/flutter_tools/lib/src/dart/pub.dart b/packages/flutter_tools/lib/src/dart/pub.dart index b318302..062bc12 100644 --- a/packages/flutter_tools/lib/src/dart/pub.dart +++ b/packages/flutter_tools/lib/src/dart/pub.dart
@@ -69,7 +69,7 @@ /// [context] provides extra information to package server requests to /// understand usage. -Future<Null> pubGet({ +Future<void> pubGet({ @required PubContext context, String directory, bool skipIfAbsent = false, @@ -135,7 +135,7 @@ /// /// [context] provides extra information to package server requests to /// understand usage. -Future<Null> pub(List<String> arguments, { +Future<void> pub(List<String> arguments, { @required PubContext context, String directory, MessageFilter filter, @@ -161,7 +161,7 @@ if (code != 69) // UNAVAILABLE in https://github.com/dart-lang/pub/blob/master/lib/src/exit_codes.dart break; printStatus('$failureMessage ($code) -- attempting retry $attempts in $duration second${ duration == 1 ? "" : "s"}...'); - await Future<Null>.delayed(Duration(seconds: duration)); + await Future<void>.delayed(Duration(seconds: duration)); if (duration < 64) duration *= 2; } @@ -173,7 +173,7 @@ /// Runs pub in 'interactive' mode, directly piping the stdin stream of this /// process to that of pub, and the stdout/stderr stream of pub to the corresponding /// streams of this process. -Future<Null> pubInteractively(List<String> arguments, { +Future<void> pubInteractively(List<String> arguments, { String directory, }) async { Cache.releaseLockEarly();
diff --git a/packages/flutter_tools/lib/src/devfs.dart b/packages/flutter_tools/lib/src/devfs.dart index 54b7107..1236186 100644 --- a/packages/flutter_tools/lib/src/devfs.dart +++ b/packages/flutter_tools/lib/src/devfs.dart
@@ -264,13 +264,13 @@ int _inFlight = 0; Map<Uri, DevFSContent> _outstanding; - Completer<Null> _completer; + Completer<void> _completer; HttpClient _client; - Future<Null> write(Map<Uri, DevFSContent> entries) async { + Future<void> write(Map<Uri, DevFSContent> entries) async { _client = HttpClient(); _client.maxConnectionsPerHost = kMaxInFlight; - _completer = Completer<Null>(); + _completer = Completer<void>(); _outstanding = Map<Uri, DevFSContent>.from(entries); _scheduleWrites(); await _completer.future; @@ -290,7 +290,7 @@ } } - Future<Null> _scheduleWrite( + Future<void> _scheduleWrite( Uri deviceUri, DevFSContent content, [ int retry = 0, @@ -304,7 +304,7 @@ final Stream<List<int>> contents = content.contentsAsCompressedStream(); await request.addStream(contents); final HttpClientResponse response = await request.close(); - await response.drain<Null>(); + await response.drain<void>(); } on SocketException catch (socketException, stackTrace) { // We have one completer and can get up to kMaxInFlight errors. if (!_completer.isCompleted) @@ -322,7 +322,7 @@ } _inFlight--; if ((_outstanding.isEmpty) && (_inFlight == 0)) { - _completer.complete(null); + _completer.complete(); } else { _scheduleWrites(); } @@ -392,7 +392,7 @@ return _baseUri; } - Future<Null> destroy() async { + Future<void> destroy() async { printTrace('DevFS: Deleting filesystem on the device ($_baseUri)'); await _operations.destroy(fsName); printTrace('DevFS: Deleted filesystem on the device ($_baseUri)'); @@ -701,7 +701,7 @@ ); } - Future<Null> _scanPackages(Set<String> fileFilter) async { + Future<void> _scanPackages(Set<String> fileFilter) async { StringBuffer sb; final PackageMap packageMap = PackageMap(_packagesFilePath);
diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 29f5c27..7704cea 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart
@@ -275,7 +275,7 @@ bool get supportsScreenshot => false; - Future<void> takeScreenshot(File outputFile) => Future<Null>.error('unimplemented'); + Future<void> takeScreenshot(File outputFile) => Future<void>.error('unimplemented'); @override int get hashCode => id.hashCode; @@ -326,7 +326,7 @@ } } - static Future<Null> printDevices(List<Device> devices) async { + static Future<void> printDevices(List<Device> devices) async { await descriptions(devices).forEach(printStatus); } } @@ -405,7 +405,7 @@ Future<int> forward(int devicePort, {int hostPort}); /// Stops forwarding [forwardedPort]. - Future<Null> unforward(ForwardedPort forwardedPort); + Future<void> unforward(ForwardedPort forwardedPort); } /// Read the log for a particular device.
diff --git a/packages/flutter_tools/lib/src/disabled_usage.dart b/packages/flutter_tools/lib/src/disabled_usage.dart index a499070..8be5a96 100644 --- a/packages/flutter_tools/lib/src/disabled_usage.dart +++ b/packages/flutter_tools/lib/src/disabled_usage.dart
@@ -41,7 +41,7 @@ Stream<Map<String, dynamic>> get onSend => null; @override - Future<Null> ensureAnalyticsSent() => Future<Null>.value(); + Future<void> ensureAnalyticsSent() => Future<void>.value(); @override void printWelcome() { }
diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart index ca10b6e..f08c926 100644 --- a/packages/flutter_tools/lib/src/doctor.dart +++ b/packages/flutter_tools/lib/src/doctor.dart
@@ -112,7 +112,7 @@ } /// Print a summary of the state of the tooling, as well as how to get more info. - Future<Null> summary() async { + Future<void> summary() async { printStatus(await summaryText); }
diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart index 7609979..2ce84d6 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
@@ -68,7 +68,7 @@ bool applicationNeedsRebuild = false, bool usesTerminalUi = false, bool ipv6 = false, - }) => Future<Null>.error('unimplemented'); + }) => Future<void>.error('unimplemented'); @override Future<bool> stopApp(ApplicationPackage app) async {
diff --git a/packages/flutter_tools/lib/src/ios/cocoapods.dart b/packages/flutter_tools/lib/src/ios/cocoapods.dart index 184a24c..26a903d 100644 --- a/packages/flutter_tools/lib/src/ios/cocoapods.dart +++ b/packages/flutter_tools/lib/src/ios/cocoapods.dart
@@ -219,7 +219,7 @@ || podfileLockFile.readAsStringSync() != manifestLockFile.readAsStringSync(); } - Future<Null> _runPodInstall(IosProject iosProject, String engineDirectory) async { + Future<void> _runPodInstall(IosProject iosProject, String engineDirectory) async { final Status status = logger.startProgress('Running pod install...', expectSlowOperation: true); final ProcessResult result = await processManager.run( <String>['pod', 'install', '--verbose'],
diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index f567692..da6ee62 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart
@@ -376,7 +376,7 @@ bool get supportsScreenshot => iMobileDevice.isInstalled; @override - Future<Null> takeScreenshot(File outputFile) async { + Future<void> takeScreenshot(File outputFile) async { await iMobileDevice.takeScreenshot(outputFile); } } @@ -475,7 +475,7 @@ String get name => device.name; void _start() { - iMobileDevice.startLogger().then<Null>((Process process) { + iMobileDevice.startLogger().then<void>((Process process) { _process = process; _process.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_newLineHandler()); _process.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_newLineHandler()); @@ -576,7 +576,7 @@ } @override - Future<Null> unforward(ForwardedPort forwardedPort) async { + Future<void> unforward(ForwardedPort forwardedPort) async { if (!_forwardedPorts.remove(forwardedPort)) { // Not in list. Nothing to remove. return null;
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index ffaa515..ea367fb 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -530,7 +530,7 @@ return generatedXcconfigFile.readAsStringSync(); } -Future<Null> diagnoseXcodeBuildFailure(XcodeBuildResult result) async { +Future<void> diagnoseXcodeBuildFailure(XcodeBuildResult result) async { if (result.xcodeBuildExecution != null && result.xcodeBuildExecution.buildForPhysicalDevice && result.stdout?.contains('BCEROR') == true && @@ -625,7 +625,7 @@ return true; } -Future<Null> _addServicesToBundle(Directory bundle) async { +Future<void> _addServicesToBundle(Directory bundle) async { final List<Map<String, String>> services = <Map<String, String>>[]; printTrace('Trying to resolve native pub services.'); @@ -644,7 +644,7 @@ _copyServiceDefinitionsManifest(services, manifestFile); } -Future<Null> _copyServiceFrameworks(List<Map<String, String>> services, Directory frameworksDirectory) async { +Future<void> _copyServiceFrameworks(List<Map<String, String>> services, Directory frameworksDirectory) async { printTrace("Copying service frameworks to '${fs.path.absolute(frameworksDirectory.path)}'."); frameworksDirectory.createSync(recursive: true); for (Map<String, String> service in services) {
diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index ea830e3..587d6c6 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart
@@ -438,7 +438,7 @@ } } - Future<Null> ensureLogsExists() async { + Future<void> ensureLogsExists() async { if (await sdkMajorVersion < 11) { final File logFile = fs.file(logFilePath); if (!logFile.existsSync()) @@ -506,7 +506,7 @@ @override String get name => device.name; - Future<Null> _start() async { + Future<void> _start() async { // Device log. await device.ensureLogsExists(); _deviceProcess = await launchDeviceLogTool(device); @@ -695,7 +695,7 @@ } @override - Future<Null> unforward(ForwardedPort forwardedPort) async { + Future<void> unforward(ForwardedPort forwardedPort) async { _ports.remove(forwardedPort); } }
diff --git a/packages/flutter_tools/lib/src/protocol_discovery.dart b/packages/flutter_tools/lib/src/protocol_discovery.dart index ff6664a..cfd6b6f 100644 --- a/packages/flutter_tools/lib/src/protocol_discovery.dart +++ b/packages/flutter_tools/lib/src/protocol_discovery.dart
@@ -50,9 +50,9 @@ /// The discovered service URI. Future<Uri> get uri => _completer.future; - Future<Null> cancel() => _stopScrapingLogs(); + Future<void> cancel() => _stopScrapingLogs(); - Future<Null> _stopScrapingLogs() async { + Future<void> _stopScrapingLogs() async { await _deviceLogSubscription?.cancel(); _deviceLogSubscription = null; }
diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index 53cd22c..4a6c62b 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart
@@ -62,7 +62,7 @@ /// expressions requested during debugging of the application. /// This ensures that the reload process follows the normal orchestration of /// the Flutter Tools and not just the VM internal service. - Future<Null> _connect({ReloadSources reloadSources, CompileExpression compileExpression}) async { + Future<void> _connect({ReloadSources reloadSources, CompileExpression compileExpression}) async { if (vmServices != null) return; final List<VMService> localVmServices = List<VMService>(observatoryUris.length); @@ -76,7 +76,7 @@ vmServices = localVmServices; } - Future<Null> refreshViews() async { + Future<void> refreshViews() async { if (vmServices == null || vmServices.isEmpty) return; for (VMService service in vmServices) @@ -95,12 +95,12 @@ .toList(); } - Future<Null> getVMs() async { + Future<void> getVMs() async { for (VMService service in vmServices) await service.getVM(); } - Future<Null> stopApps() async { + Future<void> stopApps() async { final List<FlutterView> flutterViews = views; if (flutterViews == null || flutterViews.isEmpty) return; @@ -110,7 +110,7 @@ view.uiIsolate.flutterExit(); // ignore: unawaited_futures } } - await Future<Null>.delayed(const Duration(milliseconds: 100)); + await Future<void>.delayed(const Duration(milliseconds: 100)); } Future<Uri> setupDevFS(String fsName, @@ -145,11 +145,11 @@ return reports; } - Future<Null> resetAssetDirectory() async { + Future<void> resetAssetDirectory() async { final Uri deviceAssetsDirectoryUri = devFS.baseUri.resolveUri( fs.path.toUri(getAssetBuildDirectory())); assert(deviceAssetsDirectoryUri != null); - await Future.wait<Null>(views.map<Future<Null>>( + await Future.wait<void>(views.map<Future<void>>( (FlutterView view) => view.setAssetDirectory(deviceAssetsDirectoryUri) )); } @@ -172,42 +172,42 @@ return elements; } - Future<Null> debugDumpApp() async { + Future<void> debugDumpApp() async { for (FlutterView view in views) await view.uiIsolate.flutterDebugDumpApp(); } - Future<Null> debugDumpRenderTree() async { + Future<void> debugDumpRenderTree() async { for (FlutterView view in views) await view.uiIsolate.flutterDebugDumpRenderTree(); } - Future<Null> debugDumpLayerTree() async { + Future<void> debugDumpLayerTree() async { for (FlutterView view in views) await view.uiIsolate.flutterDebugDumpLayerTree(); } - Future<Null> debugDumpSemanticsTreeInTraversalOrder() async { + Future<void> debugDumpSemanticsTreeInTraversalOrder() async { for (FlutterView view in views) await view.uiIsolate.flutterDebugDumpSemanticsTreeInTraversalOrder(); } - Future<Null> debugDumpSemanticsTreeInInverseHitTestOrder() async { + Future<void> debugDumpSemanticsTreeInInverseHitTestOrder() async { for (FlutterView view in views) await view.uiIsolate.flutterDebugDumpSemanticsTreeInInverseHitTestOrder(); } - Future<Null> toggleDebugPaintSizeEnabled() async { + Future<void> toggleDebugPaintSizeEnabled() async { for (FlutterView view in views) await view.uiIsolate.flutterToggleDebugPaintSizeEnabled(); } - Future<Null> debugTogglePerformanceOverlayOverride() async { + Future<void> debugTogglePerformanceOverlayOverride() async { for (FlutterView view in views) await view.uiIsolate.flutterTogglePerformanceOverlayOverride(); } - Future<Null> toggleWidgetInspector() async { + Future<void> toggleWidgetInspector() async { for (FlutterView view in views) await view.uiIsolate.flutterToggleWidgetInspector(); } @@ -237,7 +237,7 @@ }); } - Future<Null> stopEchoingDeviceLog() async { + Future<void> stopEchoingDeviceLog() async { if (_loggingSubscription == null) return; await _loggingSubscription.cancel(); @@ -464,73 +464,73 @@ throw 'unsupported'; } - Future<Null> stop() async { + Future<void> stop() async { _stopped = true; await stopEchoingDeviceLog(); await preStop(); return stopApp(); } - Future<Null> detach() async { + Future<void> detach() async { await stopEchoingDeviceLog(); await preStop(); appFinished(); } - Future<Null> refreshViews() async { + Future<void> refreshViews() async { for (FlutterDevice device in flutterDevices) await device.refreshViews(); } - Future<Null> _debugDumpApp() async { + Future<void> _debugDumpApp() async { await refreshViews(); for (FlutterDevice device in flutterDevices) await device.debugDumpApp(); } - Future<Null> _debugDumpRenderTree() async { + Future<void> _debugDumpRenderTree() async { await refreshViews(); for (FlutterDevice device in flutterDevices) await device.debugDumpRenderTree(); } - Future<Null> _debugDumpLayerTree() async { + Future<void> _debugDumpLayerTree() async { await refreshViews(); for (FlutterDevice device in flutterDevices) await device.debugDumpLayerTree(); } - Future<Null> _debugDumpSemanticsTreeInTraversalOrder() async { + Future<void> _debugDumpSemanticsTreeInTraversalOrder() async { await refreshViews(); for (FlutterDevice device in flutterDevices) await device.debugDumpSemanticsTreeInTraversalOrder(); } - Future<Null> _debugDumpSemanticsTreeInInverseHitTestOrder() async { + Future<void> _debugDumpSemanticsTreeInInverseHitTestOrder() async { await refreshViews(); for (FlutterDevice device in flutterDevices) await device.debugDumpSemanticsTreeInInverseHitTestOrder(); } - Future<Null> _debugToggleDebugPaintSizeEnabled() async { + Future<void> _debugToggleDebugPaintSizeEnabled() async { await refreshViews(); for (FlutterDevice device in flutterDevices) await device.toggleDebugPaintSizeEnabled(); } - Future<Null> _debugTogglePerformanceOverlayOverride() async { + Future<void> _debugTogglePerformanceOverlayOverride() async { await refreshViews(); for (FlutterDevice device in flutterDevices) await device.debugTogglePerformanceOverlayOverride(); } - Future<Null> _debugToggleWidgetInspector() async { + Future<void> _debugToggleWidgetInspector() async { await refreshViews(); for (FlutterDevice device in flutterDevices) await device.toggleWidgetInspector(); } - Future<Null> _screenshot(FlutterDevice device) async { + Future<void> _screenshot(FlutterDevice device) async { final Status status = logger.startProgress('Taking screenshot for ${device.device.name}...'); final File outputFile = getUniqueFile(fs.currentDirectory, 'flutter', 'png'); try { @@ -568,7 +568,7 @@ } } - Future<Null> _debugTogglePlatform() async { + Future<void> _debugTogglePlatform() async { await refreshViews(); final String from = await flutterDevices[0].views[0].uiIsolate.flutterPlatformOverride(); String to; @@ -587,14 +587,14 @@ ProcessSignal.SIGUSR2.watch().listen(_handleSignal); } - Future<Null> _cleanUpAndExit(ProcessSignal signal) async { + Future<void> _cleanUpAndExit(ProcessSignal signal) async { _resetTerminal(); await cleanupAfterSignal(); exit(0); } bool _processingUserRequest = false; - Future<Null> _handleSignal(ProcessSignal signal) async { + Future<void> _handleSignal(ProcessSignal signal) async { if (_processingUserRequest) { printTrace('Ignoring signal: "$signal" because we are busy.'); return; @@ -610,18 +610,18 @@ } } - Future<Null> stopEchoingDeviceLog() async { - await Future.wait<Null>( - flutterDevices.map<Future<Null>>((FlutterDevice device) => device.stopEchoingDeviceLog()) + Future<void> stopEchoingDeviceLog() async { + await Future.wait<void>( + flutterDevices.map<Future<void>>((FlutterDevice device) => device.stopEchoingDeviceLog()) ); } /// If the [reloadSources] parameter is not null the 'reloadSources' service /// will be registered - Future<Null> connectToServiceProtocol({String viewFilter, + Future<void> connectToServiceProtocol({String viewFilter, ReloadSources reloadSources, CompileExpression compileExpression}) async { if (!debuggingOptions.debuggingEnabled) - return Future<Null>.error('Error the service protocol is not enabled.'); + return Future<void>.error('Error the service protocol is not enabled.'); bool viewFound = false; for (FlutterDevice device in flutterDevices) { @@ -644,7 +644,7 @@ // This hooks up callbacks for when the connection stops in the future. // We don't want to wait for them. We don't handle errors in those callbacks' // futures either because they just print to logger and is not critical. - service.done.then<Null>( // ignore: unawaited_futures + service.done.then<void>( // ignore: unawaited_futures _serviceProtocolDone, onError: _serviceProtocolError ).whenComplete(_serviceDisconnected); @@ -652,14 +652,14 @@ } } - Future<Null> _serviceProtocolDone(dynamic object) { + Future<void> _serviceProtocolDone(dynamic object) { printTrace('Service protocol connection closed.'); - return Future<Null>.value(object); + return Future<void>.value(object); } - Future<Null> _serviceProtocolError(dynamic error, StackTrace stack) { + Future<void> _serviceProtocolError(dynamic error, StackTrace stack) { printTrace('Service protocol connection closed with an error: $error\n$stack'); - return Future<Null>.error(error, stack); + return Future<void>.error(error, stack); } /// Returns [true] if the input has been handled by this function. @@ -734,7 +734,7 @@ return false; } - Future<Null> processTerminalInput(String command) async { + Future<void> processTerminalInput(String command) async { // When terminal doesn't support line mode, '\n' can sneak into the input. command = command.trim(); if (_processingUserRequest) { @@ -810,9 +810,9 @@ return dependencyChecker.check(lastBuildTime); } - Future<Null> preStop() async { } + Future<void> preStop() async { } - Future<Null> stopApp() async { + Future<void> stopApp() async { for (FlutterDevice device in flutterDevices) await device.stopApps(); appFinished(); @@ -841,11 +841,11 @@ } /// Called when a signal has requested we exit. - Future<Null> cleanupAfterSignal(); + Future<void> cleanupAfterSignal(); /// Called right before we exit. - Future<Null> cleanupAtFinish(); + Future<void> cleanupAtFinish(); /// Called when the runner should handle a terminal command. - Future<Null> handleTerminalCommand(String code); + Future<void> handleTerminalCommand(String code); } class OperationResult {
diff --git a/packages/flutter_tools/lib/src/run_cold.dart b/packages/flutter_tools/lib/src/run_cold.dart index 18a12c5..32e415e 100644 --- a/packages/flutter_tools/lib/src/run_cold.dart +++ b/packages/flutter_tools/lib/src/run_cold.dart
@@ -109,16 +109,16 @@ } @override - Future<Null> handleTerminalCommand(String code) async => null; + Future<void> handleTerminalCommand(String code) async => null; @override - Future<Null> cleanupAfterSignal() async { + Future<void> cleanupAfterSignal() async { await stopEchoingDeviceLog(); await stopApp(); } @override - Future<Null> cleanupAtFinish() async { + Future<void> cleanupAtFinish() async { await stopEchoingDeviceLog(); } @@ -152,7 +152,7 @@ } @override - Future<Null> preStop() async { + Future<void> preStop() async { for (FlutterDevice device in flutterDevices) { // If we're running in release mode, stop the app using the device logic. if (device.vmServices == null || device.vmServices.isEmpty)
diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index 1d6a0a8..35d5f92 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart
@@ -120,7 +120,7 @@ return true; } - Future<Null> _reloadSourcesService(String isolateId, + Future<void> _reloadSourcesService(String isolateId, { bool force = false, bool pause = false }) async { // TODO(cbernaschina): check that isolateId is the id of the UI isolate. final OperationResult result = await restart(pauseAfterRestart: pause); @@ -276,7 +276,7 @@ } @override - Future<Null> handleTerminalCommand(String code) async { + Future<void> handleTerminalCommand(String code) async { final String lower = code.toLowerCase(); if (lower == 'r') { final OperationResult result = await restart(fullRestart: code == 'R'); @@ -340,7 +340,7 @@ return true; } - Future<Null> _evictDirtyAssets() async { + Future<void> _evictDirtyAssets() async { for (FlutterDevice device in flutterDevices) { if (device.devFS.assetPathsToEvict.isEmpty) return; @@ -357,7 +357,7 @@ device.devFS.assetPathsToEvict.clear(); } - Future<Null> _cleanupDevFS() async { + Future<void> _cleanupDevFS() async { for (FlutterDevice device in flutterDevices) { if (device.devFS != null) { // Cleanup the devFS; don't wait indefinitely, and ignore any errors. @@ -371,7 +371,7 @@ } } - Future<Null> _launchInView(FlutterDevice device, + Future<void> _launchInView(FlutterDevice device, Uri entryUri, Uri packagesUri, Uri assetsDirectoryUri) async { @@ -379,7 +379,7 @@ await view.runFromSource(entryUri, packagesUri, assetsDirectoryUri); } - Future<Null> _launchFromDevFS(String mainScript) async { + Future<void> _launchFromDevFS(String mainScript) async { final String entryUri = fs.path.relative(mainScript, from: projectRootPath); for (FlutterDevice device in flutterDevices) { final Uri deviceEntryUri = device.devFS.baseUri.resolveUri( @@ -764,7 +764,7 @@ } @override - Future<Null> cleanupAfterSignal() async { + Future<void> cleanupAfterSignal() async { await stopEchoingDeviceLog(); if (_didAttach) { appFinished(); @@ -774,10 +774,10 @@ } @override - Future<Null> preStop() => _cleanupDevFS(); + Future<void> preStop() => _cleanupDevFS(); @override - Future<Null> cleanupAtFinish() async { + Future<void> cleanupAtFinish() async { await _cleanupDevFS(); await stopEchoingDeviceLog(); }
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index f9a25fe..cef4908 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart
@@ -65,7 +65,7 @@ static const String kFileSystemScheme = 'filesystem-scheme'; } -abstract class FlutterCommand extends Command<Null> { +abstract class FlutterCommand extends Command<void> { /// The currently executing command (or sub-command). /// /// Will be `null` until the top-most command has begun execution. @@ -294,10 +294,10 @@ /// and [runCommand] to execute the command /// so that this method can record and report the overall time to analytics. @override - Future<Null> run() { + Future<void> run() { final DateTime startTime = clock.now(); - return context.run<Null>( + return context.run<void>( name: 'command', overrides: <Type, Generator>{FlutterCommand: () => this}, body: () async { @@ -451,7 +451,7 @@ @protected @mustCallSuper - Future<Null> validateCommand() async { + Future<void> validateCommand() async { if (_requiresPubspecYaml && !PackageMap.isUsingCustomPackagesPath) { // Don't expect a pubspec.yaml file if the user passed in an explicit .packages file path. if (!fs.isFileSync('pubspec.yaml')) {
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 68cc46f..dc9c2fda 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
@@ -38,7 +38,7 @@ const String kFlutterToolsScriptFileName = 'flutter_tools.dart'; // in //flutter/packages/flutter_tools/bin/ const String kFlutterEnginePackageName = 'sky_engine'; -class FlutterCommandRunner extends CommandRunner<Null> { +class FlutterCommandRunner extends CommandRunner<void> { FlutterCommandRunner({ bool verboseHelp = false }) : super( 'flutter', 'Manage your Flutter app development.\n' @@ -191,7 +191,7 @@ usageException(error.message); } - Command<Null> command = commands[error.commands.first]; + Command<void> command = commands[error.commands.first]; for (String commandName in error.commands.skip(1)) { command = command.subcommands[commandName]; } @@ -202,7 +202,7 @@ } @override - Future<Null> run(Iterable<String> args) { + Future<void> run(Iterable<String> args) { // Have an invocation of 'build' print out it's sub-commands. // TODO(ianh): Move this to the Build command itself somehow. if (args.length == 1 && args.first == 'build') @@ -212,7 +212,7 @@ } @override - Future<Null> runCommand(ArgResults topLevelResults) async { + Future<void> runCommand(ArgResults topLevelResults) async { final Map<Type, dynamic> contextOverrides = <Type, dynamic>{ Flags: Flags(topLevelResults), }; @@ -300,7 +300,7 @@ }); } - await context.run<Null>( + await context.run<void>( overrides: contextOverrides.map<Type, Generator>((Type type, dynamic value) { return MapEntry<Type, Generator>(type, () => value); }),
diff --git a/packages/flutter_tools/lib/src/services.dart b/packages/flutter_tools/lib/src/services.dart index bdc61d2..934f05e 100644 --- a/packages/flutter_tools/lib/src/services.dart +++ b/packages/flutter_tools/lib/src/services.dart
@@ -25,7 +25,7 @@ /// Loads all services specified in `pubspec.yaml`. Parses each service config file, /// storing meta data in [services] and the list of jar files in [jars]. -Future<Null> parseServiceConfigs( +Future<void> parseServiceConfigs( List<Map<String, String>> services, { List<File> jars } ) async { Map<String, Uri> packageMap;
diff --git a/packages/flutter_tools/lib/src/test/coverage_collector.dart b/packages/flutter_tools/lib/src/test/coverage_collector.dart index 580b393..fda1785 100644 --- a/packages/flutter_tools/lib/src/test/coverage_collector.dart +++ b/packages/flutter_tools/lib/src/test/coverage_collector.dart
@@ -40,7 +40,7 @@ /// has been run to completion so that all coverage data has been recorded. /// /// The returned [Future] completes when the coverage is collected. - Future<Null> collectCoverage(Process process, Uri observatoryUri) async { + Future<void> collectCoverage(Process process, Uri observatoryUri) async { assert(process != null); assert(observatoryUri != null);
diff --git a/packages/flutter_tools/lib/src/test/flutter_platform.dart b/packages/flutter_tools/lib/src/test/flutter_platform.dart index e353708..eb77279 100644 --- a/packages/flutter_tools/lib/src/test/flutter_platform.dart +++ b/packages/flutter_tools/lib/src/test/flutter_platform.dart
@@ -190,7 +190,7 @@ enum _InitialResult { crashed, timedOut, connected } enum _TestResult { crashed, harnessBailed, testBailed } -typedef _Finalizer = Future<Null> Function(); +typedef _Finalizer = Future<void> Function(); class _CompilationRequest { _CompilationRequest(this.path, this.result);
diff --git a/packages/flutter_tools/lib/src/tester/flutter_tester.dart b/packages/flutter_tools/lib/src/tester/flutter_tester.dart index 219d46b..467ad0b 100644 --- a/packages/flutter_tools/lib/src/tester/flutter_tester.dart +++ b/packages/flutter_tools/lib/src/tester/flutter_tester.dart
@@ -246,5 +246,5 @@ List<ForwardedPort> get forwardedPorts => <ForwardedPort>[]; @override - Future<Null> unforward(ForwardedPort forwardedPort) => null; + Future<void> unforward(ForwardedPort forwardedPort) => null; }
diff --git a/packages/flutter_tools/lib/src/tracing.dart b/packages/flutter_tools/lib/src/tracing.dart index 0a72a48..3fe3953 100644 --- a/packages/flutter_tools/lib/src/tracing.dart +++ b/packages/flutter_tools/lib/src/tracing.dart
@@ -25,7 +25,7 @@ final VMService vmService; - Future<Null> startTracing() async { + Future<void> startTracing() async { await vmService.vm.setVMTimelineFlags(<String>['Compiler', 'Dart', 'Embedder', 'GC']); await vmService.vm.clearVMTimeline(); } @@ -41,7 +41,7 @@ await vmService.vm.setVMTimelineFlags(<String>[]); timeline = await vmService.vm.getVMTimeline(); } else { - final Completer<Null> whenFirstFrameRendered = Completer<Null>(); + final Completer<void> whenFirstFrameRendered = Completer<void>(); (await vmService.onTimelineEvent).listen((ServiceEvent timelineEvent) { final List<Map<String, dynamic>> events = timelineEvent.timelineEvents; @@ -74,7 +74,7 @@ /// Download the startup trace information from the given observatory client and /// store it to build/start_up_info.json. -Future<Null> downloadStartupTrace(VMService observatory) async { +Future<void> downloadStartupTrace(VMService observatory) async { final String traceInfoFilePath = fs.path.join(getBuildDirectory(), 'start_up_info.json'); final File traceInfoFile = fs.file(traceInfoFilePath);
diff --git a/packages/flutter_tools/lib/src/usage.dart b/packages/flutter_tools/lib/src/usage.dart index a49553d..8296d2a 100644 --- a/packages/flutter_tools/lib/src/usage.dart +++ b/packages/flutter_tools/lib/src/usage.dart
@@ -122,7 +122,7 @@ /// Returns when the last analytics event has been sent, or after a fixed /// (short) delay, whichever is less. - Future<Null> ensureAnalyticsSent() async { + Future<void> ensureAnalyticsSent() async { // TODO(devoncarew): This may delay tool exit and could cause some analytics // events to not be reported. Perhaps we could send the analytics pings // out-of-process from flutter_tools?
diff --git a/packages/flutter_tools/lib/src/version.dart b/packages/flutter_tools/lib/src/version.dart index da54493..896227b 100644 --- a/packages/flutter_tools/lib/src/version.dart +++ b/packages/flutter_tools/lib/src/version.dart
@@ -158,7 +158,7 @@ } } - static Future<Null> _removeVersionCheckRemoteIfExists() async { + static Future<void> _removeVersionCheckRemoteIfExists() async { final List<String> remotes = (await _run(<String>['git', 'remote'])) .split('\n') .map<String>((String name) => name.trim()) // to account for OS-specific line-breaks @@ -234,7 +234,7 @@ /// [checkFlutterVersionFreshness] is called after this. This is typically /// used when switching channels so that stale information from another /// channel doesn't linger. - static Future<Null> resetFlutterVersionFreshnessCheck() async { + static Future<void> resetFlutterVersionFreshnessCheck() async { try { await Cache.instance.getStampFileFor( VersionCheckStamp.kFlutterVersionCheckStampFile, @@ -249,7 +249,7 @@ /// /// This function must run while [Cache.lock] is acquired because it reads and /// writes shared cache files. - Future<Null> checkFlutterVersionFreshness() async { + Future<void> checkFlutterVersionFreshness() async { // Don't perform update checks if we're not on an official channel. if (!officialChannels.contains(_channel)) { return; @@ -288,11 +288,11 @@ ? newVersionAvailableMessage() : versionOutOfDateMessage(frameworkAge); printStatus(updateMessage, emphasis: true); - await Future.wait<Null>(<Future<Null>>[ + await Future.wait<void>(<Future<void>>[ stamp.store( newTimeWarningWasPrinted: _clock.now(), ), - Future<Null>.delayed(timeToPauseToLetUserReadTheMessage), + Future<void>.delayed(timeToPauseToLetUserReadTheMessage), ]); } } @@ -418,7 +418,7 @@ ); } - Future<Null> store({ + Future<void> store({ DateTime newTimeVersionWasChecked, DateTime newKnownRemoteVersion, DateTime newTimeWarningWasPrinted,
diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart index e76b963..f83b50e 100644 --- a/packages/flutter_tools/lib/src/vmservice.dart +++ b/packages/flutter_tools/lib/src/vmservice.dart
@@ -37,7 +37,7 @@ /// hot mode. /// /// See: https://github.com/dart-lang/sdk/issues/30023 -typedef ReloadSources = Future<Null> Function( +typedef ReloadSources = Future<void> Function( String isolateId, { bool force, bool pause, @@ -66,7 +66,7 @@ printTrace('This was attempt #$attempts. Will retry in $delay.'); // Delay next attempt. - await Future<Null>.delayed(delay); + await Future<void>.delayed(delay); // Back off exponentially. delay *= 2; @@ -260,7 +260,7 @@ /// Whether our connection to the VM service has been closed; bool get isClosed => _peer.isClosed; - Future<Null> get done async { + Future<void> get done async { await _peer.done; } @@ -332,7 +332,7 @@ _getEventController(streamId).add(event); } - Future<Null> _streamListen(String streamId) async { + Future<void> _streamListen(String streamId) async { if (!_listeningFor.contains(streamId)) { _listeningFor.add(streamId); await _sendRequest('streamListen', <String, dynamic>{ 'streamId': streamId }); @@ -344,7 +344,7 @@ return await _vm.reload(); } - Future<Null> refreshViews() async { + Future<void> refreshViews() async { if (!vm.isFlutterEngine) return; await vm.refreshViews(); @@ -948,7 +948,7 @@ return invokeRpcRaw('_getVMTimeline', timeout: kLongRequestTimeout); } - Future<Null> refreshViews() async { + Future<void> refreshViews() async { if (!isFlutterEngine) return; _viewCache.clear(); @@ -1277,7 +1277,7 @@ Future<Map<String, dynamic>> flutterToggleWidgetInspector() => _flutterToggle('inspector.show'); - Future<Null> flutterDebugAllowBanner(bool show) async { + Future<void> flutterDebugAllowBanner(bool show) async { await invokeFlutterExtensionRpcRaw( 'ext.flutter.debugAllowBanner', params: <String, dynamic>{ 'enabled': show ? 'true' : 'false' }, @@ -1412,12 +1412,12 @@ } // TODO(johnmccutchan): Report errors when running failed. - Future<Null> runFromSource(Uri entryUri, + Future<void> runFromSource(Uri entryUri, Uri packagesUri, Uri assetsDirectoryUri) async { final String viewId = id; // When this completer completes the isolate is running. - final Completer<Null> completer = Completer<Null>(); + final Completer<void> completer = Completer<void>(); final StreamSubscription<ServiceEvent> subscription = (await owner.vm.vmService.onIsolateEvent).listen((ServiceEvent event) { // TODO(johnmccutchan): Listen to the debug stream and catch initial @@ -1425,7 +1425,7 @@ if (event.kind == ServiceEvent.kIsolateRunnable) { printTrace('Isolate is runnable.'); if (!completer.isCompleted) - completer.complete(null); + completer.complete(); } }); await owner.vm.runInView(viewId, @@ -1437,7 +1437,7 @@ await subscription.cancel(); } - Future<Null> setAssetDirectory(Uri assetsDirectory) async { + Future<void> setAssetDirectory(Uri assetsDirectory) async { assert(assetsDirectory != null); await owner.vmService.vm.invokeRpc<ServiceObject>('_flutter.setAssetBundlePath', params: <String, dynamic>{ @@ -1449,7 +1449,7 @@ bool get hasIsolate => _uiIsolate != null; - Future<Null> flushUIThreadTasks() async { + Future<void> flushUIThreadTasks() async { await owner.vm.invokeRpcRaw('_flutter.flushUIThreadTasks', params: <String, dynamic>{'isolateId': _uiIsolate.id}); }
diff --git a/packages/flutter_tools/lib/src/vmservice_record_replay.dart b/packages/flutter_tools/lib/src/vmservice_record_replay.dart index 0126f87..4749b58 100644 --- a/packages/flutter_tools/lib/src/vmservice_record_replay.dart +++ b/packages/flutter_tools/lib/src/vmservice_record_replay.dart
@@ -253,7 +253,7 @@ _ReplaySink(this.channel); final ReplayVMServiceChannel channel; - final Completer<Null> _completer = Completer<Null>(); + final Completer<void> _completer = Completer<void>(); @override Future<dynamic> close() {
diff --git a/packages/flutter_tools/test/analytics_test.dart b/packages/flutter_tools/test/analytics_test.dart index ee99ace..14e5f0a 100644 --- a/packages/flutter_tools/test/analytics_test.dart +++ b/packages/flutter_tools/test/analytics_test.dart
@@ -52,7 +52,7 @@ count = 0; flutterUsage.enabled = false; final DoctorCommand doctorCommand = DoctorCommand(); - final CommandRunner<Null>runner = createTestCommandRunner(doctorCommand); + final CommandRunner<void>runner = createTestCommandRunner(doctorCommand); await runner.run(<String>['doctor']); expect(count, 0); }, overrides: <Type, Generator>{ @@ -67,7 +67,7 @@ flutterUsage.enabled = false; final ConfigCommand command = ConfigCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['config']); expect(count, 0); @@ -100,7 +100,7 @@ mockTimes = <int>[1000, 2000]; when(mockDoctor.diagnose(androidLicenses: false, verbose: false)).thenAnswer((_) async => true); final DoctorCommand command = DoctorCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['doctor']); verify(mockClock.now()).called(2); @@ -119,7 +119,7 @@ mockTimes = <int>[1000, 2000]; when(mockDoctor.diagnose(androidLicenses: false, verbose: false)).thenAnswer((_) async => false); final DoctorCommand command = DoctorCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['doctor']); verify(mockClock.now()).called(2);
diff --git a/packages/flutter_tools/test/asset_bundle_package_fonts_test.dart b/packages/flutter_tools/test/asset_bundle_package_fonts_test.dart index a1a584f..a30b8cb 100644 --- a/packages/flutter_tools/test/asset_bundle_package_fonts_test.dart +++ b/packages/flutter_tools/test/asset_bundle_package_fonts_test.dart
@@ -60,7 +60,7 @@ ..writeAsStringSync(packages); } - Future<Null> buildAndVerifyFonts( + Future<void> buildAndVerifyFonts( List<String> localFonts, List<String> packageFonts, List<String> packages,
diff --git a/packages/flutter_tools/test/asset_bundle_package_test.dart b/packages/flutter_tools/test/asset_bundle_package_test.dart index 17b3c42..9ed6f03 100644 --- a/packages/flutter_tools/test/asset_bundle_package_test.dart +++ b/packages/flutter_tools/test/asset_bundle_package_test.dart
@@ -66,7 +66,7 @@ ..writeAsStringSync(packages); } - Future<Null> buildAndVerifyAssets( + Future<void> buildAndVerifyAssets( List<String> assets, List<String> packages, String expectedAssetManifest,
diff --git a/packages/flutter_tools/test/base/flags_test.dart b/packages/flutter_tools/test/base/flags_test.dart index 99122de..e49a7af 100644 --- a/packages/flutter_tools/test/base/flags_test.dart +++ b/packages/flutter_tools/test/base/flags_test.dart
@@ -11,12 +11,12 @@ import '../src/common.dart'; import '../src/context.dart'; -typedef _TestMethod = FutureOr<Null> Function(); +typedef _TestMethod = FutureOr<void> Function(); void main() { Cache.disableLocking(); - Future<Null> runCommand(Iterable<String> flags, _TestMethod testMethod) async { + Future<void> runCommand(Iterable<String> flags, _TestMethod testMethod) async { final List<String> args = <String>['test']..addAll(flags); final _TestCommand command = _TestCommand(testMethod); await createTestCommandRunner(command).run(args);
diff --git a/packages/flutter_tools/test/channel_test.dart b/packages/flutter_tools/test/channel_test.dart index ed12ded..96c2e92 100644 --- a/packages/flutter_tools/test/channel_test.dart +++ b/packages/flutter_tools/test/channel_test.dart
@@ -43,7 +43,7 @@ testUsingContext('list', () async { final ChannelCommand command = ChannelCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['channel']); expect(testLogger.errorText, hasLength(0)); // The bots may return an empty list of channels (network hiccup?) @@ -65,7 +65,7 @@ )).thenAnswer((_) => Future<Process>.value(process)); final ChannelCommand command = ChannelCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['channel']); verify(mockProcessManager.start( @@ -106,7 +106,7 @@ )).thenAnswer((_) => Future<Process>.value(createMockProcess())); final ChannelCommand command = ChannelCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['channel', 'beta']); verify(mockProcessManager.start( @@ -166,7 +166,7 @@ '''); final ChannelCommand command = ChannelCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['channel', 'beta']); verify(mockProcessManager.start(
diff --git a/packages/flutter_tools/test/commands/analyze_once_test.dart b/packages/flutter_tools/test/commands/analyze_once_test.dart index afae38e..229c569 100644 --- a/packages/flutter_tools/test/commands/analyze_once_test.dart +++ b/packages/flutter_tools/test/commands/analyze_once_test.dart
@@ -191,7 +191,7 @@ } } -Future<Null> runCommand({ +Future<void> runCommand({ FlutterCommand command, List<String> arguments, List<String> statusTextContains,
diff --git a/packages/flutter_tools/test/commands/create_test.dart b/packages/flutter_tools/test/commands/create_test.dart index 10c65eb..ff5bd11 100644 --- a/packages/flutter_tools/test/commands/create_test.dart +++ b/packages/flutter_tools/test/commands/create_test.dart
@@ -234,7 +234,7 @@ when(mockFlutterVersion.channel).thenReturn(frameworkChannel); final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create', '--template=application', '--no-pub', '--org', 'com.foo.bar', projectDir.path]); @@ -305,7 +305,7 @@ when(mockFlutterVersion.channel).thenReturn(frameworkChannel); final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create', '--template=app', '--no-pub', '--org', 'com.foo.bar', projectDir.path]); @@ -374,7 +374,7 @@ Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create', '--no-pub', projectDir.path]); @@ -385,7 +385,7 @@ Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create', '--no-pub', '--template=app', projectDir.path]); @@ -402,7 +402,7 @@ Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create', '--no-pub', '--template=app', projectDir.path]); @@ -416,7 +416,7 @@ Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create', '--no-pub', '--template=plugin', projectDir.path]); @@ -430,7 +430,7 @@ Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create', '--no-pub', '--template=package', projectDir.path]); @@ -555,7 +555,7 @@ Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); expect( runner.run(<String>['create', projectDir.path, '--pub']), @@ -567,7 +567,7 @@ testUsingContext('fails when file exists', () async { Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); final File existingFile = fs.file('${projectDir.path.toString()}/bad'); if (!existingFile.existsSync()) { existingFile.createSync(recursive: true); @@ -581,7 +581,7 @@ testUsingContext('fails when invalid package name', () async { Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); expect( runner.run(<String>['create', fs.path.join(projectDir.path, 'invalidName')]), throwsToolExit(message: '"invalidName" is not a valid Dart package name.'), @@ -594,7 +594,7 @@ Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create', '--pub', '--offline', projectDir.path]); expect(loggingProcessManager.commands.first, contains(matches(r'dart-sdk[\\/]bin[\\/]pub'))); @@ -612,7 +612,7 @@ Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create', '--pub', projectDir.path]); expect(loggingProcessManager.commands.first, contains(matches(r'dart-sdk[\\/]bin[\\/]pub'))); @@ -625,7 +625,7 @@ ); } -Future<Null> _createProject( +Future<void> _createProject( Directory dir, List<String> createArgs, List<String> expectedPaths, { @@ -633,7 +633,7 @@ }) async { Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); final List<String> args = <String>['create']; args.addAll(createArgs); args.add(dir.path); @@ -658,7 +658,7 @@ expect(failures, isEmpty, reason: failures.join('\n')); } -Future<Null> _createAndAnalyzeProject( +Future<void> _createAndAnalyzeProject( Directory dir, List<String> createArgs, List<String> expectedPaths, { @@ -668,7 +668,7 @@ await _analyzeProject(dir.path); } -Future<Null> _analyzeProject(String workingDir) async { +Future<void> _analyzeProject(String workingDir) async { final String flutterToolsPath = fs.path.absolute(fs.path.join( 'bin', 'flutter_tools.dart', @@ -691,7 +691,7 @@ expect(exec.exitCode, 0); } -Future<Null> _runFlutterTest(Directory workingDir, {String target}) async { +Future<void> _runFlutterTest(Directory workingDir, {String target}) async { final String flutterToolsPath = fs.path.absolute(fs.path.join( 'bin', 'flutter_tools.dart',
diff --git a/packages/flutter_tools/test/commands/daemon_test.dart b/packages/flutter_tools/test/commands/daemon_test.dart index b1315ea..fbdd8c4 100644 --- a/packages/flutter_tools/test/commands/daemon_test.dart +++ b/packages/flutter_tools/test/commands/daemon_test.dart
@@ -84,7 +84,7 @@ ); printStatus('daemon.logMessage test'); // Service the event loop. - await Future<Null>.value(); + await Future<void>.value(); }, zoneSpecification: ZoneSpecification(print: (Zone self, ZoneDelegate parent, Zone zone, String line) { buffer.writeln(line); })); @@ -103,7 +103,7 @@ notifyingLogger: notifyingLogger ); commands.add(<String, dynamic>{'id': 0, 'method': 'daemon.shutdown'}); - return daemon.onExit.then<Null>((int code) async { + return daemon.onExit.then<void>((int code) async { await commands.close(); expect(code, 0); });
diff --git a/packages/flutter_tools/test/commands/format_test.dart b/packages/flutter_tools/test/commands/format_test.dart index 526fa38..f3878cf 100644 --- a/packages/flutter_tools/test/commands/format_test.dart +++ b/packages/flutter_tools/test/commands/format_test.dart
@@ -31,7 +31,7 @@ srcFile.writeAsStringSync(original.replaceFirst('main()', 'main( )')); final FormatCommand command = FormatCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['format', srcFile.path]); final String formatted = srcFile.readAsStringSync(); @@ -48,7 +48,7 @@ srcFile.writeAsStringSync(nonFormatted); final FormatCommand command = FormatCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['format', '--dry-run', srcFile.path]); final String shouldNotFormatted = srcFile.readAsStringSync(); @@ -65,7 +65,7 @@ srcFile.writeAsStringSync(nonFormatted); final FormatCommand command = FormatCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); expect(runner.run(<String>[ 'format', '--dry-run', '--set-exit-if-changed', srcFile.path
diff --git a/packages/flutter_tools/test/commands/ide_config_test.dart b/packages/flutter_tools/test/commands/ide_config_test.dart index 1e7a0fe..f3959a1 100644 --- a/packages/flutter_tools/test/commands/ide_config_test.dart +++ b/packages/flutter_tools/test/commands/ide_config_test.dart
@@ -76,7 +76,7 @@ return fs.file(absPath).existsSync() || fs.directory(absPath).existsSync(); } - Future<Null> _updateIdeConfig({ + Future<void> _updateIdeConfig({ Directory dir, List<String> args = const <String>[], Map<String, String> expectedContents = const <String, String>{}, @@ -84,7 +84,7 @@ }) async { dir ??= tempDir; final IdeConfigCommand command = IdeConfigCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); final List<String> finalArgs = <String>['--flutter-root=${tempDir.absolute.path}', 'ide-config']; finalArgs.addAll(args); await runner.run(finalArgs);
diff --git a/packages/flutter_tools/test/commands/packages_test.dart b/packages/flutter_tools/test/commands/packages_test.dart index 34dab67..c8cad27 100644 --- a/packages/flutter_tools/test/commands/packages_test.dart +++ b/packages/flutter_tools/test/commands/packages_test.dart
@@ -57,9 +57,9 @@ return projectPath; } - Future<Null> runCommandIn(String projectPath, String verb, { List<String> args }) async { + Future<void> runCommandIn(String projectPath, String verb, { List<String> args }) async { final PackagesCommand command = PackagesCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); final List<String> commandArgs = <String>['packages', verb]; if (args != null) @@ -307,12 +307,12 @@ testUsingContext('publish', () async { final PromptingProcess process = PromptingProcess(); mockProcessManager.processFactory = (List<String> commands) => process; - final Future<Null> runPackages = createTestCommandRunner(PackagesCommand()).run(<String>['packages', 'pub', 'publish']); - final Future<Null> runPrompt = process.showPrompt('Proceed (y/n)? ', <String>['hello', 'world']); - final Future<Null> simulateUserInput = Future<Null>(() { + final Future<void> runPackages = createTestCommandRunner(PackagesCommand()).run(<String>['packages', 'pub', 'publish']); + final Future<void> runPrompt = process.showPrompt('Proceed (y/n)? ', <String>['hello', 'world']); + final Future<void> simulateUserInput = Future<void>(() { mockStdio.simulateStdin('y'); }); - await Future.wait<Null>(<Future<Null>>[runPackages, runPrompt, simulateUserInput]); + await Future.wait<void>(<Future<void>>[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/commands/test_test.dart b/packages/flutter_tools/test/commands/test_test.dart index d0d3787..4c05295 100644 --- a/packages/flutter_tools/test/commands/test_test.dart +++ b/packages/flutter_tools/test/commands/test_test.dart
@@ -15,7 +15,7 @@ // This test depends on some files in ///dev/automated_tests/flutter_test/* -Future<Null> _testExclusionLock; +Future<void> _testExclusionLock; void main() { group('flutter test should', () { @@ -90,7 +90,7 @@ }); } -Future<Null> _testFile(String testName, String workingDirectory, String testDirectory, {Matcher exitCode}) async { +Future<void> _testFile(String testName, String workingDirectory, String testDirectory, {Matcher exitCode}) async { exitCode ??= isNonZero; final String fullTestExpectation = fs.path.join(testDirectory, '${testName}_expectation.txt'); final File expectationFile = fs.file(fullTestExpectation); @@ -171,7 +171,7 @@ while (_testExclusionLock != null) await _testExclusionLock; - final Completer<Null> testExclusionCompleter = Completer<Null>(); + final Completer<void> testExclusionCompleter = Completer<void>(); _testExclusionLock = testExclusionCompleter.future; try { return await Process.run(
diff --git a/packages/flutter_tools/test/compile_test.dart b/packages/flutter_tools/test/compile_test.dart index 2428559..879304c 100644 --- a/packages/flutter_tools/test/compile_test.dart +++ b/packages/flutter_tools/test/compile_test.dart
@@ -376,7 +376,7 @@ }); } -Future<Null> _recompile(StreamController<List<int>> streamController, +Future<void> _recompile(StreamController<List<int>> streamController, ResidentCompiler generator, MockStdIn mockFrontendServerStdIn, String mockCompilerOutput) async { // Put content into the output stream after generator.recompile gets
diff --git a/packages/flutter_tools/test/crash_reporting_test.dart b/packages/flutter_tools/test/crash_reporting_test.dart index 2eab591..efbbf21 100644 --- a/packages/flutter_tools/test/crash_reporting_test.dart +++ b/packages/flutter_tools/test/crash_reporting_test.dart
@@ -173,7 +173,7 @@ String get name => 'crash'; @override - Future<Null> runCommand() async { + Future<FlutterCommandResult> runCommand() async { void fn1() { throw StateError('Test bad state error'); } @@ -187,6 +187,8 @@ } fn3(); + + return null; } }
diff --git a/packages/flutter_tools/test/dart/pub_get_test.dart b/packages/flutter_tools/test/dart/pub_get_test.dart index ec4773f..a4c4d2c 100644 --- a/packages/flutter_tools/test/dart/pub_get_test.dart +++ b/packages/flutter_tools/test/dart/pub_get_test.dart
@@ -32,7 +32,7 @@ FakeAsync().run((FakeAsync time) { expect(processMock.lastPubEnvironment, isNull); expect(testLogger.statusText, ''); - pubGet(context: PubContext.flutterTests, checkLastModified: false).then((Null value) { + pubGet(context: PubContext.flutterTests, checkLastModified: false).then((void value) { error = 'test completed unexpectedly'; }, onError: (dynamic thrownError) { error = 'test failed unexpectedly: $thrownError'; @@ -102,7 +102,7 @@ MockDirectory.findCache = true; expect(processMock.lastPubEnvironment, isNull); expect(processMock.lastPubCache, isNull); - pubGet(context: PubContext.flutterTests, checkLastModified: false).then((Null value) { + pubGet(context: PubContext.flutterTests, checkLastModified: false).then((void value) { error = 'test completed unexpectedly'; }, onError: (dynamic thrownError) { error = 'test failed unexpectedly: $thrownError'; @@ -128,7 +128,7 @@ MockDirectory.findCache = true; expect(processMock.lastPubEnvironment, isNull); expect(processMock.lastPubCache, isNull); - pubGet(context: PubContext.flutterTests, checkLastModified: false).then((Null value) { + pubGet(context: PubContext.flutterTests, checkLastModified: false).then((void value) { error = 'test completed unexpectedly'; }, onError: (dynamic thrownError) { error = 'test failed unexpectedly: $thrownError'; @@ -213,7 +213,7 @@ Future<E> asFuture<E>([E futureValue]) => Future<E>.value(); @override - Future<Null> cancel() => null; + Future<void> cancel() => null; @override dynamic noSuchMethod(Invocation invocation) => null;
diff --git a/packages/flutter_tools/test/devfs_test.dart b/packages/flutter_tools/test/devfs_test.dart index d3c72bc..ab0ee76 100644 --- a/packages/flutter_tools/test/devfs_test.dart +++ b/packages/flutter_tools/test/devfs_test.dart
@@ -438,7 +438,7 @@ @override VM get vm => _vm; - Future<Null> setUp() async { + Future<void> setUp() async { try { _server = await HttpServer.bind(InternetAddress.loopbackIPv6, 0); _httpAddress = Uri.parse('http://[::1]:${_server.port}'); @@ -451,7 +451,7 @@ final String fsName = request.headers.value('dev_fs_name'); final String devicePath = utf8.decode(base64.decode(request.headers.value('dev_fs_uri_b64'))); messages.add('writeFile $fsName $devicePath'); - request.drain<List<int>>().then<Null>((List<int> value) { + request.drain<List<int>>().then<void>((List<int> value) { request.response ..write('Got it') ..close(); @@ -459,7 +459,7 @@ }); } - Future<Null> tearDown() async { + Future<void> tearDown() async { await _server?.close(); } @@ -522,7 +522,7 @@ tryToDelete(_tempDirs.removeLast()); } -Future<Null> _createPackage(FileSystem fs, String pkgName, String pkgFileName, { bool doubleSlash = false }) async { +Future<void> _createPackage(FileSystem fs, String pkgName, String pkgFileName, { bool doubleSlash = false }) async { final Directory pkgTempDir = _newTempDir(fs); String pkgFilePath = fs.path.join(pkgTempDir.path, pkgName, 'lib', pkgFileName); if (doubleSlash) {
diff --git a/packages/flutter_tools/test/device_test.dart b/packages/flutter_tools/test/device_test.dart index db32c3d..4b199c7 100644 --- a/packages/flutter_tools/test/device_test.dart +++ b/packages/flutter_tools/test/device_test.dart
@@ -25,7 +25,7 @@ final List<Device> devices = <Device>[device1, device2, device3]; final DeviceManager deviceManager = TestDeviceManager(devices); - Future<Null> expectDevice(String id, List<Device> expected) async { + Future<void> expectDevice(String id, List<Device> expected) async { expect(await deviceManager.getDevicesById(id).toList(), expected); } await expectDevice('01abfc49119c410e', <Device>[device2]);
diff --git a/packages/flutter_tools/test/emulator_test.dart b/packages/flutter_tools/test/emulator_test.dart index 0bb1499..59b276d 100644 --- a/packages/flutter_tools/test/emulator_test.dart +++ b/packages/flutter_tools/test/emulator_test.dart
@@ -58,7 +58,7 @@ final TestEmulatorManager testEmulatorManager = TestEmulatorManager(emulators); - Future<Null> expectEmulator(String id, List<Emulator> expected) async { + Future<void> expectEmulator(String id, List<Emulator> expected) async { expect(await testEmulatorManager.getEmulatorsMatching(id), expected); }
diff --git a/packages/flutter_tools/test/project_test.dart b/packages/flutter_tools/test/project_test.dart index c17d6f0..80248ba 100644 --- a/packages/flutter_tools/test/project_test.dart +++ b/packages/flutter_tools/test/project_test.dart
@@ -234,7 +234,7 @@ mockXcodeProjectInterpreter = MockXcodeProjectInterpreter(); }); - void testWithMocks(String description, Future<Null> testMethod()) { + void testWithMocks(String description, Future<void> testMethod()) { testUsingContext(description, testMethod, overrides: <Type, Generator>{ FileSystem: () => fs, IOSWorkflow: () => mockIOSWorkflow, @@ -365,7 +365,7 @@ /// Executes the [testMethod] in a context where the file system /// is in memory. -void testInMemory(String description, Future<Null> testMethod()) { +void testInMemory(String description, Future<void> testMethod()) { Cache.flutterRoot = getFlutterRoot(); final FileSystem testFileSystem = MemoryFileSystem( style: platform.isWindows ? FileSystemStyle.windows : FileSystemStyle.posix, @@ -406,7 +406,7 @@ } } -Future<Null> expectToolExitLater(Future<dynamic> future, Matcher messageMatcher) async { +Future<void> expectToolExitLater(Future<dynamic> future, Matcher messageMatcher) async { try { await future; fail('ToolExit expected, but nothing thrown');
diff --git a/packages/flutter_tools/test/protocol_discovery_test.dart b/packages/flutter_tools/test/protocol_discovery_test.dart index d8499f2..c4e9050 100644 --- a/packages/flutter_tools/test/protocol_discovery_test.dart +++ b/packages/flutter_tools/test/protocol_discovery_test.dart
@@ -240,7 +240,7 @@ List<ForwardedPort> get forwardedPorts => throw 'not implemented'; @override - Future<Null> unforward(ForwardedPort forwardedPort) { + Future<void> unforward(ForwardedPort forwardedPort) { throw 'not implemented'; } }
diff --git a/packages/flutter_tools/test/resident_runner_test.dart b/packages/flutter_tools/test/resident_runner_test.dart index fd50df4..30c07b8 100644 --- a/packages/flutter_tools/test/resident_runner_test.dart +++ b/packages/flutter_tools/test/resident_runner_test.dart
@@ -18,13 +18,13 @@ String receivedCommand; @override - Future<Null> cleanupAfterSignal() => null; + Future<void> cleanupAfterSignal() => null; @override - Future<Null> cleanupAtFinish() => null; + Future<void> cleanupAtFinish() => null; @override - Future<Null> handleTerminalCommand(String code) async { + Future<void> handleTerminalCommand(String code) async { receivedCommand = code; }
diff --git a/packages/flutter_tools/test/runner/flutter_command_test.dart b/packages/flutter_tools/test/runner/flutter_command_test.dart index 2e78161..7c3464a 100644 --- a/packages/flutter_tools/test/runner/flutter_command_test.dart +++ b/packages/flutter_tools/test/runner/flutter_command_test.dart
@@ -188,7 +188,7 @@ @override Future<FlutterCommandResult> runCommand() async { - return commandFunction == null ? null : commandFunction(); + return commandFunction == null ? null : await commandFunction(); } }
diff --git a/packages/flutter_tools/test/src/common.dart b/packages/flutter_tools/test/src/common.dart index 34627bf..a3e2039 100644 --- a/packages/flutter_tools/test/src/common.dart +++ b/packages/flutter_tools/test/src/common.dart
@@ -68,7 +68,7 @@ return fs.path.normalize(fs.path.join(toolsPath, '..', '..')); } -CommandRunner<Null> createTestCommandRunner([FlutterCommand command]) { +CommandRunner<void> createTestCommandRunner([FlutterCommand command]) { final FlutterCommandRunner runner = FlutterCommandRunner(); if (command != null) runner.addCommand(command); @@ -113,7 +113,7 @@ arguments ??= <String>['--no-pub']; final String projectPath = fs.path.join(temp.path, 'flutter_project'); final CreateCommand command = CreateCommand(); - final CommandRunner<Null> runner = createTestCommandRunner(command); + final CommandRunner<void> runner = createTestCommandRunner(command); await runner.run(<String>['create']..addAll(arguments)..add(projectPath)); return projectPath; }
diff --git a/packages/flutter_tools/test/src/context.dart b/packages/flutter_tools/test/src/context.dart index e458d93..5721d0f 100644 --- a/packages/flutter_tools/test/src/context.dart +++ b/packages/flutter_tools/test/src/context.dart
@@ -262,7 +262,7 @@ Stream<Map<String, dynamic>> get onSend => null; @override - Future<Null> ensureAnalyticsSent() => Future<Null>.value(); + Future<void> ensureAnalyticsSent() => Future<void>.value(); @override void printWelcome() { }
diff --git a/packages/flutter_tools/test/src/mocks.dart b/packages/flutter_tools/test/src/mocks.dart index eec77f1..a22872a 100644 --- a/packages/flutter_tools/test/src/mocks.dart +++ b/packages/flutter_tools/test/src/mocks.dart
@@ -173,7 +173,7 @@ /// A process that prompts the user to proceed, then asynchronously writes /// some lines to stdout before it exits. class PromptingProcess implements Process { - Future<Null> showPrompt(String prompt, List<String> outputLines) async { + Future<void> showPrompt(String prompt, List<String> outputLines) async { _stdoutController.add(utf8.encode(prompt)); final List<int> bytesOnStdin = await _stdin.future; // Echo stdin to stdout. @@ -234,11 +234,11 @@ } @override - Future<Null> addStream(Stream<List<int>> stream) { - final Completer<Null> completer = Completer<Null>(); + Future<void> addStream(Stream<List<int>> stream) { + final Completer<void> completer = Completer<void>(); stream.listen((List<int> data) { add(data); - }).onDone(() => completer.complete(null)); + }).onDone(() => completer.complete()); return completer.future; } @@ -275,13 +275,13 @@ } @override - Future<Null> get done => close(); + Future<void> get done => close(); @override - Future<Null> close() async => null; + Future<void> close() async => null; @override - Future<Null> flush() async => null; + Future<void> flush() async => null; } /// A Stdio that collects stdout and supports simulated stdin.
diff --git a/packages/flutter_tools/test/utils_test.dart b/packages/flutter_tools/test/utils_test.dart index 513a75d..17992c3 100644 --- a/packages/flutter_tools/test/utils_test.dart +++ b/packages/flutter_tools/test/utils_test.dart
@@ -134,7 +134,7 @@ called = true; }, const Duration(seconds: 1)); expect(called, false); - await Future<Null>.delayed(kShortDelay); + await Future<void>.delayed(kShortDelay); expect(called, true); }); @@ -145,7 +145,7 @@ callCount++; }, Duration(milliseconds: kShortDelay.inMilliseconds ~/ 2)); expect(callCount, 0); - await Future<Null>.delayed(kShortDelay); + await Future<void>.delayed(kShortDelay); expect(callCount, greaterThanOrEqualTo(2)); }); @@ -160,7 +160,7 @@ completer.complete(DateTime.now().difference(firstTime)); // introduce a delay - await Future<Null>.delayed(kShortDelay); + await Future<void>.delayed(kShortDelay); }, kShortDelay); final Duration duration = await completer.future; expect(duration, greaterThanOrEqualTo(Duration(milliseconds: kShortDelay.inMilliseconds * 2)));
diff --git a/packages/flutter_tools/tool/daemon_client.dart b/packages/flutter_tools/tool/daemon_client.dart index d8a1d75..d064a86 100644 --- a/packages/flutter_tools/tool/daemon_client.dart +++ b/packages/flutter_tools/tool/daemon_client.dart
@@ -18,7 +18,7 @@ // emulators: list emulators // launch: launch an emulator -Future<Null> main() async { +Future<void> main() async { daemon = await Process.start('dart', <String>['bin/flutter_tools.dart', 'daemon']); print('daemon process started, pid: ${daemon.pid}'); @@ -82,7 +82,7 @@ }); // Print in the callback can't fail. - daemon.exitCode.then<Null>((int code) { // ignore: unawaited_futures + daemon.exitCode.then<void>((int code) { // ignore: unawaited_futures print('daemon exiting ($code)'); exit(code); });