enable lint prefer_final_in_for_each (#47724)
diff --git a/packages/flutter_tools/lib/src/android/android_builder.dart b/packages/flutter_tools/lib/src/android/android_builder.dart index 17b5d5d..40ddbd6 100644 --- a/packages/flutter_tools/lib/src/android/android_builder.dart +++ b/packages/flutter_tools/lib/src/android/android_builder.dart
@@ -68,7 +68,7 @@ // Module projects artifacts are located in `build/host`. outputDirectory = outputDirectory.childDirectory('host'); } - for (AndroidBuildInfo androidBuildInfo in androidBuildInfo) { + for (final AndroidBuildInfo androidBuildInfo in androidBuildInfo) { await buildGradleAar( project: project, androidBuildInfo: androidBuildInfo,
diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 3b8d6b5..384e3b0 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart
@@ -732,7 +732,7 @@ Map<String, String> parseAdbDeviceProperties(String str) { final Map<String, String> properties = <String, String>{}; final RegExp propertyExp = RegExp(r'\[(.*?)\]: \[(.*?)\]'); - for (Match match in propertyExp.allMatches(str)) { + for (final Match match in propertyExp.allMatches(str)) { properties[match.group(1)] = match.group(2); } return properties; @@ -932,7 +932,7 @@ return; } - for (String line in text.trim().split('\n')) { + for (final String line in text.trim().split('\n')) { // Skip lines like: * daemon started successfully * if (line.startsWith('* daemon ')) { continue; @@ -958,7 +958,7 @@ final Map<String, String> info = <String, String>{}; if (rest != null && rest.isNotEmpty) { rest = rest.trim(); - for (String data in rest.split(' ')) { + for (final String data in rest.split(' ')) { if (data.contains(':')) { final List<String> fields = data.split(':'); info[fields[0]] = fields[1]; @@ -1165,7 +1165,7 @@ } final List<String> lines = LineSplitter.split(stdout).toList(); - for (String line in lines) { + for (final String line in lines) { if (!line.startsWith(device.id)) { continue; } @@ -1260,7 +1260,7 @@ @override Future<void> dispose() async { - for (ForwardedPort port in forwardedPorts) { + for (final ForwardedPort port in forwardedPorts) { await unforward(port); } }
diff --git a/packages/flutter_tools/lib/src/android/android_emulator.dart b/packages/flutter_tools/lib/src/android/android_emulator.dart index 5a7a04e..b7c0557 100644 --- a/packages/flutter_tools/lib/src/android/android_emulator.dart +++ b/packages/flutter_tools/lib/src/android/android_emulator.dart
@@ -85,7 +85,7 @@ /// Parse the given `emulator -list-avds` output in [text], and fill out the given list /// of emulators by reading information from the relevant ini files. void extractEmulatorAvdInfo(String text, List<AndroidEmulator> emulators) { - for (String id in text.trim().split('\n').where((String l) => l != '')) { + for (final String id in text.trim().split('\n').where((String l) => l != '')) { emulators.add(_loadEmulatorInfo(id)); } } @@ -125,7 +125,7 @@ // Split into name/value .map<List<String>>((String l) => l.split('=')); - for (List<String> property in properties) { + for (final List<String> property in properties) { results[property[0].trim()] = property[1].trim(); }
diff --git a/packages/flutter_tools/lib/src/android/android_sdk.dart b/packages/flutter_tools/lib/src/android/android_sdk.dart index 7c4ab74..50fc605 100644 --- a/packages/flutter_tools/lib/src/android/android_sdk.dart +++ b/packages/flutter_tools/lib/src/android/android_sdk.dart
@@ -215,7 +215,7 @@ .map<String>((String line) => line.trim()) .where((String line) => line.isNotEmpty); final Map<String, String> properties = <String, String>{}; - for (String line in propertiesFileLines) { + for (final String line in propertiesFileLines) { final List<String> parts = line.split(' = '); if (parts.length == 2) { properties[parts[0]] = parts[1];
diff --git a/packages/flutter_tools/lib/src/android/android_studio.dart b/packages/flutter_tools/lib/src/android/android_studio.dart index 32014e2..f7ebfb4 100644 --- a/packages/flutter_tools/lib/src/android/android_studio.dart +++ b/packages/flutter_tools/lib/src/android/android_studio.dart
@@ -183,7 +183,7 @@ .directory(path) .listSync(followLinks: false) .whereType<Directory>(); - for (Directory directory in directories) { + for (final Directory directory in directories) { final String name = directory.basename; // An exact match, or something like 'Android Studio 3.0 Preview.app'. if (name.startsWith('Android Studio') && name.endsWith('.app')) { @@ -236,7 +236,7 @@ // Read all $HOME/.AndroidStudio*/system/.home files. There may be several // pointing to the same installation, so we grab only the latest one. if (homeDirPath != null && globals.fs.directory(homeDirPath).existsSync()) { - for (FileSystemEntity entity in globals.fs.directory(homeDirPath).listSync(followLinks: false)) { + for (final FileSystemEntity entity in globals.fs.directory(homeDirPath).listSync(followLinks: false)) { if (entity is Directory && entity.basename.startsWith('.AndroidStudio')) { final AndroidStudio studio = AndroidStudio.fromHomeDot(entity); if (studio != null && !_hasStudioAt(studio.directory, newerThan: studio.version)) {
diff --git a/packages/flutter_tools/lib/src/android/gradle.dart b/packages/flutter_tools/lib/src/android/gradle.dart index 676599a..82364a1 100644 --- a/packages/flutter_tools/lib/src/android/gradle.dart +++ b/packages/flutter_tools/lib/src/android/gradle.dart
@@ -116,7 +116,7 @@ if (!appGradle.existsSync()) { return false; } - for (String line in appGradle.readAsLinesSync()) { + for (final String line in appGradle.readAsLinesSync()) { if (line.contains(RegExp(r'apply from: .*/flutter.gradle')) || line.contains("def flutterPluginVersion = 'managed'")) { return true; @@ -184,7 +184,7 @@ existingVariants.add(settingsAarContent); bool exactMatch = false; - for (String fileContentVariant in existingVariants) { + for (final String fileContentVariant in existingVariants) { if (currentFileContent.trim() == fileContentVariant.trim()) { exactMatch = true; break; @@ -465,7 +465,7 @@ final File apkShaFile = apkDirectory.childFile('app.apk.sha1'); apkShaFile.writeAsStringSync(_calculateSha(apkFiles.first)); - for (File apkFile in apkFiles) { + for (final File apkFile in apkFiles) { final String appSize = (buildInfo.mode == BuildMode.debug) ? '' // Don't display the size when building a debug variant. : ' (${getSizeAsMB(apkFile.lengthSync())})'; @@ -618,7 +618,7 @@ dependencies {'''); - for (String buildMode in buildModes) { + for (final String buildMode in buildModes) { globals.printStatus(''' ${buildMode}Implementation '$androidPackage:flutter_$buildMode:$buildNumber'''); } @@ -647,7 +647,7 @@ String _hex(List<int> bytes) { final StringBuffer result = StringBuffer(); - for (int part in bytes) { + for (final int part in bytes) { result.write('${part < 16 ? '0' : ''}${part.toRadixString(16)}'); } return result.toString(); @@ -707,7 +707,7 @@ return; } final List<String> plugins = flutterPluginFile.readAsStringSync().split('\n'); - for (String plugin in plugins) { + for (final String plugin in plugins) { final List<String> pluginParts = plugin.split('='); if (pluginParts.length != 2) { continue; @@ -882,7 +882,7 @@ } final Iterable<xml.XmlElement> project = document.findElements('project'); assert(project.isNotEmpty); - for (xml.XmlElement versionElement in document.findAllElements('version')) { + for (final xml.XmlElement versionElement in document.findAllElements('version')) { if (versionElement.parent == project.first) { return versionElement.text; } @@ -919,7 +919,7 @@ 'flutter_embedding_$buildMode.pom', ) ); - for (String artifact in const <String>['pom', 'jar']) { + for (final String artifact in const <String>['pom', 'jar']) { // The Android embedding artifacts. _createSymlink( globals.fs.path.join(
diff --git a/packages/flutter_tools/lib/src/android/gradle_errors.dart b/packages/flutter_tools/lib/src/android/gradle_errors.dart index be2c00a..9d5e63b 100644 --- a/packages/flutter_tools/lib/src/android/gradle_errors.dart +++ b/packages/flutter_tools/lib/src/android/gradle_errors.dart
@@ -283,7 +283,7 @@ ); // Extract build types and product flavors. final Set<String> variants = <String>{}; - for (String task in tasksRunResult.stdout.split('\n')) { + for (final String task in tasksRunResult.stdout.split('\n')) { final Match match = _assembleTaskPattern.matchAsPrefix(task); if (match != null) { final String variant = match.group(1).toLowerCase();
diff --git a/packages/flutter_tools/lib/src/aot.dart b/packages/flutter_tools/lib/src/aot.dart index bbf4c0e..976eb09 100644 --- a/packages/flutter_tools/lib/src/aot.dart +++ b/packages/flutter_tools/lib/src/aot.dart
@@ -89,7 +89,7 @@ if (platform == TargetPlatform.ios) { // Determine which iOS architectures to build for. final Map<DarwinArch, String> iosBuilds = <DarwinArch, String>{}; - for (DarwinArch arch in iosBuildArchs) { + for (final DarwinArch arch in iosBuildArchs) { iosBuilds[arch] = globals.fs.path.join(outputPath, getNameForDarwinArch(arch)); } @@ -224,7 +224,7 @@ )); status?.stop(); if (!result.success) { - for (ExceptionMeasurement measurement in result.exceptions.values) { + for (final ExceptionMeasurement measurement in result.exceptions.values) { globals.printError('Target ${measurement.target} failed: ${measurement.exception}', stackTrace: measurement.fatal ? measurement.stackTrace
diff --git a/packages/flutter_tools/lib/src/application_package.dart b/packages/flutter_tools/lib/src/application_package.dart index 27625a3..034f02d 100644 --- a/packages/flutter_tools/lib/src/application_package.dart +++ b/packages/flutter_tools/lib/src/application_package.dart
@@ -213,16 +213,16 @@ final String packageId = manifests.first.getAttribute('package'); String launchActivity; - for (xml.XmlElement activity in document.findAllElements('activity')) { + for (final xml.XmlElement activity in document.findAllElements('activity')) { final String enabled = activity.getAttribute('android:enabled'); if (enabled != null && enabled == 'false') { continue; } - for (xml.XmlElement element in activity.findElements('intent-filter')) { + for (final xml.XmlElement element in activity.findElements('intent-filter')) { String actionName = ''; String categoryName = ''; - for (xml.XmlNode node in element.children) { + for (final xml.XmlNode node in element.children) { if (node is! xml.XmlElement) { continue; } @@ -511,7 +511,7 @@ static bool isAttributeWithValuePresent(_Element baseElement, String childElement, String attributeName, String attributeValue) { final Iterable<_Element> allElements = baseElement.allElements(childElement); - for (_Element oneElement in allElements) { + for (final _Element oneElement in allElements) { final String elementAttributeValue = oneElement ?.firstAttribute(attributeName) ?.value; @@ -535,7 +535,7 @@ final _Element manifest = _Element.fromLine(lines[manifestLine], null); _Element currentElement = manifest; - for (String line in lines.skip(manifestLine)) { + for (final String line in lines.skip(manifestLine)) { final String trimLine = line.trimLeft(); final int level = line.length - trimLine.length; @@ -564,7 +564,7 @@ final Iterable<_Element> activities = application.allElements('activity'); _Element launchActivity; - for (_Element activity in activities) { + for (final _Element activity in activities) { final _Attribute enabled = activity.firstAttribute('android:enabled'); final Iterable<_Element> intentFilters = activity.allElements('intent-filter'); final bool isEnabledByDefault = enabled == null; @@ -573,7 +573,7 @@ continue; } - for (_Element element in intentFilters) { + for (final _Element element in intentFilters) { final bool isMainAction = isAttributeWithValuePresent( element, 'action', 'android:name', '"android.intent.action.MAIN"'); if (!isMainAction) {
diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart index 60f6ef6..e9d7c46 100644 --- a/packages/flutter_tools/lib/src/artifacts.dart +++ b/packages/flutter_tools/lib/src/artifacts.dart
@@ -509,7 +509,7 @@ String _genSnapshotPath() { const List<String> clangDirs = <String>['.', 'clang_x64', 'clang_x86', 'clang_i386']; final String genSnapshotName = _artifactToFileName(Artifact.genSnapshot); - for (String clangDir in clangDirs) { + for (final String clangDir in clangDirs) { final String genSnapshotPath = globals.fs.path.join(engineOutPath, clangDir, genSnapshotName); if (globals.processManager.canRun(genSnapshotPath)) { return genSnapshotPath;
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart index 3c151c9..d1a4706 100644 --- a/packages/flutter_tools/lib/src/asset.dart +++ b/packages/flutter_tools/lib/src/asset.dart
@@ -89,11 +89,11 @@ return true; } - for (Directory directory in _wildcardDirectories.values) { + for (final Directory directory in _wildcardDirectories.values) { if (!directory.existsSync()) { return true; // directory was deleted. } - for (File file in directory.listSync().whereType<File>()) { + for (final File file in directory.listSync().whereType<File>()) { final DateTime dateTime = file.statSync().modified; if (dateTime == null) { continue; @@ -166,7 +166,7 @@ ); // Add fonts and assets from packages. - for (String packageName in packageMap.map.keys) { + for (final String packageName in packageMap.map.keys) { final Uri package = packageMap.map[packageName]; if (package != null && package.scheme == 'file') { final String packageManifestPath = globals.fs.path.fromUri(package.resolve('../pubspec.yaml')); @@ -204,7 +204,7 @@ // Save the contents of each image, image variant, and font // asset in entries. - for (_Asset asset in assetVariants.keys) { + for (final _Asset asset in assetVariants.keys) { if (!asset.assetFileExists && assetVariants[asset].isEmpty) { globals.printStatus('Error detected in pubspec.yaml:', emphasis: true); globals.printError('No file or variants found for $asset.\n'); @@ -220,7 +220,7 @@ assert(!assetVariants[asset].contains(asset)); assetVariants[asset].insert(0, asset); } - for (_Asset variant in assetVariants[asset]) { + for (final _Asset variant in assetVariants[asset]) { assert(variant.assetFileExists); entries[variant.entryUri.path] ??= DevFSFileContent(variant.assetFile); } @@ -230,13 +230,13 @@ if (flutterManifest.usesMaterialDesign && includeDefaultFonts) ..._getMaterialAssets(_fontSetMaterial), ]; - for (_Asset asset in materialAssets) { + for (final _Asset asset in materialAssets) { assert(asset.assetFileExists); entries[asset.entryUri.path] ??= DevFSFileContent(asset.assetFile); } // Update wildcard directories we we can detect changes in them. - for (Uri uri in wildcardDirectories) { + for (final Uri uri in wildcardDirectories) { _wildcardDirectories[uri] ??= globals.fs.directory(uri); } @@ -321,8 +321,8 @@ List<_Asset> _getMaterialAssets(String fontSet) { final List<_Asset> result = <_Asset>[]; - for (Map<String, dynamic> family in _getMaterialFonts(fontSet)) { - for (Map<dynamic, dynamic> font in family['fonts']) { + for (final Map<String, dynamic> family in _getMaterialFonts(fontSet)) { + for (final Map<dynamic, dynamic> font in family['fonts']) { final Uri entryUri = globals.fs.path.toUri(font['asset'] as String); result.add(_Asset( baseDir: globals.fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'), @@ -358,7 +358,7 @@ // sources, and might need to include a license for each one.) final Map<String, Set<String>> packageLicenses = <String, Set<String>>{}; final Set<String> allPackages = <String>{}; - for (String packageName in packageMap.map.keys) { + for (final String packageName in packageMap.map.keys) { final Uri package = packageMap.map[packageName]; if (package == null || package.scheme != 'file') { continue; @@ -369,7 +369,7 @@ } final List<String> rawLicenses = file.readAsStringSync().split(_licenseSeparator); - for (String rawLicense in rawLicenses) { + for (final String rawLicense in rawLicenses) { List<String> packageNames; String licenseText; if (rawLicenses.length > 1) { @@ -421,9 +421,9 @@ .keys.toList() ..sort(_byBasename); - for (_Asset main in sortedKeys) { + for (final _Asset main in sortedKeys) { jsonObject[main.entryUri.path] = <String>[ - for (_Asset variant in assetVariants[main]) + for (final _Asset variant in assetVariants[main]) variant.entryUri.path, ]; } @@ -458,9 +458,9 @@ PackageMap packageMap, ) { final List<Font> packageFonts = <Font>[]; - for (Font font in manifest.fonts) { + for (final Font font in manifest.fonts) { final List<FontAsset> packageFontAssets = <FontAsset>[]; - for (FontAsset fontAsset in font.fontAssets) { + for (final FontAsset fontAsset in font.fontAssets) { final Uri assetUri = fontAsset.assetUri; if (assetUri.pathSegments.first == 'packages' && !globals.fs.isFileSync(globals.fs.path.fromUri(packageMap.map[packageName].resolve('../${assetUri.path}')))) { @@ -513,7 +513,7 @@ if (_cache[directory] == null) { final List<String> paths = <String>[]; - for (FileSystemEntity entity in globals.fs.directory(directory).listSync(recursive: true)) { + for (final FileSystemEntity entity in globals.fs.directory(directory).listSync(recursive: true)) { final String path = entity.path; if (globals.fs.isFileSync(path) && !_excluded.any((String exclude) => path.startsWith(exclude))) { paths.add(path); @@ -521,7 +521,7 @@ } final Map<String, List<String>> variants = <String, List<String>>{}; - for (String path in paths) { + for (final String path in paths) { final String variantName = globals.fs.path.basename(path); if (directory == globals.fs.path.dirname(path)) { continue; @@ -572,7 +572,7 @@ final Map<_Asset, List<_Asset>> result = <_Asset, List<_Asset>>{}; final _AssetDirectoryCache cache = _AssetDirectoryCache(excludeDirs); - for (Uri assetUri in flutterManifest.assets) { + for (final Uri assetUri in flutterManifest.assets) { if (assetUri.toString().endsWith('/')) { wildcardDirectories.add(assetUri); _parseAssetsFromFolder(packageMap, flutterManifest, assetBase, @@ -586,8 +586,8 @@ } // Add assets referenced in the fonts section of the manifest. - for (Font font in flutterManifest.fonts) { - for (FontAsset fontAsset in font.fontAssets) { + for (final Font font in flutterManifest.fonts) { + for (final FontAsset fontAsset in font.fontAssets) { final _Asset baseAsset = _resolveAsset( packageMap, assetBase, @@ -626,7 +626,7 @@ final List<FileSystemEntity> lister = globals.fs.directory(directoryPath).listSync(); - for (FileSystemEntity entity in lister) { + for (final FileSystemEntity entity in lister) { if (entity is File) { final String relativePath = globals.fs.path.relative(entity.path, from: assetBase); @@ -655,7 +655,7 @@ packageName, ); final List<_Asset> variants = <_Asset>[]; - for (String path in cache.variantsFor(asset.assetFile.path)) { + for (final String path in cache.variantsFor(asset.assetFile.path)) { final String relativePath = globals.fs.path.relative(path, from: asset.baseDir); final Uri relativeUri = globals.fs.path.toUri(relativePath); final Uri entryUri = asset.symbolicPrefixUri == null
diff --git a/packages/flutter_tools/lib/src/base/build.dart b/packages/flutter_tools/lib/src/base/build.dart index 9d5c8fc..15e7bc9 100644 --- a/packages/flutter_tools/lib/src/base/build.dart +++ b/packages/flutter_tools/lib/src/base/build.dart
@@ -185,7 +185,7 @@ final bool stripSymbols = platform == TargetPlatform.ios && buildMode == BuildMode.release && bitcode; if (stripSymbols) { final IOSink sink = globals.fs.file('$assembly.stripped.S').openWrite(); - for (String line in globals.fs.file(assembly).readAsLinesSync()) { + for (final String line in globals.fs.file(assembly).readAsLinesSync()) { if (line.startsWith('.section __DWARF')) { break; }
diff --git a/packages/flutter_tools/lib/src/base/file_system.dart b/packages/flutter_tools/lib/src/base/file_system.dart index 4100d77..6e3ccce 100644 --- a/packages/flutter_tools/lib/src/base/file_system.dart +++ b/packages/flutter_tools/lib/src/base/file_system.dart
@@ -42,7 +42,7 @@ destDir.createSync(recursive: true); } - for (FileSystemEntity entity in srcDir.listSync()) { + for (final FileSystemEntity entity in srcDir.listSync()) { final String newPath = destDir.fileSystem.path.join(destDir.path, entity.basename); if (entity is File) { final File newFile = destDir.fileSystem.file(newPath);
diff --git a/packages/flutter_tools/lib/src/base/fingerprint.dart b/packages/flutter_tools/lib/src/base/fingerprint.dart index 5fc0b2f..9ef80c7 100644 --- a/packages/flutter_tools/lib/src/base/fingerprint.dart +++ b/packages/flutter_tools/lib/src/base/fingerprint.dart
@@ -87,7 +87,7 @@ List<String> _getPaths() { final Set<String> paths = <String>{ ..._paths, - for (String depfilePath in _depfilePaths) + for (final String depfilePath in _depfilePaths) ...readDepfile(depfilePath), }; final FingerprintPathFilter filter = _pathFilter ?? (String path) => true; @@ -108,7 +108,7 @@ } _checksums = <String, String>{}; - for (File file in files) { + for (final File file in files) { final List<int> bytes = file.readAsBytesSync(); _checksums[file.path] = md5.convert(bytes).toString(); }
diff --git a/packages/flutter_tools/lib/src/base/net.dart b/packages/flutter_tools/lib/src/base/net.dart index 150e1a1..38fa19c 100644 --- a/packages/flutter_tools/lib/src/base/net.dart +++ b/packages/flutter_tools/lib/src/base/net.dart
@@ -187,7 +187,7 @@ @override void writeAll(Iterable<dynamic> objects, [ String separator = '' ]) { bool addSeparator = false; - for (dynamic object in objects) { + for (final dynamic object in objects) { if (addSeparator) { write(separator); }
diff --git a/packages/flutter_tools/lib/src/base/os.dart b/packages/flutter_tools/lib/src/base/os.dart index f07c758..b0cd1d4 100644 --- a/packages/flutter_tools/lib/src/base/os.dart +++ b/packages/flutter_tools/lib/src/base/os.dart
@@ -248,7 +248,7 @@ @override void zip(Directory data, File zipFile) { final Archive archive = Archive(); - for (FileSystemEntity entity in data.listSync(recursive: true)) { + for (final FileSystemEntity entity in data.listSync(recursive: true)) { if (entity is! File) { continue; } @@ -299,7 +299,7 @@ } void _unpackArchive(Archive archive, Directory targetDirectory) { - for (ArchiveFile archiveFile in archive.files) { + for (final ArchiveFile archiveFile in archive.files) { // The archive package doesn't correctly set isFile. if (!archiveFile.isFile || archiveFile.name.endsWith('/')) { continue;
diff --git a/packages/flutter_tools/lib/src/base/process.dart b/packages/flutter_tools/lib/src/base/process.dart index e2e6128..fb634e8 100644 --- a/packages/flutter_tools/lib/src/base/process.dart +++ b/packages/flutter_tools/lib/src/base/process.dart
@@ -78,11 +78,11 @@ globals.printTrace('Running shutdown hooks'); _shutdownHooksRunning = true; try { - for (ShutdownStage stage in _shutdownHooks.keys.toList()..sort()) { + for (final ShutdownStage stage in _shutdownHooks.keys.toList()..sort()) { globals.printTrace('Shutdown hook priority ${stage.priority}'); final List<ShutdownHook> hooks = _shutdownHooks.remove(stage); final List<Future<dynamic>> futures = <Future<dynamic>>[]; - for (ShutdownHook shutdownHook in hooks) { + for (final ShutdownHook shutdownHook in hooks) { final FutureOr<dynamic> result = shutdownHook(); if (result is Future<dynamic>) { futures.add(result);
diff --git a/packages/flutter_tools/lib/src/base/signals.dart b/packages/flutter_tools/lib/src/base/signals.dart index 3899d4f..28b9e67 100644 --- a/packages/flutter_tools/lib/src/base/signals.dart +++ b/packages/flutter_tools/lib/src/base/signals.dart
@@ -114,7 +114,7 @@ } Future<void> _handleSignal(ProcessSignal s) async { - for (SignalHandler handler in _handlersList[s]) { + for (final SignalHandler handler in _handlersList[s]) { try { await asyncGuard<void>(() async => handler(s)); } catch (e) {
diff --git a/packages/flutter_tools/lib/src/base/utils.dart b/packages/flutter_tools/lib/src/base/utils.dart index 0cfcc72..b246d10 100644 --- a/packages/flutter_tools/lib/src/base/utils.dart +++ b/packages/flutter_tools/lib/src/base/utils.dart
@@ -319,7 +319,7 @@ hangingIndent ??= 0; final List<String> splitText = text.split('\n'); final List<String> result = <String>[]; - for (String line in splitText) { + for (final String line in splitText) { String trimmedText = line.trimLeft(); final String leadingWhitespace = line.substring(0, line.length - trimmedText.length); List<String> notIndented; @@ -433,7 +433,7 @@ final RegExp characterOrCode = RegExp('(\u001b\[[0-9;]*m|.)', multiLine: true); List<_AnsiRun> result = <_AnsiRun>[]; final StringBuffer current = StringBuffer(); - for (Match match in characterOrCode.allMatches(input)) { + for (final Match match in characterOrCode.allMatches(input)) { current.write(match[0]); if (match[0].length < 4) { // This is a regular character, write it out. @@ -461,7 +461,7 @@ final List<String> result = <String>[]; final int effectiveLength = max(columnWidth - start, kMinColumnWidth); - for (String line in text.split('\n')) { + for (final String line in text.split('\n')) { // If the line is short enough, even with ANSI codes, then we can just add // add it and move on. if (line.length <= effectiveLength || !shouldWrap) {
diff --git a/packages/flutter_tools/lib/src/base/version.dart b/packages/flutter_tools/lib/src/base/version.dart index 5e79435..e89772c 100644 --- a/packages/flutter_tools/lib/src/base/version.dart +++ b/packages/flutter_tools/lib/src/base/version.dart
@@ -52,7 +52,7 @@ /// This is the highest-numbered stable version. static Version primary(List<Version> versions) { Version primary; - for (Version version in versions) { + for (final Version version in versions) { if (primary == null || (version > primary)) { primary = version; }
diff --git a/packages/flutter_tools/lib/src/build_runner/build_runner.dart b/packages/flutter_tools/lib/src/build_runner/build_runner.dart index 082605f..0a9334e 100644 --- a/packages/flutter_tools/lib/src/build_runner/build_runner.dart +++ b/packages/flutter_tools/lib/src/build_runner/build_runner.dart
@@ -78,7 +78,7 @@ stringBuffer.writeln('dependencies:'); final YamlMap builders = flutterProject.builders; if (builders != null) { - for (String name in builders.keys.cast<String>()) { + for (final String name in builders.keys.cast<String>()) { final Object node = builders[name]; // For relative paths, make sure it is accounted for // parent directories.
diff --git a/packages/flutter_tools/lib/src/build_runner/web_compilation_delegate.dart b/packages/flutter_tools/lib/src/build_runner/web_compilation_delegate.dart index de5f20d..df9c642 100644 --- a/packages/flutter_tools/lib/src/build_runner/web_compilation_delegate.dart +++ b/packages/flutter_tools/lib/src/build_runner/web_compilation_delegate.dart
@@ -60,7 +60,7 @@ ); client.startBuild(); bool success = true; - await for (BuildResults results in client.buildResults) { + await for (final BuildResults results in client.buildResults) { final BuildResult result = results.results.firstWhere((BuildResult result) { return result.target == 'web'; }); @@ -81,7 +81,7 @@ final Iterable<Directory> childDirectories = rootDirectory .listSync() .whereType<Directory>(); - for (Directory childDirectory in childDirectories) { + for (final Directory childDirectory in childDirectories) { final String path = globals.fs.path.join(testOutputDir, 'packages', globals.fs.path.basename(childDirectory.path)); copyDirectorySync(childDirectory.childDirectory('lib'), globals.fs.directory(path)); @@ -135,7 +135,7 @@ Stream<AssetId> findAssets(Glob glob, {String package}) async* { if (package == null || packageGraph.root.name == package) { final String generatedRoot = globals.fs.path.join(generatedDirectory.path, packageGraph.root.name); - await for (io.FileSystemEntity entity in glob.list(followLinks: true, root: packageGraph.root.path)) { + await for (final io.FileSystemEntity entity in glob.list(followLinks: true, root: packageGraph.root.path)) { if (entity is io.File && _isNotHidden(entity) && !globals.fs.path.isWithin(generatedRoot, entity.path)) { yield _fileToAssetId(entity, packageGraph.root); } @@ -143,7 +143,7 @@ if (!globals.fs.isDirectorySync(generatedRoot)) { return; } - await for (io.FileSystemEntity entity in glob.list(followLinks: true, root: generatedRoot)) { + await for (final io.FileSystemEntity entity in glob.list(followLinks: true, root: generatedRoot)) { if (entity is io.File && _isNotHidden(entity)) { yield _fileToAssetId(entity, packageGraph.root, globals.fs.path.relative(generatedRoot), true); }
diff --git a/packages/flutter_tools/lib/src/build_runner/web_fs.dart b/packages/flutter_tools/lib/src/build_runner/web_fs.dart index 1e9c0bd..f4c97b6 100644 --- a/packages/flutter_tools/lib/src/build_runner/web_fs.dart +++ b/packages/flutter_tools/lib/src/build_runner/web_fs.dart
@@ -154,7 +154,7 @@ return true; } _client.startBuild(); - await for (BuildResults results in _client.buildResults) { + await for (final BuildResults results in _client.buildResults) { final BuildResult result = results.results.firstWhere((BuildResult result) { return result.target == kBuildTargetName; }); @@ -367,7 +367,7 @@ @override Future<Response> handle(Request request) async { Uri fileUri; - for (Uri uri in _searchPaths) { + for (final Uri uri in _searchPaths) { final Uri potential = uri.resolve(request.url.path); if (potential == null || !globals.fs.isFileSync(potential.toFilePath())) { continue; @@ -445,7 +445,7 @@ final Archive archive = TarDecoder().decodeBytes(dart2jsArchive.readAsBytesSync()); partFiles = globals.fs.systemTempDirectory.createTempSync('flutter_tool.') ..createSync(); - for (ArchiveFile file in archive) { + for (final ArchiveFile file in archive) { partFiles.childFile(file.name).writeAsBytesSync(file.content as List<int>); } } @@ -664,7 +664,7 @@ '--define', 'flutter_tools:shell=initializePlatform=$initializePlatform', // The following will cause build runner to only build tests that were requested. if (testTargets != null && testTargets.hasBuildFilters) - for (String buildFilter in testTargets.buildFilters) + for (final String buildFilter in testTargets.buildFilters) '--build-filter=$buildFilter', ];
diff --git a/packages/flutter_tools/lib/src/build_system/build_system.dart b/packages/flutter_tools/lib/src/build_system/build_system.dart index 1f67a56..6f4f85a 100644 --- a/packages/flutter_tools/lib/src/build_system/build_system.dart +++ b/packages/flutter_tools/lib/src/build_system/build_system.dart
@@ -138,7 +138,7 @@ inputsFiles.sources, outputFiles.sources, <Node>[ - for (Target target in dependencies) target._toNode(environment), + for (final Target target in dependencies) target._toNode(environment), ], environment, inputsFiles.containsNewDepfile, @@ -160,11 +160,11 @@ ) { final File stamp = _findStampFile(environment); final List<String> inputPaths = <String>[]; - for (File input in inputs) { + for (final File input in inputs) { inputPaths.add(input.path); } final List<String> outputPaths = <String>[]; - for (File output in outputs) { + for (final File output in outputs) { outputPaths.add(output.path); } final Map<String, Object> result = <String, Object>{ @@ -207,13 +207,13 @@ return <String, Object>{ 'name': name, 'dependencies': <String>[ - for (Target target in dependencies) target.name, + for (final Target target in dependencies) target.name, ], 'inputs': <String>[ - for (File file in resolveInputs(environment).sources) file.path, + for (final File file in resolveInputs(environment).sources) file.path, ], 'outputs': <String>[ - for (File file in resolveOutputs(environment).sources) file.path, + for (final File file in resolveOutputs(environment).sources) file.path, ], 'stamp': _findStampFile(environment).absolute.path, }; @@ -229,7 +229,7 @@ List<String> depfiles, Environment environment, { bool implicit = true, bool inputs = true, }) { final SourceVisitor collector = SourceVisitor(environment, inputs); - for (Source source in config) { + for (final Source source in config) { source.accept(collector); } depfiles.forEach(collector.visitDepfile); @@ -292,7 +292,7 @@ String buildPrefix; final List<String> keys = defines.keys.toList()..sort(); final StringBuffer buffer = StringBuffer(); - for (String key in keys) { + for (final String key in keys) { buffer.write(key); buffer.write(defines[key]); } @@ -502,10 +502,10 @@ // these files are included as both inputs and outputs then it isn't // possible to construct a DAG describing the build. void updateGraph() { - for (File output in node.outputs) { + for (final File output in node.outputs) { outputFiles[output.path] = output; } - for (File input in node.inputs) { + for (final File input in node.inputs) { final String resolvedPath = input.absolute.path; if (outputFiles.containsKey(resolvedPath)) { continue; @@ -550,7 +550,7 @@ // Delete outputs from previous stages that are no longer a part of the // build. - for (String previousOutput in node.previousOutputs) { + for (final String previousOutput in node.previousOutputs) { if (outputFiles.containsKey(previousOutput)) { continue; } @@ -614,7 +614,7 @@ } visited.add(target); stack.add(target); - for (Target dependency in target.dependencies) { + for (final Target dependency in target.dependencies) { checkInternal(dependency, visited, stack); } stack.remove(target); @@ -627,7 +627,7 @@ final String buildDirectory = environment.buildDir.resolveSymbolicLinksSync(); final String projectDirectory = environment.projectDir.resolveSymbolicLinksSync(); final List<File> missingOutputs = <File>[]; - for (File sourceFile in outputs) { + for (final File sourceFile in outputs) { if (!sourceFile.existsSync()) { missingOutputs.add(sourceFile); continue; @@ -733,13 +733,13 @@ FileHashStore fileHashStore, ) async { final Set<String> currentOutputPaths = <String>{ - for (File file in outputs) file.path, + for (final File file in outputs) file.path, }; // For each input, first determine if we've already computed the hash // for it. Then collect it to be sent off for hashing as a group. final List<File> sourcesToHash = <File>[]; final List<File> missingInputs = <File>[]; - for (File file in inputs) { + for (final File file in inputs) { if (!file.existsSync()) { missingInputs.add(file); continue; @@ -760,7 +760,7 @@ // For each output, first determine if we've already computed the hash // for it. Then collect it to be sent off for hashing as a group. - for (String previousOutput in previousOutputs) { + for (final String previousOutput in previousOutputs) { // output paths changed. if (!currentOutputPaths.contains(previousOutput)) { _dirty = true;
diff --git a/packages/flutter_tools/lib/src/build_system/depfile.dart b/packages/flutter_tools/lib/src/build_system/depfile.dart index 6e777af..6ae6021 100644 --- a/packages/flutter_tools/lib/src/build_system/depfile.dart +++ b/packages/flutter_tools/lib/src/build_system/depfile.dart
@@ -31,7 +31,7 @@ /// file must be manually specified. factory Depfile.parseDart2js(File file, File output) { final List<File> inputs = <File>[]; - for (String rawUri in file.readAsLinesSync()) { + for (final String rawUri in file.readAsLinesSync()) { if (rawUri.trim().isEmpty) { continue; } @@ -72,7 +72,7 @@ } void _writeFilesToBuffer(List<File> files, StringBuffer buffer) { - for (File outputFile in files) { + for (final File outputFile in files) { if (globals.platform.isWindows) { // Paths in a depfile have to be escaped on windows. final String escapedPath = outputFile.path.replaceAll(r'\', r'\\');
diff --git a/packages/flutter_tools/lib/src/build_system/file_hash_store.dart b/packages/flutter_tools/lib/src/build_system/file_hash_store.dart index 72925ee..0879c7b 100644 --- a/packages/flutter_tools/lib/src/build_system/file_hash_store.dart +++ b/packages/flutter_tools/lib/src/build_system/file_hash_store.dart
@@ -24,7 +24,7 @@ final int version = json['version'] as int; final List<Map<String, Object>> rawCachedFiles = (json['files'] as List<dynamic>).cast<Map<String, Object>>(); final List<FileHash> cachedFiles = <FileHash>[ - for (Map<String, Object> rawFile in rawCachedFiles) FileHash.fromJson(rawFile), + for (final Map<String, Object> rawFile in rawCachedFiles) FileHash.fromJson(rawFile), ]; return FileStorage(version, cachedFiles); } @@ -36,7 +36,7 @@ final Map<String, Object> json = <String, Object>{ 'version': version, 'files': <Object>[ - for (FileHash file in files) file.toJson(), + for (final FileHash file in files) file.toJson(), ], }; return utf8.encode(jsonEncode(json)); @@ -118,7 +118,7 @@ cacheFile.deleteSync(); return; } - for (FileHash fileHash in fileStorage.files) { + for (final FileHash fileHash in fileStorage.files) { previousHashes[fileHash.path] = fileHash.hash; } globals.printTrace('Done initializing file store'); @@ -132,7 +132,7 @@ cacheFile.createSync(recursive: true); } final List<FileHash> fileHashes = <FileHash>[]; - for (MapEntry<String, String> entry in currentHashes.entries) { + for (final MapEntry<String, String> entry in currentHashes.entries) { fileHashes.add(FileHash(entry.key, entry.value)); } final FileStorage fileStorage = FileStorage( @@ -158,7 +158,7 @@ final List<File> dirty = <File>[]; final Pool openFiles = Pool(kMaxOpenFiles); await Future.wait(<Future<void>>[ - for (File file in files) _hashFile(file, dirty, openFiles) + for (final File file in files) _hashFile(file, dirty, openFiles) ]); return dirty; }
diff --git a/packages/flutter_tools/lib/src/build_system/source.dart b/packages/flutter_tools/lib/src/build_system/source.dart index eb35f95..e0df5cb 100644 --- a/packages/flutter_tools/lib/src/build_system/source.dart +++ b/packages/flutter_tools/lib/src/build_system/source.dart
@@ -146,7 +146,7 @@ if (!globals.fs.directory(filePath).existsSync()) { throw Exception('$filePath does not exist!'); } - for (FileSystemEntity entity in globals.fs.directory(filePath).listSync()) { + for (final FileSystemEntity entity in globals.fs.directory(filePath).listSync()) { final String filename = globals.fs.path.basename(entity.path); if (wildcardSegments.isEmpty) { sources.add(globals.fs.file(entity.absolute));
diff --git a/packages/flutter_tools/lib/src/build_system/targets/ios.dart b/packages/flutter_tools/lib/src/build_system/targets/ios.dart index 1d9152a..032e270 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/ios.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/ios.dart
@@ -59,7 +59,7 @@ // If we're building multiple iOS archs the binaries need to be lipo'd // together. final List<Future<int>> pending = <Future<int>>[]; - for (DarwinArch iosArch in iosArchs) { + for (final DarwinArch iosArch in iosArchs) { pending.add(snapshotter.build( platform: targetPlatform, buildMode: buildMode,
diff --git a/packages/flutter_tools/lib/src/build_system/targets/linux.dart b/packages/flutter_tools/lib/src/build_system/targets/linux.dart index 706b788..8375ecd 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/linux.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/linux.dart
@@ -59,7 +59,7 @@ ); // The native linux artifacts are composed of 6 files and a directory (listed above) // which need to be copied to the target directory. - for (String artifact in _kLinuxArtifacts) { + for (final String artifact in _kLinuxArtifacts) { final String entityPath = globals.fs.path.join(basePath, artifact); // If this artifact is a file, just copy the source over. if (globals.fs.isFileSync(entityPath)) { @@ -79,7 +79,7 @@ } // If the artifact is the directory cpp_client_wrapper, recursively // copy every file from it. - for (File input in globals.fs.directory(entityPath) + for (final File input in globals.fs.directory(entityPath) .listSync(recursive: true) .whereType<File>()) { final String outputPath = globals.fs.path.join(
diff --git a/packages/flutter_tools/lib/src/build_system/targets/web.dart b/packages/flutter_tools/lib/src/build_system/targets/web.dart index 97e0a00..00d9f63 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/web.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/web.dart
@@ -170,7 +170,7 @@ '-Ddart.vm.profile=true' else '-Ddart.vm.product=true', - for (String dartDefine in parseDartDefines(environment)) + for (final String dartDefine in parseDartDefines(environment)) '-D$dartDefine', environment.buildDir.childFile('main.dart').path, ]); @@ -224,7 +224,7 @@ @override Future<void> build(Environment environment) async { - for (File outputFile in environment.buildDir.listSync(recursive: true).whereType<File>()) { + for (final File outputFile in environment.buildDir.listSync(recursive: true).whereType<File>()) { if (!globals.fs.path.basename(outputFile.path).contains('main.dart.js')) { continue; }
diff --git a/packages/flutter_tools/lib/src/build_system/targets/windows.dart b/packages/flutter_tools/lib/src/build_system/targets/windows.dart index 5b05aa1..ce1ee7b 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/windows.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/windows.dart
@@ -41,7 +41,7 @@ Future<void> build(Environment environment) async { // This path needs to match the prefix in the rule below. final String basePath = globals.artifacts.getArtifactPath(Artifact.windowsDesktopPath); - for (File input in globals.fs.directory(basePath) + for (final File input in globals.fs.directory(basePath) .listSync(recursive: true) .whereType<File>()) { final String outputPath = globals.fs.path.join(
diff --git a/packages/flutter_tools/lib/src/bundle.dart b/packages/flutter_tools/lib/src/bundle.dart index 2a3c938..b496587 100644 --- a/packages/flutter_tools/lib/src/bundle.dart +++ b/packages/flutter_tools/lib/src/bundle.dart
@@ -126,7 +126,7 @@ final BuildResult result = await buildSystem.build(target, environment); if (!result.success) { - for (ExceptionMeasurement measurement in result.exceptions.values) { + for (final ExceptionMeasurement measurement in result.exceptions.values) { globals.printError('Target ${measurement.target} failed: ${measurement.exception}', stackTrace: measurement.fatal ? measurement.stackTrace
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart index 821f4c2..4320f34 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart
@@ -108,7 +108,7 @@ _artifacts.add(MacOSFuchsiaSDKArtifacts(this)); _artifacts.add(FlutterRunnerSDKArtifacts(this)); _artifacts.add(FlutterRunnerDebugSymbols(this)); - for (String artifactName in IosUsbArtifacts.artifactNames) { + for (final String artifactName in IosUsbArtifacts.artifactNames) { _artifacts.add(IosUsbArtifacts(artifactName, this)); } } else { @@ -300,7 +300,7 @@ return _dyLdLibEntry; } final List<String> paths = <String>[]; - for (ArtifactSet artifact in _artifacts) { + for (final ArtifactSet artifact in _artifacts) { final Map<String, String> env = artifact.environment; if (env == null || !env.containsKey('DYLD_LIBRARY_PATH')) { continue; @@ -378,7 +378,7 @@ if (!_lockEnabled) { return; } - for (ArtifactSet artifact in _artifacts) { + for (final ArtifactSet artifact in _artifacts) { if (!requiredArtifacts.contains(artifact.developmentArtifact)) { globals.printTrace('Artifact $artifact is not required, skipping update.'); continue; @@ -409,7 +409,7 @@ final bool includeAllPlatformsState = globals.cache.includeAllPlatforms; bool allAvailible = true; globals.cache.includeAllPlatforms = includeAllPlatforms; - for (ArtifactSet cachedArtifact in _artifacts) { + for (final ArtifactSet cachedArtifact in _artifacts) { if (cachedArtifact is EngineCachedArtifact) { allAvailible &= await cachedArtifact.checkForArtifacts(engineVersion); } @@ -496,7 +496,7 @@ /// Clear any zip/gzip files downloaded. void _removeDownloadedFiles() { - for (File f in downloadedFiles) { + for (final File f in downloadedFiles) { try { f.deleteSync(); } on FileSystemException catch (e) { @@ -606,7 +606,7 @@ final Uri url = Uri.parse('${cache.storageBaseUrl}/flutter_infra/flutter/$version/$platformName.zip'); await _downloadZipArchive('Downloading Web SDK...', url, location); // This is a temporary work-around for not being able to safely download into a shared directory. - for (FileSystemEntity entity in location.listSync(recursive: true)) { + for (final FileSystemEntity entity in location.listSync(recursive: true)) { if (entity is File) { final List<String> segments = globals.fs.path.split(entity.path); segments.remove('flutter_web_sdk'); @@ -643,21 +643,21 @@ @override bool isUpToDateInner() { final Directory pkgDir = cache.getCacheDir('pkg'); - for (String pkgName in getPackageDirs()) { + for (final String pkgName in getPackageDirs()) { final String pkgPath = globals.fs.path.join(pkgDir.path, pkgName); if (!globals.fs.directory(pkgPath).existsSync()) { return false; } } - for (List<String> toolsDir in getBinaryDirs()) { + for (final List<String> toolsDir in getBinaryDirs()) { final Directory dir = globals.fs.directory(globals.fs.path.join(location.path, toolsDir[0])); if (!dir.existsSync()) { return false; } } - for (String licenseDir in getLicenseDirs()) { + for (final String licenseDir in getLicenseDirs()) { final File file = globals.fs.file(globals.fs.path.join(location.path, licenseDir, 'LICENSE')); if (!file.existsSync()) { return false; @@ -671,11 +671,11 @@ final String url = '${cache.storageBaseUrl}/flutter_infra/flutter/$version/'; final Directory pkgDir = cache.getCacheDir('pkg'); - for (String pkgName in getPackageDirs()) { + for (final String pkgName in getPackageDirs()) { await _downloadZipArchive('Downloading package $pkgName...', Uri.parse(url + pkgName + '.zip'), pkgDir); } - for (List<String> toolsDir in getBinaryDirs()) { + for (final List<String> toolsDir in getBinaryDirs()) { final String cacheDir = toolsDir[0]; final String urlPath = toolsDir[1]; final Directory dir = globals.fs.directory(globals.fs.path.join(location.path, cacheDir)); @@ -684,7 +684,7 @@ _makeFilesExecutable(dir); const List<String> frameworkNames = <String>['Flutter', 'FlutterMacOS']; - for (String frameworkName in frameworkNames) { + for (final String frameworkName in frameworkNames) { final File frameworkZip = globals.fs.file(globals.fs.path.join(dir.path, '$frameworkName.framework.zip')); if (frameworkZip.existsSync()) { final Directory framework = globals.fs.directory(globals.fs.path.join(dir.path, '$frameworkName.framework')); @@ -695,7 +695,7 @@ } final File licenseSource = cache.getLicenseFile(); - for (String licenseDir in getLicenseDirs()) { + for (final String licenseDir in getLicenseDirs()) { final String licenseDestinationPath = globals.fs.path.join(location.path, licenseDir, 'LICENSE'); await licenseSource.copy(licenseDestinationPath); } @@ -706,7 +706,7 @@ final String url = '${cache.storageBaseUrl}/flutter_infra/flutter/$engineVersion/'; bool exists = false; - for (String pkgName in getPackageDirs()) { + for (final String pkgName in getPackageDirs()) { exists = await _doesRemoteExist('Checking package $pkgName is available...', Uri.parse(url + pkgName + '.zip')); if (!exists) { @@ -714,7 +714,7 @@ } } - for (List<String> toolsDir in getBinaryDirs()) { + for (final List<String> toolsDir in getBinaryDirs()) { final String cacheDir = toolsDir[0]; final String urlPath = toolsDir[1]; exists = await _doesRemoteExist('Checking $cacheDir tools are available...', @@ -728,7 +728,7 @@ void _makeFilesExecutable(Directory dir) { os.chmod(dir, 'a+r,a+x'); - for (FileSystemEntity entity in dir.listSync(recursive: true)) { + for (final FileSystemEntity entity in dir.listSync(recursive: true)) { if (entity is File) { final FileStat stat = entity.statSync(); final bool isUserExecutable = ((stat.mode >> 6) & 0x1) == 1; @@ -1000,7 +1000,7 @@ if (!globals.fs.directory(wrapperDir).existsSync()) { return false; } - for (String scriptName in _gradleScripts) { + for (final String scriptName in _gradleScripts) { final File scriptFile = globals.fs.file(globals.fs.path.join(wrapperDir.path, scriptName)); if (!scriptFile.existsSync()) { return false; @@ -1189,7 +1189,7 @@ if (executables == null) { return true; } - for (String executable in executables) { + for (final String executable in executables) { if (!location.childFile(executable).existsSync()) { return false; }
diff --git a/packages/flutter_tools/lib/src/codegen.dart b/packages/flutter_tools/lib/src/codegen.dart index 75e1072..6be4fed 100644 --- a/packages/flutter_tools/lib/src/codegen.dart +++ b/packages/flutter_tools/lib/src/codegen.dart
@@ -118,7 +118,7 @@ codeGenerator.updatePackages(flutterProject); final CodegenDaemon codegenDaemon = await codeGenerator.daemon(flutterProject); codegenDaemon.startBuild(); - await for (CodegenStatus codegenStatus in codegenDaemon.buildResults) { + await for (final CodegenStatus codegenStatus in codegenDaemon.buildResults) { if (codegenStatus == CodegenStatus.Failed) { globals.printError('Code generation failed, build may have compile errors.'); break;
diff --git a/packages/flutter_tools/lib/src/commands/analyze_base.dart b/packages/flutter_tools/lib/src/commands/analyze_base.dart index 568e117..63fb3dc 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_base.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_base.dart
@@ -86,8 +86,8 @@ bool get hasConflict => values.length > 1; bool get hasConflictAffectingFlutterRepo { assert(globals.fs.path.isAbsolute(Cache.flutterRoot)); - for (List<String> targetSources in values.values) { - for (String source in targetSources) { + for (final List<String> targetSources in values.values) { + for (final String source in targetSources) { assert(globals.fs.path.isAbsolute(source)); if (globals.fs.path.isWithin(Cache.flutterRoot, source)) { return true; @@ -100,11 +100,11 @@ assert(hasConflict); final List<String> targets = values.keys.toList(); targets.sort((String a, String b) => values[b].length.compareTo(values[a].length)); - for (String target in targets) { + for (final String target in targets) { final int count = values[target].length; result.writeln(' $count ${count == 1 ? 'source wants' : 'sources want'} "$target":'); bool canonical = false; - for (String source in values[target]) { + for (final String source in values[target]) { result.writeln(' $source'); if (source == canonicalSource) { canonical = true; @@ -140,7 +140,7 @@ .readAsStringSync() .split('\n') .where((String line) => !line.startsWith(RegExp(r'^ *#'))); - for (String line in lines) { + for (final String line in lines) { final int colon = line.indexOf(':'); if (colon > 0) { final String packageName = line.substring(0, colon); @@ -165,7 +165,7 @@ } void checkForConflictingDependencies(Iterable<Directory> pubSpecDirectories, PackageDependencyTracker dependencies) { - for (Directory directory in pubSpecDirectories) { + for (final Directory directory in pubSpecDirectories) { final String pubSpecYamlPath = globals.fs.path.join(directory.path, 'pubspec.yaml'); final File pubSpecYamlFile = globals.fs.file(pubSpecYamlPath); if (pubSpecYamlFile.existsSync()) { @@ -219,7 +219,7 @@ String generateConflictReport() { assert(hasConflicts); final StringBuffer result = StringBuffer(); - for (String package in packages.keys.where((String package) => packages[package].hasConflict)) { + for (final String package in packages.keys.where((String package) => packages[package].hasConflict)) { result.writeln('Package "$package" has conflicts:'); packages[package].describeConflict(result); } @@ -228,7 +228,7 @@ Map<String, String> asPackageMap() { final Map<String, String> result = <String, String>{}; - for (String package in packages.keys) { + for (final String package in packages.keys) { result[package] = packages[package].target; } return result;
diff --git a/packages/flutter_tools/lib/src/commands/analyze_continuously.dart b/packages/flutter_tools/lib/src/commands/analyze_continuously.dart index 2e9802c..c6271d5 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_continuously.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_continuously.dart
@@ -43,7 +43,7 @@ analysisTarget = 'Flutter repository'; globals.printTrace('Analyzing Flutter repository:'); - for (String projectPath in repoRoots) { + for (final String projectPath in repoRoots) { globals.printTrace(' ${globals.fs.path.relative(projectPath)}'); } } else { @@ -91,7 +91,7 @@ // Remove errors for deleted files, sort, and print errors. final List<AnalysisError> errors = <AnalysisError>[]; - for (String path in analysisErrors.keys.toList()) { + for (final String path in analysisErrors.keys.toList()) { if (globals.fs.isFileSync(path)) { errors.addAll(analysisErrors[path]); } else { @@ -112,7 +112,7 @@ errors.sort(); - for (AnalysisError error in errors) { + for (final AnalysisError error in errors) { globals.printStatus(error.toString()); if (error.code != null) { globals.printTrace('error code: ${error.code}');
diff --git a/packages/flutter_tools/lib/src/commands/analyze_once.dart b/packages/flutter_tools/lib/src/commands/analyze_once.dart index aaa44df..db2b724 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_once.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_once.dart
@@ -41,7 +41,7 @@ final Set<String> directories = Set<String>.from(argResults.rest .map<String>((String path) => globals.fs.path.canonicalize(path))); if (directories.isNotEmpty) { - for (String directory in directories) { + for (final String directory in directories) { final FileSystemEntityType type = globals.fs.typeSync(directory); if (type == FileSystemEntityType.notFound) { @@ -138,7 +138,7 @@ globals.printStatus(''); } errors.sort(); - for (AnalysisError error in errors) { + for (final AnalysisError error in errors) { globals.printStatus(error.toString(), hangingIndent: 7); }
diff --git a/packages/flutter_tools/lib/src/commands/assemble.dart b/packages/flutter_tools/lib/src/commands/assemble.dart index 583412b..75fc58d 100644 --- a/packages/flutter_tools/lib/src/commands/assemble.dart +++ b/packages/flutter_tools/lib/src/commands/assemble.dart
@@ -115,11 +115,11 @@ } final String name = argResults.rest.first; final Map<String, Target> targetMap = <String, Target>{ - for (Target target in _kDefaultTargets) + for (final Target target in _kDefaultTargets) target.name: target }; final List<Target> results = <Target>[ - for (String targetName in argResults.rest) + for (final String targetName in argResults.rest) if (targetMap.containsKey(targetName)) targetMap[targetName] ]; @@ -153,7 +153,7 @@ Map<String, String> _parseDefines(List<String> values) { final Map<String, String> results = <String, String>{}; - for (String chunk in values) { + for (final String chunk in values) { final int indexEquals = chunk.indexOf('='); if (indexEquals == -1) { throwToolExit('Improperly formatted define flag: $chunk'); @@ -179,7 +179,7 @@ : null, )); if (!result.success) { - for (ExceptionMeasurement measurement in result.exceptions.values) { + for (final ExceptionMeasurement measurement in result.exceptions.values) { globals.printError('Target ${measurement.target} failed: ${measurement.exception}', stackTrace: measurement.fatal ? measurement.stackTrace @@ -209,7 +209,7 @@ final File file = globals.fs.file(path); final StringBuffer buffer = StringBuffer(); // These files are already sorted. - for (File file in files) { + for (final File file in files) { buffer.writeln(file.path); } final String newContents = buffer.toString();
diff --git a/packages/flutter_tools/lib/src/commands/attach.dart b/packages/flutter_tools/lib/src/commands/attach.dart index 3ce4a89..421b425 100644 --- a/packages/flutter_tools/lib/src/commands/attach.dart +++ b/packages/flutter_tools/lib/src/commands/attach.dart
@@ -226,7 +226,7 @@ } catch (_) { isolateDiscoveryProtocol?.dispose(); final List<ForwardedPort> ports = device.portForwarder.forwardedPorts.toList(); - for (ForwardedPort port in ports) { + for (final ForwardedPort port in ports) { await device.portForwarder.unforward(port); } rethrow; @@ -329,7 +329,7 @@ } } finally { final List<ForwardedPort> ports = device.portForwarder.forwardedPorts.toList(); - for (ForwardedPort port in ports) { + for (final ForwardedPort port in ports) { await device.portForwarder.unforward(port); } }
diff --git a/packages/flutter_tools/lib/src/commands/build_aar.dart b/packages/flutter_tools/lib/src/commands/build_aar.dart index 84a83d8..7b798c6 100644 --- a/packages/flutter_tools/lib/src/commands/build_aar.dart +++ b/packages/flutter_tools/lib/src/commands/build_aar.dart
@@ -101,7 +101,7 @@ ? stringArg('build-number') : '1.0'; - for (String buildMode in const <String>['debug', 'profile', 'release']) { + for (final String buildMode in const <String>['debug', 'profile', 'release']) { if (boolArg(buildMode)) { androidBuildInfo.add(AndroidBuildInfo( BuildInfo(BuildMode.fromName(buildMode), stringArg('flavor')),
diff --git a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart index bd48a12..3ac3b48 100644 --- a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart +++ b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart
@@ -158,7 +158,7 @@ bundleBuilder ??= BundleBuilder(); cache ??= globals.cache; - for (BuildMode mode in buildModes) { + for (final BuildMode mode in buildModes) { globals.printStatus('Building framework for $iosProject in ${getNameForBuildMode(mode)} mode...'); final String xcodeBuildConfiguration = toTitleCase(getNameForBuildMode(mode)); final Directory modeDirectory = outputDirectory.childDirectory(xcodeBuildConfiguration); @@ -470,8 +470,8 @@ final Directory iPhoneBuildConfiguration = iPhoneBuildOutput.childDirectory('$xcodeBuildConfiguration-iphoneos'); final Directory simulatorBuildConfiguration = simulatorBuildOutput.childDirectory('$xcodeBuildConfiguration-iphonesimulator'); - for (Directory builtProduct in iPhoneBuildConfiguration.listSync(followLinks: false).whereType<Directory>()) { - for (FileSystemEntity podProduct in builtProduct.listSync(followLinks: false)) { + for (final Directory builtProduct in iPhoneBuildConfiguration.listSync(followLinks: false).whereType<Directory>()) { + for (final FileSystemEntity podProduct in builtProduct.listSync(followLinks: false)) { final String podFrameworkName = podProduct.basename; if (globals.fs.path.extension(podFrameworkName) == '.framework') { final String binaryName = globals.fs.path.basenameWithoutExtension(podFrameworkName);
diff --git a/packages/flutter_tools/lib/src/commands/clean.dart b/packages/flutter_tools/lib/src/commands/clean.dart index 5d7bc07..db78584 100644 --- a/packages/flutter_tools/lib/src/commands/clean.dart +++ b/packages/flutter_tools/lib/src/commands/clean.dart
@@ -73,7 +73,7 @@ try { final Directory xcodeWorkspace = xcodeProject.xcodeWorkspace; final XcodeProjectInfo projectInfo = await xcodeProjectInterpreter.getInfo(xcodeWorkspace.parent.path); - for (String scheme in projectInfo.schemes) { + for (final String scheme in projectInfo.schemes) { xcodeProjectInterpreter.cleanWorkspace(xcodeWorkspace.path, scheme); } } catch (error) {
diff --git a/packages/flutter_tools/lib/src/commands/config.dart b/packages/flutter_tools/lib/src/commands/config.dart index d1626ac..c4ab2c8 100644 --- a/packages/flutter_tools/lib/src/commands/config.dart +++ b/packages/flutter_tools/lib/src/commands/config.dart
@@ -30,7 +30,7 @@ negatable: false, hide: !verboseHelp, help: 'Print config values as json.'); - for (Feature feature in allFeatures) { + for (final Feature feature in allFeatures) { if (feature.configSetting == null) { continue; } @@ -69,7 +69,7 @@ // are available. final Map<String, Feature> featuresByName = <String, Feature>{}; final String channel = FlutterVersion.instance.channel; - for (Feature feature in allFeatures) { + for (final Feature feature in allFeatures) { if (feature.configSetting != null) { featuresByName[feature.configSetting] = feature; } @@ -105,7 +105,7 @@ } if (boolArg('clear-features')) { - for (Feature feature in allFeatures) { + for (final Feature feature in allFeatures) { if (feature.configSetting != null) { globals.config.removeValue(feature.configSetting); } @@ -140,7 +140,7 @@ _updateConfig('build-dir', buildDir); } - for (Feature feature in allFeatures) { + for (final Feature feature in allFeatures) { if (feature.configSetting == null) { continue; } @@ -163,7 +163,7 @@ Future<void> handleMachine() async { // Get all the current values. final Map<String, dynamic> results = <String, dynamic>{}; - for (String key in globals.config.keys) { + for (final String key in globals.config.keys) { results[key] = globals.config.getValue(key); }
diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index 823da6a..3de6c2b 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart
@@ -44,7 +44,7 @@ _ProjectType _stringToProjectType(String value) { _ProjectType result; - for (_ProjectType type in _ProjectType.values) { + for (final _ProjectType type in _ProjectType.values) { if (value == getEnumName(type)) { result = type; break; @@ -306,7 +306,7 @@ if (argResults.rest.length > 1) { String message = 'Multiple output directories specified.'; - for (String arg in argResults.rest) { + for (final String arg in argResults.rest) { if (arg.startsWith('-')) { message += '\nTry moving $arg to be immediately following $name'; break;
diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart index 0c30d60..1b7cf43 100644 --- a/packages/flutter_tools/lib/src/commands/daemon.dart +++ b/packages/flutter_tools/lib/src/commands/daemon.dart
@@ -204,7 +204,7 @@ void shutdown({ dynamic error }) { _commandSubscription?.cancel(); - for (Domain domain in _domainMap.values) { + for (final Domain domain in _domainMap.values) { domain.dispose(); } if (!_onExitCompleter.isCompleted) { @@ -791,15 +791,15 @@ /// of properties (id, name, platform, ...). Future<List<Map<String, dynamic>>> getDevices([ Map<String, dynamic> args ]) async { return <Map<String, dynamic>>[ - for (PollingDeviceDiscovery discoverer in _discoverers) - for (Device device in await discoverer.devices) + for (final PollingDeviceDiscovery discoverer in _discoverers) + for (final Device device in await discoverer.devices) await _deviceToMap(device), ]; } /// Enable device events. Future<void> enable(Map<String, dynamic> args) { - for (PollingDeviceDiscovery discoverer in _discoverers) { + for (final PollingDeviceDiscovery discoverer in _discoverers) { discoverer.startPolling(); } return Future<void>.value(); @@ -807,7 +807,7 @@ /// Disable device events. Future<void> disable(Map<String, dynamic> args) { - for (PollingDeviceDiscovery discoverer in _discoverers) { + for (final PollingDeviceDiscovery discoverer in _discoverers) { discoverer.stopPolling(); } return Future<void>.value(); @@ -845,14 +845,14 @@ @override void dispose() { - for (PollingDeviceDiscovery discoverer in _discoverers) { + for (final PollingDeviceDiscovery discoverer in _discoverers) { discoverer.dispose(); } } /// Return the device matching the deviceId field in the args. Future<Device> _getDevice(String deviceId) async { - for (PollingDeviceDiscovery discoverer in _discoverers) { + for (final PollingDeviceDiscovery discoverer in _discoverers) { final Device device = (await discoverer.devices).firstWhere((Device device) => device.id == deviceId, orElse: () => null); if (device != null) { return device;
diff --git a/packages/flutter_tools/lib/src/commands/devices.dart b/packages/flutter_tools/lib/src/commands/devices.dart index dbae667..5b478e9 100644 --- a/packages/flutter_tools/lib/src/commands/devices.dart +++ b/packages/flutter_tools/lib/src/commands/devices.dart
@@ -38,7 +38,7 @@ final List<String> diagnostics = await deviceManager.getDeviceDiagnostics(); if (diagnostics.isNotEmpty) { globals.printStatus(''); - for (String diagnostic in diagnostics) { + for (final String diagnostic in diagnostics) { globals.printStatus('• $diagnostic', hangingIndent: 2); } }
diff --git a/packages/flutter_tools/lib/src/commands/generate.dart b/packages/flutter_tools/lib/src/commands/generate.dart index 7b23bae..6d58bea 100644 --- a/packages/flutter_tools/lib/src/commands/generate.dart +++ b/packages/flutter_tools/lib/src/commands/generate.dart
@@ -26,7 +26,7 @@ final FlutterProject flutterProject = FlutterProject.current(); final CodegenDaemon codegenDaemon = await codeGenerator.daemon(flutterProject); codegenDaemon.startBuild(); - await for (CodegenStatus codegenStatus in codegenDaemon.buildResults) { + await for (final CodegenStatus codegenStatus in codegenDaemon.buildResults) { if (codegenStatus == CodegenStatus.Failed) { globals.printError('Code generation failed.'); break; @@ -44,7 +44,7 @@ return null; } final Directory errorCache = errorCacheParent.childDirectory('error_cache'); - for (File errorFile in errorCache.listSync(recursive: true).whereType<File>()) { + for (final File errorFile in errorCache.listSync(recursive: true).whereType<File>()) { try { final List<Object> errorData = json.decode(errorFile.readAsStringSync()) as List<Object>; final List<Object> stackData = errorData[1] as List<Object>;
diff --git a/packages/flutter_tools/lib/src/commands/ide_config.dart b/packages/flutter_tools/lib/src/commands/ide_config.dart index fd1c6fc..f42899a 100644 --- a/packages/flutter_tools/lib/src/commands/ide_config.dart +++ b/packages/flutter_tools/lib/src/commands/ide_config.dart
@@ -126,7 +126,7 @@ final Set<String> manifest = <String>{}; final Iterable<File> flutterFiles = _flutterRoot.listSync(recursive: true).whereType<File>(); - for (File srcFile in flutterFiles) { + for (final File srcFile in flutterFiles) { final String relativePath = globals.fs.path.relative(srcFile.path, from: _flutterRoot.absolute.path); // Skip template files in both the ide_templates and templates @@ -186,7 +186,7 @@ // Look for any files under the template dir that don't exist in the manifest and remove // them. final Iterable<File> templateFiles = _templateDirectory.listSync(recursive: true).whereType<File>(); - for (File templateFile in templateFiles) { + for (final File templateFile in templateFiles) { final String relativePath = globals.fs.path.relative( templateFile.absolute.path, from: _templateDirectory.absolute.path,
diff --git a/packages/flutter_tools/lib/src/commands/precache.dart b/packages/flutter_tools/lib/src/commands/precache.dart index d9a6dd2..10b0316 100644 --- a/packages/flutter_tools/lib/src/commands/precache.dart +++ b/packages/flutter_tools/lib/src/commands/precache.dart
@@ -66,7 +66,7 @@ globals.cache.useUnsignedMacBinaries = true; } final Set<DevelopmentArtifact> requiredArtifacts = <DevelopmentArtifact>{}; - for (DevelopmentArtifact artifact in DevelopmentArtifact.values) { + for (final DevelopmentArtifact artifact in DevelopmentArtifact.values) { // Don't include unstable artifacts on stable branches. if (!FlutterVersion.instance.isMaster && artifact.unstable) { continue;
diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 0fe5581..e428579 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart
@@ -245,7 +245,7 @@ deviceType = 'multiple'; deviceOsVersion = 'multiple'; isEmulator = false; - for (Device device in devices) { + for (final Device device in devices) { final TargetPlatform platform = await device.targetPlatform; anyAndroidDevices = anyAndroidDevices || (platform == TargetPlatform.android); anyIOSDevices = anyIOSDevices || (platform == TargetPlatform.ios); @@ -426,7 +426,7 @@ 'channel.', null); } - for (Device device in devices) { + for (final Device device in devices) { if (!device.supportsFastStart && boolArg('fast-start')) { globals.printStatus( 'Using --fast-start option with device ${device.name}, but this device ' @@ -456,7 +456,7 @@ } if (hotMode) { - for (Device device in devices) { + for (final Device device in devices) { if (!device.supportsHotReload) { throwToolExit('Hot reload is not supported by ${device.name}. Run with --no-hot.'); } @@ -470,7 +470,7 @@ } final FlutterProject flutterProject = FlutterProject.current(); final List<FlutterDevice> flutterDevices = <FlutterDevice>[ - for (Device device in devices) + for (final Device device in devices) await FlutterDevice.create( device, flutterProject: flutterProject,
diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart index 21e2e0f..efdaecc 100644 --- a/packages/flutter_tools/lib/src/commands/test.dart +++ b/packages/flutter_tools/lib/src/commands/test.dart
@@ -222,7 +222,7 @@ if (flutterProject.hasBuilders) { final CodegenDaemon codegenDaemon = await codeGenerator.daemon(flutterProject); codegenDaemon.startBuild(); - await for (CodegenStatus status in codegenDaemon.buildResults) { + await for (final CodegenStatus status in codegenDaemon.buildResults) { if (status == CodegenStatus.Succeeded) { break; } @@ -296,7 +296,7 @@ return true; } - for (DevFSFileContent entry in entries.values.whereType<DevFSFileContent>()) { + for (final DevFSFileContent entry in entries.values.whereType<DevFSFileContent>()) { // Calling isModified to access file stats first in order for isModifiedAfter // to work. if (entry.isModified && entry.isModifiedAfter(lastModified)) {
diff --git a/packages/flutter_tools/lib/src/commands/update_packages.dart b/packages/flutter_tools/lib/src/commands/update_packages.dart index 169e276..b892a4f 100644 --- a/packages/flutter_tools/lib/src/commands/update_packages.dart +++ b/packages/flutter_tools/lib/src/commands/update_packages.dart
@@ -134,7 +134,7 @@ if (isVerifyOnly) { bool needsUpdate = false; globals.printStatus('Verifying pubspecs...'); - for (Directory directory in packages) { + for (final Directory directory in packages) { PubspecYaml pubspec; try { pubspec = PubspecYaml(directory); @@ -153,7 +153,7 @@ } // all dependencies in the pubspec sorted lexically. final Map<String, String> checksumDependencies = <String, String>{}; - for (PubspecLine data in pubspec.inputData) { + for (final PubspecLine data in pubspec.inputData) { if (data is PubspecDependency && data.kind == DependencyKind.normal) { checksumDependencies[data.name] = data.version; } @@ -194,7 +194,7 @@ final List<PubspecYaml> pubspecs = <PubspecYaml>[]; final Map<String, PubspecDependency> dependencies = <String, PubspecDependency>{}; final Set<String> specialDependencies = <String>{}; - for (Directory directory in packages) { // these are all the directories with pubspec.yamls we care about + for (final Directory directory in packages) { // these are all the directories with pubspec.yamls we care about globals.printTrace('Reading pubspec.yaml from: ${directory.path}'); PubspecYaml pubspec; try { @@ -203,7 +203,7 @@ throwToolExit(message); } pubspecs.add(pubspec); // remember it for later - for (PubspecDependency dependency in pubspec.allDependencies) { // this is all the explicit dependencies + for (final PubspecDependency dependency in pubspec.allDependencies) { // this is all the explicit dependencies if (dependencies.containsKey(dependency.name)) { // If we've seen the dependency before, make sure that we are // importing it the same way. There's several ways to import a @@ -272,13 +272,13 @@ // The transitive dependency tree for the fake package does not contain // dependencies between Flutter SDK packages and pub packages. We add them // here. - for (PubspecYaml pubspec in pubspecs) { + for (final PubspecYaml pubspec in pubspecs) { final String package = pubspec.name; specialDependencies.add(package); tree._versions[package] = pubspec.version; assert(!tree._dependencyTree.containsKey(package)); tree._dependencyTree[package] = <String>{}; - for (PubspecDependency dependency in pubspec.dependencies) { + for (final PubspecDependency dependency in pubspec.dependencies) { if (dependency.kind == DependencyKind.normal) { tree._dependencyTree[package].add(dependency.name); } @@ -305,7 +305,7 @@ // to specific versions because they are explicitly pinned by their // constraints. Here we list the names we earlier established we didn't // need to pin because they come from the Dart or Flutter SDKs. - for (PubspecYaml pubspec in pubspecs) { + for (final PubspecYaml pubspec in pubspecs) { pubspec.apply(tree, specialDependencies); } @@ -318,7 +318,7 @@ final Stopwatch timer = Stopwatch()..start(); int count = 0; - for (Directory dir in packages) { + for (final Directory dir in packages) { await pub.get(context: PubContext.updatePackages, directory: dir.path, checkLastModified: false); count += 1; } @@ -356,7 +356,7 @@ if (link.from != null) { visited.add(link.from.to); } - for (String dependency in tree._dependencyTree[link.to]) { + for (final String dependency in tree._dependencyTree[link.to]) { if (!visited.contains(dependency)) { traversalQueue.addFirst(_DependencyLink(from: link, to: dependency)); } @@ -483,7 +483,7 @@ // the dependency. So we track what is the "current" (or "last") dependency // that we are dealing with using this variable. PubspecDependency lastDependency; - for (String line in lines) { + for (final String line in lines) { if (lastDependency == null) { // First we look to see if we're transitioning to a new top-level section. // The PubspecHeader.parse static method can recognize those headers. @@ -614,7 +614,7 @@ // overridden by subsequent entries in the same file and any that have the // magic comment flagging them as auto-generated transitive dependencies // that we added in a previous run. - for (PubspecLine data in inputData) { + for (final PubspecLine data in inputData) { if (data is PubspecDependency && data.kind != DependencyKind.overridden && !data.isTransitive && !data.isDevDependency) { yield data; } @@ -623,7 +623,7 @@ /// This returns all regular dependencies and all dev dependencies. Iterable<PubspecDependency> get allDependencies sync* { - for (PubspecLine data in inputData) { + for (final PubspecLine data in inputData) { if (data is PubspecDependency && data.kind != DependencyKind.overridden && !data.isTransitive) { yield data; } @@ -652,7 +652,7 @@ // blank lines, and trailing blank lines, and ensuring the file ends with a // newline. This cleanup lets us be a little more aggressive while building // the output. - for (PubspecLine data in inputData) { + for (final PubspecLine data in inputData) { if (data is PubspecHeader) { // This line was a header of some sort. // @@ -754,10 +754,10 @@ // Create a new set to hold the list of packages we've already processed, so // that we don't redundantly process them multiple times. final Set<String> done = <String>{}; - for (String package in directDependencies) { + for (final String package in directDependencies) { transitiveDependencies.addAll(versions.getTransitiveDependenciesFor(package, seen: done, exclude: implied)); } - for (String package in devDependencies) { + for (final String package in devDependencies) { transitiveDevDependencies.addAll(versions.getTransitiveDependenciesFor(package, seen: done, exclude: implied)); } @@ -770,10 +770,10 @@ } // Add a line for each transitive dependency and transitive dev dependency using our magic string to recognize them later. - for (String package in transitiveDependenciesAsList) { + for (final String package in transitiveDependenciesAsList) { transitiveDependencyOutput.add(computeTransitiveDependencyLineFor(package)); } - for (String package in transitiveDevDependenciesAsList) { + for (final String package in transitiveDevDependenciesAsList) { transitiveDevDependencyOutput.add(computeTransitiveDependencyLineFor(package)); } @@ -1148,10 +1148,10 @@ if (_kManuallyPinnedDependencies.isNotEmpty) { globals.printStatus('WARNING: the following packages use hard-coded version constraints:'); final Set<String> allTransitive = <String>{ - for (PubspecDependency dependency in dependencies) + for (final PubspecDependency dependency in dependencies) dependency.name, }; - for (String package in _kManuallyPinnedDependencies.keys) { + for (final String package in _kManuallyPinnedDependencies.keys) { // Don't add pinned dependency if it is not in the set of all transitive dependencies. if (!allTransitive.contains(package)) { globals.printStatus('Skipping $package because it was not transitive'); @@ -1162,7 +1162,7 @@ globals.printStatus(' - $package: $version'); } } - for (PubspecDependency dependency in dependencies) { + for (final PubspecDependency dependency in dependencies) { if (!dependency.pointsToSdk) { dependency.describeForFakePubspec(result, overrides); } @@ -1256,7 +1256,7 @@ // because they were omitted from pubspec.yaml used for 'pub upgrade' run. return; } - for (String dependency in _dependencyTree[package]) { + for (final String dependency in _dependencyTree[package]) { if (!seen.contains(dependency)) { if (!exclude.contains(dependency)) { yield dependency; @@ -1279,7 +1279,7 @@ int lowerCheck = 0; int upperCheck = 0; final List<String> sortedNames = names.toList()..sort(); - for (String name in sortedNames) { + for (final String name in sortedNames) { final String version = getVersion(name); assert(version != ''); if (version == null) { @@ -1287,7 +1287,7 @@ } final String value = '$name: $version'; // Each code unit is 16 bits. - for (int codeUnit in value.codeUnits) { + for (final int codeUnit in value.codeUnits) { final int upper = codeUnit >> 8; final int lower = codeUnit & 0xFF; lowerCheck = (lowerCheck + upper) % 255;
diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart index 30a03bb..af7ce54 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart
@@ -198,7 +198,7 @@ PackageUriMapper(String scriptPath, String packagesPath, String fileSystemScheme, List<String> fileSystemRoots) { final Map<String, Uri> packageMap = PackageMap(globals.fs.path.absolute(packagesPath)).map; final String scriptUri = Uri.file(scriptPath, windows: globals.platform.isWindows).toString(); - for (String packageName in packageMap.keys) { + for (final String packageName in packageMap.keys) { final String prefix = packageMap[packageName].toString(); // Only perform a multi-root mapping if there are multiple roots. if (fileSystemScheme != null @@ -227,7 +227,7 @@ return null; } final String scriptUri = Uri.file(scriptPath, windows: globals.platform.isWindows).toString(); - for (String uriPrefix in _uriPrefixes) { + for (final String uriPrefix in _uriPrefixes) { if (scriptUri.startsWith(uriPrefix)) { return Uri.parse('package:$_packageName/${scriptUri.substring(uriPrefix.length)}'); } @@ -314,7 +314,7 @@ sdkRoot, '--target=$targetModel', '-Ddart.developer.causal_async_stacks=$causalAsyncStacks', - for (Object dartDefine in dartDefines) + for (final Object dartDefine in dartDefines) '-D$dartDefine', ..._buildModeOptions(buildMode), if (trackWidgetCreation) '--track-widget-creation', @@ -336,7 +336,7 @@ depFilePath, ], if (fileSystemRoots != null) - for (String root in fileSystemRoots) ...<String>[ + for (final String root in fileSystemRoots) ...<String>[ '--filesystem-root', root, ], @@ -608,7 +608,7 @@ : ''; _server.stdin.writeln('recompile $mainUri$inputKey'); globals.printTrace('<- recompile $mainUri$inputKey'); - for (Uri fileUri in request.invalidatedFiles) { + for (final Uri fileUri in request.invalidatedFiles) { _server.stdin.writeln(_mapFileUri(fileUri.toString(), packageUriMapper)); globals.printTrace('${_mapFileUri(fileUri.toString(), packageUriMapper)}'); } @@ -651,7 +651,7 @@ '--incremental', '--target=$targetModel', '-Ddart.developer.causal_async_stacks=$causalAsyncStacks', - for (Object dartDefine in dartDefines) + for (final Object dartDefine in dartDefines) '-D$dartDefine', if (outputPath != null) ...<String>[ '--output-dill', @@ -667,7 +667,7 @@ ..._buildModeOptions(buildMode), if (trackWidgetCreation) '--track-widget-creation', if (fileSystemRoots != null) - for (String root in fileSystemRoots) ...<String>[ + for (final String root in fileSystemRoots) ...<String>[ '--filesystem-root', root, ], @@ -824,7 +824,7 @@ } if (fileSystemRoots != null) { - for (String root in fileSystemRoots) { + for (final String root in fileSystemRoots) { if (filename.startsWith(root)) { return Uri( scheme: fileSystemScheme, path: filename.substring(root.length))
diff --git a/packages/flutter_tools/lib/src/dart/pub.dart b/packages/flutter_tools/lib/src/dart/pub.dart index 375fdd3..a2a5c4e 100644 --- a/packages/flutter_tools/lib/src/dart/pub.dart +++ b/packages/flutter_tools/lib/src/dart/pub.dart
@@ -29,7 +29,7 @@ // We have server-side tooling that assumes the values are consistent. class PubContext { PubContext._(this._values) { - for (String item in _values) { + for (final String item in _values) { if (!_validContext.hasMatch(item)) { throw ArgumentError.value( _values, 'value', 'Must match RegExp ${_validContext.pattern}');
diff --git a/packages/flutter_tools/lib/src/desktop_device.dart b/packages/flutter_tools/lib/src/desktop_device.dart index 0922824..65a2339 100644 --- a/packages/flutter_tools/lib/src/desktop_device.dart +++ b/packages/flutter_tools/lib/src/desktop_device.dart
@@ -130,7 +130,7 @@ bool succeeded = true; // Walk a copy of _runningProcesses, since the exit handler removes from the // set. - for (Process process in Set<Process>.from(_runningProcesses)) { + for (final Process process in Set<Process>.from(_runningProcesses)) { succeeded &= process.kill(); } return succeeded;
diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index d7ac151..9109845 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart
@@ -118,7 +118,7 @@ } // Match on a id or name starting with [deviceId]. - for (Device device in devices.where(startsWithDeviceId)) { + for (final Device device in devices.where(startsWithDeviceId)) { yield device; } } @@ -136,8 +136,8 @@ /// Return the list of all connected devices. Stream<Device> getAllConnectedDevices() async* { - for (DeviceDiscovery discoverer in _platformDiscoverers) { - for (Device device in await discoverer.devices) { + for (final DeviceDiscovery discoverer in _platformDiscoverers) { + for (final Device device in await discoverer.devices) { yield device; } } @@ -151,7 +151,7 @@ /// Get diagnostics about issues with any connected devices. Future<List<String>> getDeviceDiagnostics() async { return <String>[ - for (DeviceDiscovery discoverer in _platformDiscoverers) + for (final DeviceDiscovery discoverer in _platformDiscoverers) ...await discoverer.getDiagnostics(), ]; } @@ -178,7 +178,7 @@ // compilers, and web requires an entirely different resident runner. if (hasSpecifiedAllDevices) { devices = <Device>[ - for (Device device in devices) + for (final Device device in devices) if (await device.targetPlatform != TargetPlatform.fuchsia_arm64 && await device.targetPlatform != TargetPlatform.fuchsia_x64 && await device.targetPlatform != TargetPlatform.web_javascript) @@ -191,7 +191,7 @@ // 'android' folder then don't attempt to launch with an Android device. if (devices.length > 1 && !hasSpecifiedDeviceId) { devices = <Device>[ - for (Device device in devices) + for (final Device device in devices) if (isDeviceSupportedForProject(device, flutterProject)) device, ]; @@ -460,7 +460,7 @@ // Extract device information final List<List<String>> table = <List<String>>[]; - for (Device device in devices) { + for (final Device device in devices) { String supportIndicator = device.isSupported() ? '' : ' (unsupported)'; final TargetPlatform targetPlatform = await device.targetPlatform; if (await device.isLocalEmulator) { @@ -478,12 +478,12 @@ // Calculate column widths final List<int> indices = List<int>.generate(table[0].length - 1, (int i) => i); List<int> widths = indices.map<int>((int i) => 0).toList(); - for (List<String> row in table) { + for (final List<String> row in table) { widths = indices.map<int>((int i) => math.max(widths[i], row[i].length)).toList(); } // Join columns into lines of text - for (List<String> row in table) { + for (final List<String> row in table) { yield indices.map<String>((int i) => row[i].padRight(widths[i])).join(' • ') + ' • ${row.last}'; } }
diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart index ccaf690..366e2f1 100644 --- a/packages/flutter_tools/lib/src/doctor.dart +++ b/packages/flutter_tools/lib/src/doctor.dart
@@ -147,7 +147,7 @@ /// Return a list of [ValidatorTask] objects and starts validation on all /// objects in [validators]. List<ValidatorTask> startValidatorTasks() => <ValidatorTask>[ - for (DoctorValidator validator in validators) + for (final DoctorValidator validator in validators) ValidatorTask( validator, // We use an asyncGuard() here to be absolutely certain that @@ -178,7 +178,7 @@ bool missingComponent = false; bool sawACrash = false; - for (DoctorValidator validator in validators) { + for (final DoctorValidator validator in validators) { final StringBuffer lineBuffer = StringBuffer(); ValidationResult result; try { @@ -248,7 +248,7 @@ bool doctorResult = true; int issues = 0; - for (ValidatorTask validatorTask in startValidatorTasks()) { + for (final ValidatorTask validatorTask in startValidatorTasks()) { final DoctorValidator validator = validatorTask.validator; final Status status = Status.withSpinner( timeout: timeoutConfiguration.fastOperation, @@ -291,12 +291,12 @@ hangingIndent: result.leadingBox.length + 1); } - for (ValidationMessage message in result.messages) { + for (final ValidationMessage message in result.messages) { if (message.type != ValidationMessageType.information || verbose == true) { int hangingIndent = 2; int indent = 4; final String indicator = showColor ? message.coloredIndicator : message.indicator; - for (String line in '$indicator ${message.message}'.split('\n')) { + for (final String line in '$indicator ${message.message}'.split('\n')) { globals.printStatus(line, hangingIndent: hangingIndent, indent: indent, emphasis: true); // Only do hanging indent for the first line. hangingIndent = 0; @@ -402,7 +402,7 @@ @override Future<ValidationResult> validate() async { final List<ValidatorTask> tasks = <ValidatorTask>[ - for (DoctorValidator validator in subValidators) + for (final DoctorValidator validator in subValidators) ValidatorTask( validator, asyncGuard<ValidationResult>(() => validator.validate()), @@ -410,7 +410,7 @@ ]; final List<ValidationResult> results = <ValidationResult>[]; - for (ValidatorTask subValidator in tasks) { + for (final ValidatorTask subValidator in tasks) { _currentSlowWarning = subValidator.validator.slowWarning; try { results.add(await subValidator.result); @@ -429,7 +429,7 @@ final List<ValidationMessage> mergedMessages = <ValidationMessage>[]; String statusInfo; - for (ValidationResult result in results) { + for (final ValidationResult result in results) { statusInfo ??= result.statusInfo; switch (result.type) { case ValidationType.installed: @@ -753,7 +753,7 @@ validators.add(validator); } - for (FileSystemEntity dir in globals.fs.directory(homeDirPath).listSync()) { + for (final FileSystemEntity dir in globals.fs.directory(homeDirPath).listSync()) { if (dir is Directory) { final String name = globals.fs.path.basename(dir.path); IntelliJValidator._idToTitle.forEach((String id, String title) { @@ -808,10 +808,10 @@ .map<List<FileSystemEntity>>((Directory dir) => dir.existsSync() ? dir.listSync() : <FileSystemEntity>[]) .expand<FileSystemEntity>((List<FileSystemEntity> mappedDirs) => mappedDirs) .whereType<Directory>(); - for (Directory dir in installDirs) { + for (final Directory dir in installDirs) { checkForIntelliJ(dir); if (!dir.path.endsWith('.app')) { - for (FileSystemEntity subdir in dir.listSync()) { + for (final FileSystemEntity subdir in dir.listSync()) { if (subdir is Directory) { checkForIntelliJ(subdir); }
diff --git a/packages/flutter_tools/lib/src/emulator.dart b/packages/flutter_tools/lib/src/emulator.dart index d29f281..3cfcac6 100644 --- a/packages/flutter_tools/lib/src/emulator.dart +++ b/packages/flutter_tools/lib/src/emulator.dart
@@ -250,7 +250,7 @@ // Extract emulators information final List<List<String>> table = <List<String>>[ - for (Emulator emulator in emulators) + for (final Emulator emulator in emulators) <String>[ emulator.id ?? '', emulator.name ?? '', @@ -262,7 +262,7 @@ // Calculate column widths final List<int> indices = List<int>.generate(table[0].length - 1, (int i) => i); List<int> widths = indices.map<int>((int i) => 0).toList(); - for (List<String> row in table) { + for (final List<String> row in table) { widths = indices.map<int>((int i) => math.max(widths[i], row[i].length)).toList(); }
diff --git a/packages/flutter_tools/lib/src/flutter_manifest.dart b/packages/flutter_tools/lib/src/flutter_manifest.dart index f3351a3..36c25ef 100644 --- a/packages/flutter_tools/lib/src/flutter_manifest.dart +++ b/packages/flutter_tools/lib/src/flutter_manifest.dart
@@ -197,7 +197,7 @@ return const <Uri>[]; } final List<Uri> results = <Uri>[]; - for (Object asset in assets) { + for (final Object asset in assets) { if (asset is! String || asset == null || asset == '') { globals.printError('Asset manifest contains a null or empty uri.'); continue; @@ -225,7 +225,7 @@ } final List<Font> fonts = <Font>[]; - for (Map<String, dynamic> fontFamily in _rawFontsDescriptor) { + for (final Map<String, dynamic> fontFamily in _rawFontsDescriptor) { final YamlList fontFiles = fontFamily['fonts'] as YamlList; final String familyName = fontFamily['family'] as String; if (familyName == null) { @@ -238,7 +238,7 @@ } final List<FontAsset> fontAssets = <FontAsset>[]; - for (Map<dynamic, dynamic> fontFile in fontFiles.cast<Map<dynamic, dynamic>>()) { + for (final Map<dynamic, dynamic> fontFile in fontFiles.cast<Map<dynamic, dynamic>>()) { final String asset = fontFile['asset'] as String; if (asset == null) { globals.printError('Warning: Missing asset in fonts for $familyName', emphasis: true); @@ -431,7 +431,7 @@ continue; } final YamlMap fontMap = fontListEntry as YamlMap; - for (dynamic key in fontMap.keys.where((dynamic key) => key != 'family' && key != 'fonts')) { + for (final dynamic key in fontMap.keys.where((dynamic key) => key != 'family' && key != 'fonts')) { errors.add('Unexpected child "$key" found under "fonts".'); } if (fontMap['family'] != null && fontMap['family'] is! String) {
diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_build.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_build.dart index 24f1419..9ccc04c 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_build.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_build.dart
@@ -148,7 +148,7 @@ await destFile.create(recursive: true); final IOSink outFile = destFile.openWrite(); - for (String path in assets.entries.keys) { + for (final String path in assets.entries.keys) { outFile.write('data/$appName/$path=$assetDir/$path\n'); } await outFile.flush();
diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart index 5ae5a89..21e1fbe 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
@@ -164,7 +164,7 @@ @visibleForTesting List<FuchsiaDevice> parseListDevices(String text) { final List<FuchsiaDevice> devices = <FuchsiaDevice>[]; - for (String rawLine in text.trim().split('\n')) { + for (final String rawLine in text.trim().split('\n')) { final String line = rawLine.trim(); // ['ip', 'device name'] final List<String> words = line.split(' '); @@ -501,7 +501,7 @@ return null; } final List<int> ports = <int>[]; - for (String path in findOutput.split('\n')) { + for (final String path in findOutput.split('\n')) { if (path == '') { continue; } @@ -512,7 +512,7 @@ return null; } final String lsOutput = lsResult.stdout; - for (String line in lsOutput.split('\n')) { + for (final String line in lsOutput.split('\n')) { if (line == '') { continue; } @@ -557,7 +557,7 @@ // TODO(jonahwilliams): replacing this with the hub will require an update // to the flutter_runner. Future<int> findIsolatePort(String isolateName, List<int> ports) async { - for (int port in ports) { + for (final int port in ports) { try { // Note: The square-bracket enclosure for using the IPv6 loopback // didn't appear to work, but when assigning to the IPv4 loopback device, @@ -567,7 +567,7 @@ final VMService vmService = await VMService.connect(uri); await vmService.getVM(); await vmService.refreshViews(); - for (FlutterView flutterView in vmService.vm.views) { + for (final FlutterView flutterView in vmService.vm.views) { if (flutterView.uiIsolate == null) { continue; } @@ -647,7 +647,7 @@ Future<void> _findIsolate() async { final List<int> ports = await _device.servicePorts(); - for (int port in ports) { + for (final int port in ports) { VMService service; if (_ports.containsKey(port)) { service = _ports[port]; @@ -664,7 +664,7 @@ } await service.getVM(); await service.refreshViews(); - for (FlutterView flutterView in service.vm.views) { + for (final FlutterView flutterView in service.vm.views) { if (flutterView.uiIsolate == null) { continue; } @@ -753,7 +753,7 @@ @override Future<void> dispose() async { - for (ForwardedPort port in forwardedPorts) { + for (final ForwardedPort port in forwardedPorts) { await unforward(port); } }
diff --git a/packages/flutter_tools/lib/src/fuchsia/tiles_ctl.dart b/packages/flutter_tools/lib/src/fuchsia/tiles_ctl.dart index 5357a9f..21ab56f 100644 --- a/packages/flutter_tools/lib/src/fuchsia/tiles_ctl.dart +++ b/packages/flutter_tools/lib/src/fuchsia/tiles_ctl.dart
@@ -26,7 +26,7 @@ globals.printTrace('tiles_ctl is not running'); return -1; } - for (MapEntry<int, String> entry in runningApps.entries) { + for (final MapEntry<int, String> entry in runningApps.entries) { if (entry.value.contains('$appName#meta')) { return entry.key; } @@ -70,7 +70,7 @@ return null; } // Find lines beginning with 'Tile' - for (String line in result.stdout.split('\n')) { + for (final String line in result.stdout.split('\n')) { final List<String> words = line.split(' '); if (words.isNotEmpty && words[0] == 'Tile') { final int key = int.tryParse(words[2]);
diff --git a/packages/flutter_tools/lib/src/intellij/intellij.dart b/packages/flutter_tools/lib/src/intellij/intellij.dart index aa2fd20..48a9a50 100644 --- a/packages/flutter_tools/lib/src/intellij/intellij.dart +++ b/packages/flutter_tools/lib/src/intellij/intellij.dart
@@ -22,7 +22,7 @@ String title, { Version minVersion, }) { - for (String packageName in packageNames) { + for (final String packageName in packageNames) { if (!_hasPackage(packageName)) { continue; }
diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index 5b5fd27..c9b4341 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart
@@ -660,7 +660,7 @@ @override void dispose() { - for (StreamSubscription<ServiceEvent> loggingSubscription in _loggingSubscriptions) { + for (final StreamSubscription<ServiceEvent> loggingSubscription in _loggingSubscriptions) { loggingSubscription.cancel(); } _idevicesyslogProcess?.kill(); @@ -747,7 +747,7 @@ @override Future<void> dispose() async { - for (ForwardedPort forwardedPort in _forwardedPorts) { + for (final ForwardedPort forwardedPort in _forwardedPorts) { forwardedPort.dispose(); } }
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index 7974313..a220b42 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -371,7 +371,7 @@ } if (autoSigningConfigs != null) { - for (MapEntry<String, String> signingConfig in autoSigningConfigs.entries) { + for (final MapEntry<String, String> signingConfig in autoSigningConfigs.entries) { buildCommands.add('${signingConfig.key}=${signingConfig.value}'); } buildCommands.add('-allowProvisioningUpdates'); @@ -379,7 +379,7 @@ } final List<FileSystemEntity> contents = app.project.hostAppRoot.listSync(); - for (FileSystemEntity entity in contents) { + for (final FileSystemEntity entity in contents) { if (globals.fs.path.extension(entity.path) == '.xcworkspace') { buildCommands.addAll(<String>[ '-workspace', globals.fs.path.basename(entity.path), @@ -426,7 +426,7 @@ Future<void> listenToScriptOutputLine() async { final List<String> lines = await scriptOutputPipeFile.readAsLines(); - for (String line in lines) { + for (final String line in lines) { if (line == 'done' || line == 'all done') { buildSubStatus?.stop(); buildSubStatus = null;
diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index 748d1dc..72b7aa6 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart
@@ -112,10 +112,10 @@ final Map<String, dynamic> devicesSection = await _list(SimControlListSection.devices); - for (String deviceCategory in devicesSection.keys) { + for (final String deviceCategory in devicesSection.keys) { final Object devicesData = devicesSection[deviceCategory]; if (devicesData != null && devicesData is List<dynamic>) { - for (Map<String, dynamic> data in devicesData.map<Map<String, dynamic>>(castStringKeyedMap)) { + for (final Map<String, dynamic> data in devicesData.map<Map<String, dynamic>>(castStringKeyedMap)) { devices.add(SimDevice(deviceCategory, data)); } } @@ -809,7 +809,7 @@ @override Future<void> dispose() async { - for (ForwardedPort port in _ports) { + for (final ForwardedPort port in _ports) { await unforward(port); } }
diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index ff966cb..09b50ca 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart
@@ -106,7 +106,7 @@ localsBuffer.writeln('#!/bin/sh'); localsBuffer.writeln('# This is a generated file; do not edit or check into version control.'); - for (String line in xcodeBuildSettings) { + for (final String line in xcodeBuildSettings) { localsBuffer.writeln('export "$line"'); } @@ -372,7 +372,7 @@ Map<String, String> parseXcodeBuildSettings(String showBuildSettingsOutput) { final Map<String, String> settings = <String, String>{}; - for (Match match in showBuildSettingsOutput.split('\n').map<Match>(_settingExpr.firstMatch)) { + for (final Match match in showBuildSettingsOutput.split('\n').map<Match>(_settingExpr.firstMatch)) { if (match != null) { settings[match[1]] = match[2]; } @@ -402,7 +402,7 @@ final List<String> buildConfigurations = <String>[]; final List<String> schemes = <String>[]; List<String> collector; - for (String line in output.split('\n')) { + for (final String line in output.split('\n')) { if (line.isEmpty) { collector = null; continue; @@ -454,7 +454,7 @@ /// regard to case. bool hasBuildConfiguratinForBuildMode(String buildMode) { buildMode = buildMode.toLowerCase(); - for (String name in buildConfigurations) { + for (final String name in buildConfigurations) { if (name.toLowerCase() == buildMode) { return true; }
diff --git a/packages/flutter_tools/lib/src/linux/makefile.dart b/packages/flutter_tools/lib/src/linux/makefile.dart index 3569082..94331ac 100644 --- a/packages/flutter_tools/lib/src/linux/makefile.dart +++ b/packages/flutter_tools/lib/src/linux/makefile.dart
@@ -11,7 +11,7 @@ /// /// Returns `null` if it cannot be found. String makefileExecutableName(LinuxProject project) { - for (String line in project.makeFile.readAsLinesSync()) { + for (final String line in project.makeFile.readAsLinesSync()) { if (line.startsWith(_kBinaryNameVariable)) { return line.split(_kBinaryNameVariable).last.trim(); }
diff --git a/packages/flutter_tools/lib/src/mdns_discovery.dart b/packages/flutter_tools/lib/src/mdns_discovery.dart index 033e097..dea4976 100644 --- a/packages/flutter_tools/lib/src/mdns_discovery.dart +++ b/packages/flutter_tools/lib/src/mdns_discovery.dart
@@ -75,7 +75,7 @@ String domainName; if (applicationId != null) { - for (String name in uniqueDomainNames) { + for (final String name in uniqueDomainNames) { if (name.toLowerCase().startsWith(applicationId.toLowerCase())) { domainName = name; break; @@ -206,10 +206,10 @@ } void _logInterfaces(List<NetworkInterface> interfaces) { - for (NetworkInterface interface in interfaces) { + for (final NetworkInterface interface in interfaces) { if (globals.logger.isVerbose) { globals.printTrace('Found interface "${interface.name}":'); - for (InternetAddress address in interface.addresses) { + for (final InternetAddress address in interface.addresses) { final String linkLocal = address.isLinkLocal ? 'link local' : ''; globals.printTrace('\tBound address: "${address.address}" $linkLocal'); }
diff --git a/packages/flutter_tools/lib/src/plugins.dart b/packages/flutter_tools/lib/src/plugins.dart index 22f506b..cd7eb43 100644 --- a/packages/flutter_tools/lib/src/plugins.dart +++ b/packages/flutter_tools/lib/src/plugins.dart
@@ -321,10 +321,10 @@ final StringBuffer flutterPluginsBuffer = StringBuffer('# $info\n'); final Set<String> pluginNames = <String>{}; - for (Plugin plugin in plugins) { + for (final Plugin plugin in plugins) { pluginNames.add(plugin.name); } - for (Plugin plugin in plugins) { + for (final Plugin plugin in plugins) { flutterPluginsBuffer.write('${plugin.name}=${escapePath(plugin.path)}\n'); directAppDependencies.add(<String, dynamic>{ 'name': plugin.name, @@ -439,7 +439,7 @@ List<Map<String, dynamic>> _extractPlatformMaps(List<Plugin> plugins, String type) { final List<Map<String, dynamic>> pluginConfigs = <Map<String, dynamic>>[]; - for (Plugin p in plugins) { + for (final Plugin p in plugins) { final PluginPlatform platformPlugin = p.platforms[type]; if (platformPlugin != null) { pluginConfigs.add(platformPlugin.toMap()); @@ -484,7 +484,7 @@ templateContext['needsShim'] = false; // If a plugin is using an embedding version older than 2.0 and the app is using 2.0, // then add shim for the old plugins. - for (Map<String, dynamic> plugin in androidPlugins) { + for (final Map<String, dynamic> plugin in androidPlugins) { if (plugin['supportsEmbeddingV1'] as bool && !(plugin['supportsEmbeddingV2'] as bool)) { templateContext['needsShim'] = true; if (project.isModule) { @@ -504,7 +504,7 @@ break; case AndroidEmbeddingVersion.v1: default: - for (Map<String, dynamic> plugin in androidPlugins) { + for (final Map<String, dynamic> plugin in androidPlugins) { if (!(plugin['supportsEmbeddingV1'] as bool) && plugin['supportsEmbeddingV2'] as bool) { throwToolExit( 'The plugin `${plugin['name']}` requires your app to be migrated to '
diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index 234a266..6d14011 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart
@@ -699,7 +699,7 @@ throwToolExit('Error reading $appManifestFile even though it exists. ' 'Please ensure that you have read permission to this file and try again.'); } - for (xml.XmlElement metaData in document.findAllElements('meta-data')) { + for (final xml.XmlElement metaData in document.findAllElements('meta-data')) { final String name = metaData.getAttribute('android:name'); if (name == 'flutterEmbedding') { final String embeddingVersionString = metaData.getAttribute('android:value'); @@ -764,7 +764,7 @@ if (!file.existsSync()) { return null; } - for (String line in file.readAsLinesSync()) { + for (final String line in file.readAsLinesSync()) { final Match match = regExp.firstMatch(line); if (match != null) { return match;
diff --git a/packages/flutter_tools/lib/src/protocol_discovery.dart b/packages/flutter_tools/lib/src/protocol_discovery.dart index 6133048..a13878e 100644 --- a/packages/flutter_tools/lib/src/protocol_discovery.dart +++ b/packages/flutter_tools/lib/src/protocol_discovery.dart
@@ -157,7 +157,7 @@ StreamController<T> get _streamController { _streamControllerInstance ??= StreamController<T>.broadcast(onListen: () { - for (dynamic event in _events) { + for (final dynamic event in _events) { assert(T is! List); if (event is T) { _streamControllerInstance.add(event);
diff --git a/packages/flutter_tools/lib/src/proxy_validator.dart b/packages/flutter_tools/lib/src/proxy_validator.dart index 3a8931e..95896f2 100644 --- a/packages/flutter_tools/lib/src/proxy_validator.dart +++ b/packages/flutter_tools/lib/src/proxy_validator.dart
@@ -34,7 +34,7 @@ messages.add(ValidationMessage.hint('NO_PROXY is not set')); } else { messages.add(ValidationMessage('NO_PROXY is $_noProxy')); - for (String host in const <String>['127.0.0.1', 'localhost']) { + for (final String host in const <String>['127.0.0.1', 'localhost']) { final ValidationMessage msg = _noProxy.contains(host) ? ValidationMessage('NO_PROXY contains $host') : ValidationMessage.hint('NO_PROXY does not contain $host');
diff --git a/packages/flutter_tools/lib/src/reporting/github_template.dart b/packages/flutter_tools/lib/src/reporting/github_template.dart index 367232e..ff35e3b 100644 --- a/packages/flutter_tools/lib/src/reporting/github_template.dart +++ b/packages/flutter_tools/lib/src/reporting/github_template.dart
@@ -99,7 +99,7 @@ description.writeln('### Plugins'); // Format is: // camera=/path/to/.pub-cache/hosted/pub.dartlang.org/camera-0.5.7+2/ - for (String plugin in project.flutterPluginsFile.readAsLinesSync()) { + for (final String plugin in project.flutterPluginsFile.readAsLinesSync()) { final List<String> pluginParts = plugin.split('='); if (pluginParts.length != 2) { continue;
diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index 15e4b03..9e46694 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart
@@ -249,7 +249,7 @@ return; } final List<Future<void>> futures = <Future<void>>[]; - for (FlutterView view in flutterViews) { + for (final FlutterView view in flutterViews) { if (view != null && view.uiIsolate != null) { assert(!view.uiIsolate.pauseEvent.isPauseEvent); futures.add(view.uiIsolate.flutterExit()); @@ -283,7 +283,7 @@ final Uri deviceEntryUri = devFS.baseUri.resolveUri(globals.fs.path.toUri(entryPath)); final Uri devicePackagesUri = devFS.baseUri.resolve('.packages'); return <Future<Map<String, dynamic>>>[ - for (FlutterView view in views) + for (final FlutterView view in views) view.uiIsolate.reloadSources( pause: pause, rootLibUri: deviceEntryUri, @@ -302,68 +302,68 @@ } Future<void> debugDumpApp() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterDebugDumpApp(); } } Future<void> debugDumpRenderTree() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterDebugDumpRenderTree(); } } Future<void> debugDumpLayerTree() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterDebugDumpLayerTree(); } } Future<void> debugDumpSemanticsTreeInTraversalOrder() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterDebugDumpSemanticsTreeInTraversalOrder(); } } Future<void> debugDumpSemanticsTreeInInverseHitTestOrder() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterDebugDumpSemanticsTreeInInverseHitTestOrder(); } } Future<void> toggleDebugPaintSizeEnabled() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterToggleDebugPaintSizeEnabled(); } } Future<void> toggleDebugCheckElevationsEnabled() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterToggleDebugCheckElevationsEnabled(); } } Future<void> debugTogglePerformanceOverlayOverride() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterTogglePerformanceOverlayOverride(); } } Future<void> toggleWidgetInspector() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterToggleWidgetInspector(); } } Future<void> toggleProfileWidgetBuilds() async { - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterToggleProfileWidgetBuilds(); } } Future<String> togglePlatform({ String from }) async { final String to = nextPlatform(from, featureFlags); - for (FlutterView view in views) { + for (final FlutterView view in views) { await view.uiIsolate.flutterPlatformOverride(to); } return to; @@ -578,7 +578,7 @@ /// Returns `true` if any of the devices is running Android Q. Future<bool> hasDeviceRunningAndroidQ(List<FlutterDevice> flutterDevices) async { - for (FlutterDevice flutterDevice in flutterDevices) { + for (final FlutterDevice flutterDevice in flutterDevices) { final String sdkNameAndVersion = await flutterDevice.device.sdkNameAndVersion; if (sdkNameAndVersion != null && sdkNameAndVersion.startsWith('Android 10')) { return true; @@ -755,77 +755,77 @@ Future<void> refreshViews() async { final List<Future<void>> futures = <Future<void>>[ - for (FlutterDevice device in flutterDevices) device.refreshViews(), + for (final FlutterDevice device in flutterDevices) device.refreshViews(), ]; await Future.wait(futures); } Future<void> debugDumpApp() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.debugDumpApp(); } } Future<void> debugDumpRenderTree() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.debugDumpRenderTree(); } } Future<void> debugDumpLayerTree() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.debugDumpLayerTree(); } } Future<void> debugDumpSemanticsTreeInTraversalOrder() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.debugDumpSemanticsTreeInTraversalOrder(); } } Future<void> debugDumpSemanticsTreeInInverseHitTestOrder() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.debugDumpSemanticsTreeInInverseHitTestOrder(); } } Future<void> debugToggleDebugPaintSizeEnabled() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.toggleDebugPaintSizeEnabled(); } } Future<void> debugToggleDebugCheckElevationsEnabled() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.toggleDebugCheckElevationsEnabled(); } } Future<void> debugTogglePerformanceOverlayOverride() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.debugTogglePerformanceOverlayOverride(); } } Future<void> debugToggleWidgetInspector() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.toggleWidgetInspector(); } } Future<void> debugToggleProfileWidgetBuilds() async { await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.toggleProfileWidgetBuilds(); } } @@ -845,7 +845,7 @@ if (supportsServiceProtocol && isRunningDebug) { await device.refreshViews(); try { - for (FlutterView view in device.views) { + for (final FlutterView view in device.views) { await view.uiIsolate.flutterDebugAllowBanner(false); } } catch (error) { @@ -859,7 +859,7 @@ } finally { if (supportsServiceProtocol && isRunningDebug) { try { - for (FlutterView view in device.views) { + for (final FlutterView view in device.views) { await view.uiIsolate.flutterDebugAllowBanner(true); } } catch (error) { @@ -882,7 +882,7 @@ await refreshViews(); final String from = await flutterDevices[0].views[0].uiIsolate.flutterPlatformOverride(); String to; - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { to = await device.togglePlatform(from: from); } globals.printStatus('Switched operating system to $to'); @@ -913,7 +913,7 @@ _finished = Completer<int>(); bool viewFound = false; - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { await device.connect( reloadSources: reloadSources, restart: restart, @@ -935,7 +935,7 @@ } // Listen for service protocol connection to close. - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { // 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. @@ -993,7 +993,7 @@ Future<void> exitApp() async { final List<Future<void>> futures = <Future<void>>[ - for (FlutterDevice device in flutterDevices) device.exitApps(), + for (final FlutterDevice device in flutterDevices) device.exitApps(), ]; await Future.wait(futures); appFinished(); @@ -1116,7 +1116,7 @@ /// Unregisters terminal signal and keystroke handlers. void stop() { assert(residentRunner.stayResident); - for (MapEntry<io.ProcessSignal, Object> entry in _signalTokens.entries) { + for (final MapEntry<io.ProcessSignal, Object> entry in _signalTokens.entries) { signals.removeHandler(entry.key, entry.value); } _signalTokens.clear(); @@ -1154,7 +1154,7 @@ final List<FlutterView> views = residentRunner.flutterDevices .expand((FlutterDevice d) => d.views).toList(); globals.printStatus('Connected ${pluralize('view', views.length)}:'); - for (FlutterView v in views) { + for (final FlutterView v in views) { globals.printStatus('${v.uiIsolate.name} (${v.uiIsolate.id})', indent: 2); } return true; @@ -1189,7 +1189,7 @@ await residentRunner.exit(); return true; case 's': - for (FlutterDevice device in residentRunner.flutterDevices) { + for (final FlutterDevice device in residentRunner.flutterDevices) { if (device.device.supportsScreenshot) { await residentRunner.screenshot(device); }
diff --git a/packages/flutter_tools/lib/src/run_cold.dart b/packages/flutter_tools/lib/src/run_cold.dart index 02f95ae..1211452 100644 --- a/packages/flutter_tools/lib/src/run_cold.dart +++ b/packages/flutter_tools/lib/src/run_cold.dart
@@ -60,7 +60,7 @@ } } - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { final int result = await device.runCold( coldRunner: this, route: route, @@ -90,7 +90,7 @@ globals.printTrace('Application running.'); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { if (device.vmService == null) { continue; } @@ -142,12 +142,12 @@ } return 2; } - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { device.initLogReader(); } await refreshViews(); - for (FlutterDevice device in flutterDevices) { - for (FlutterView view in device.views) { + for (final FlutterDevice device in flutterDevices) { + for (final FlutterView view in device.views) { globals.printTrace('Connected to $view.'); } } @@ -170,7 +170,7 @@ @override Future<void> cleanupAtFinish() async { - for (FlutterDevice flutterDevice in flutterDevices) { + for (final FlutterDevice flutterDevice in flutterDevices) { await flutterDevice.device.dispose(); } @@ -181,7 +181,7 @@ void printHelp({ @required bool details }) { bool haveDetails = false; bool haveAnything = false; - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { final String dname = device.device.name; if (device.vmService != null) { globals.printStatus('An Observatory debugger and profiler on $dname is ' @@ -209,7 +209,7 @@ @override Future<void> preExit() async { - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { // If we're running in release mode, stop the app using the device logic. if (device.vmService == null) { await device.device.stopApp(device.package);
diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index e8d9337..2eadea5 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart
@@ -137,7 +137,7 @@ String klass, bool isStatic, ) async { - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { if (device.generator != null) { final CompilerOutput compilerOutput = await device.generator.compileExpression(expression, definitions, @@ -155,7 +155,7 @@ final Stopwatch stopwatch = Stopwatch()..start(); final UpdateFSReport results = UpdateFSReport(success: true); final List<Uri> invalidated = <Uri>[Uri.parse(libraryId)]; - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { results.incorporateResults(await device.updateDevFS( mainPath: mainPath, target: target, @@ -178,7 +178,7 @@ getReloadPath(fullRestart: false), from: projectRootPath, ); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { final List<Future<Map<String, dynamic>>> reportFutures = device.reloadSources( entryPath, pause: false, ); @@ -190,8 +190,8 @@ return OperationResult(1, error.toString()); } - for (FlutterDevice device in flutterDevices) { - for (FlutterView view in device.views) { + for (final FlutterDevice device in flutterDevices) { + for (final FlutterView view in device.views) { await view.uiIsolate.flutterFastReassemble(classId); } } @@ -227,7 +227,7 @@ return 2; } - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { device.initLogReader(); } try { @@ -257,13 +257,13 @@ } await refreshViews(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { // VM must have accepted the kernel binary, there will be no reload // report, so we let incremental compiler know that source code was accepted. if (device.generator != null) { device.generator.accept(); } - for (FlutterView view in device.views) { + for (final FlutterView view in device.views) { globals.printTrace('Connected to $view.'); } } @@ -330,7 +330,7 @@ firstBuildTime = DateTime.now(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { final int result = await device.runHot( hotRunner: this, route: route, @@ -349,7 +349,7 @@ Future<List<Uri>> _initDevFS() async { final String fsName = globals.fs.path.basename(projectRootPath); return <Uri>[ - for (FlutterDevice device in flutterDevices) + for (final FlutterDevice device in flutterDevices) await device.setupDevFS( fsName, globals.fs.directory(projectRootPath), @@ -378,7 +378,7 @@ asyncScanning: hotRunnerConfig.asyncScanning, ); final UpdateFSReport results = UpdateFSReport(success: true); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { results.incorporateResults(await device.updateDevFS( mainPath: mainPath, target: target, @@ -397,14 +397,14 @@ } void _resetDirtyAssets() { - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { device.devFS.assetPathsToEvict.clear(); } } Future<void> _cleanupDevFS() async { final List<Future<void>> futures = <Future<void>>[]; - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { if (device.devFS != null) { // Cleanup the devFS, but don't wait indefinitely. // We ignore any errors, because it's not clear what we would do anyway. @@ -426,7 +426,7 @@ Uri assetsDirectoryUri, ) { return Future.wait(<Future<void>>[ - for (FlutterView view in device.views) + for (final FlutterView view in device.views) view.runFromSource(entryUri, packagesUri, assetsDirectoryUri), ]); } @@ -434,7 +434,7 @@ Future<void> _launchFromDevFS(String mainScript) async { final String entryUri = globals.fs.path.relative(mainScript, from: projectRootPath); final List<Future<void>> futures = <Future<void>>[]; - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { final Uri deviceEntryUri = device.devFS.baseUri.resolveUri( globals.fs.path.toUri(entryUri)); final Uri devicePackagesUri = device.devFS.baseUri.resolve('.packages'); @@ -448,8 +448,8 @@ await Future.wait(futures); if (benchmarkMode) { futures.clear(); - for (FlutterDevice device in flutterDevices) { - for (FlutterView view in device.views) { + for (final FlutterDevice device in flutterDevices) { + for (final FlutterView view in device.views) { futures.add(view.flushUIThreadTasks()); } } @@ -471,7 +471,7 @@ // compiler for full application recompilation on restart. final UpdateFSReport updatedDevFS = await _updateDevFS(fullRestart: true); if (!updatedDevFS.success) { - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { if (device.generator != null) { await device.generator.reject(); } @@ -479,7 +479,7 @@ return OperationResult(1, 'DevFS synchronization failed'); } _resetDirtyAssets(); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { // VM must have accepted the kernel binary, there will be no reload // report, so we let incremental compiler know that source code was accepted. if (device.generator != null) { @@ -488,8 +488,8 @@ } // Check if the isolate is paused and resume it. final List<Future<void>> futures = <Future<void>>[]; - for (FlutterDevice device in flutterDevices) { - for (FlutterView view in device.views) { + for (final FlutterDevice device in flutterDevices) { + for (final FlutterView view in device.views) { if (view.uiIsolate == null) { continue; } @@ -522,12 +522,12 @@ // In benchmark mode, make sure all stream notifications have finished. if (benchmarkMode) { final List<Future<void>> isolateNotifications = <Future<void>>[]; - for (FlutterDevice device in flutterDevices) { - for (FlutterView view in device.views) { + for (final FlutterDevice device in flutterDevices) { + for (final FlutterView view in device.views) { isolateNotifications.add( view.owner.vm.vmService.onIsolateEvent .then((Stream<ServiceEvent> serviceEvents) async { - await for (ServiceEvent serviceEvent in serviceEvents) { + await for (final ServiceEvent serviceEvent in serviceEvents) { if (serviceEvent.owner.name.contains('_spawn') && serviceEvent.kind == ServiceEvent.kIsolateExit) { return; @@ -575,7 +575,7 @@ if (!(reloadReport['success'] as bool)) { if (printErrors) { globals.printError('Hot reload was rejected:'); - for (Map<String, dynamic> notice in reloadReport['details']['notices']) { + for (final Map<String, dynamic> notice in reloadReport['details']['notices']) { globals.printError('${notice['message']}'); } } @@ -747,8 +747,8 @@ String reason, void Function(String message) onSlow, }) async { - for (FlutterDevice device in flutterDevices) { - for (FlutterView view in device.views) { + for (final FlutterDevice device in flutterDevices) { + for (final FlutterView view in device.views) { if (view.uiIsolate == null) { return OperationResult(2, 'Application isolate not found', fatal: true); } @@ -785,7 +785,7 @@ from: projectRootPath, ); final List<Future<DeviceReloadReport>> allReportsFutures = <Future<DeviceReloadReport>>[]; - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { if (_runningFromSnapshot) { // Asset directory has to be set only once when we switch from // running from snapshot to running from uploaded files. @@ -809,7 +809,7 @@ )); } final List<DeviceReloadReport> reports = await Future.wait(allReportsFutures); - for (DeviceReloadReport report in reports) { + for (final DeviceReloadReport report in reports) { final Map<String, dynamic> reloadReport = report.reports[0]; if (!validateReloadReport(reloadReport)) { // Reload failed. @@ -859,10 +859,10 @@ final Stopwatch reassembleTimer = Stopwatch()..start(); // Reload the isolate. final List<Future<void>> allDevices = <Future<void>>[]; - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { globals.printTrace('Sending reload events to ${device.device.name}'); final List<Future<ServiceObject>> futuresViews = <Future<ServiceObject>>[]; - for (FlutterView view in device.views) { + for (final FlutterView view in device.views) { globals.printTrace('Sending reload event to "${view.uiIsolate.name}"'); futuresViews.add(view.uiIsolate.reload()); } @@ -878,8 +878,8 @@ final List<FlutterView> reassembleViews = <FlutterView>[]; String serviceEventKind; int pausedIsolatesFound = 0; - for (FlutterDevice device in flutterDevices) { - for (FlutterView view in device.views) { + for (final FlutterDevice device in flutterDevices) { + for (final FlutterView view in device.views) { // Check if the isolate is paused, and if so, don't reassemble. Ignore the // PostPauseEvent event - the client requesting the pause will resume the app. final ServiceEvent pauseEvent = view.uiIsolate.pauseEvent; @@ -910,7 +910,7 @@ globals.printTrace('Reassembling application'); bool failedReassemble = false; final List<Future<void>> futures = <Future<void>>[ - for (FlutterView view in reassembleViews) + for (final FlutterView view in reassembleViews) () async { try { await view.uiIsolate.flutterReassemble(); @@ -933,7 +933,7 @@ globals.printTrace('This is taking a long time; will now check for paused isolates.'); int postReloadPausedIsolatesFound = 0; String serviceEventKind; - for (FlutterView view in reassembleViews) { + for (final FlutterView view in reassembleViews) { await view.uiIsolate.reload(); final ServiceEvent pauseEvent = view.uiIsolate.pauseEvent; if (pauseEvent != null && pauseEvent.isPauseEvent) { @@ -1030,8 +1030,8 @@ } bool _isPaused() { - for (FlutterDevice device in flutterDevices) { - for (FlutterView view in device.views) { + for (final FlutterDevice device in flutterDevices) { + for (final FlutterView view in device.views) { if (view.uiIsolate != null) { final ServiceEvent pauseEvent = view.uiIsolate.pauseEvent; if (pauseEvent != null && pauseEvent.isPauseEvent) { @@ -1055,7 +1055,7 @@ TerminalColor.red, ); globals.printStatus(message); - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { final String dname = device.device.name; globals.printStatus('An Observatory debugger and profiler on $dname is ' 'available at: ${device.vmService.httpAddress}'); @@ -1073,7 +1073,7 @@ Future<void> _evictDirtyAssets() { final List<Future<Map<String, dynamic>>> futures = <Future<Map<String, dynamic>>>[]; - for (FlutterDevice device in flutterDevices) { + for (final FlutterDevice device in flutterDevices) { if (device.devFS.assetPathsToEvict.isEmpty) { continue; } @@ -1081,7 +1081,7 @@ globals.printError('Application isolate not found for $device'); continue; } - for (String assetPath in device.devFS.assetPathsToEvict) { + for (final String assetPath in device.devFS.assetPathsToEvict) { futures.add(device.views.first.uiIsolate.flutterEvictAsset(assetPath)); } device.devFS.assetPathsToEvict.clear(); @@ -1109,7 +1109,7 @@ @override Future<void> cleanupAtFinish() async { - for (FlutterDevice flutterDevice in flutterDevices) { + for (final FlutterDevice flutterDevice in flutterDevices) { await flutterDevice.device.dispose(); } await _cleanupDevFS(); @@ -1161,7 +1161,7 @@ final Stopwatch stopwatch = Stopwatch()..start(); final List<Uri> urisToScan = <Uri>[ // Don't watch pub cache directories to speed things up a little. - for (Uri uri in urisToMonitor) + for (final Uri uri in urisToMonitor) if (_isNotInPubCache(uri)) uri, // We need to check the .packages file too since it is not used in compilation.
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index a04e402..0d81d6f 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart
@@ -445,7 +445,7 @@ : null; if (argParser.options.containsKey(FlutterOptions.kEnableExperiment) && argResults[FlutterOptions.kEnableExperiment] != null) { - for (String expFlag in stringsArg(FlutterOptions.kEnableExperiment)) { + for (final String expFlag in stringsArg(FlutterOptions.kEnableExperiment)) { final String flag = '--enable-experiment=' + expFlag; if (extraFrontEndOptions != null) { extraFrontEndOptions += ',' + flag; @@ -743,7 +743,7 @@ final Set<DevelopmentArtifact> artifacts = <DevelopmentArtifact>{ DevelopmentArtifact.universal, }; - for (Device device in devices) { + for (final Device device in devices) { final TargetPlatform targetPlatform = await device.targetPlatform; final DevelopmentArtifact developmentArtifact = _artifactFromTargetPlatform(targetPlatform); if (developmentArtifact != null) {
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 ca6d672..7731bd0 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
@@ -206,7 +206,7 @@ } Command<void> command = commands[error.commands.first]; - for (String commandName in error.commands.skip(1)) { + for (final String commandName in error.commands.skip(1)) { command = command.subcommands[commandName]; } @@ -386,7 +386,7 @@ tmpBasename = tmpBasename.substring(tmpBasename.indexOf('_') + 1); // Strip suffix for various archs. final List<String> suffixes = <String>['_arm', '_arm64', '_x86', '_x64']; - for (String suffix in suffixes) { + for (final String suffix in suffixes) { tmpBasename = tmpBasename.replaceFirst(RegExp('$suffix\$'), ''); } return 'host_' + tmpBasename;
diff --git a/packages/flutter_tools/lib/src/template.dart b/packages/flutter_tools/lib/src/template.dart index f47f450..e37fddd 100644 --- a/packages/flutter_tools/lib/src/template.dart +++ b/packages/flutter_tools/lib/src/template.dart
@@ -33,7 +33,7 @@ final List<FileSystemEntity> templateFiles = templateSource.listSync(recursive: true); - for (FileSystemEntity entity in templateFiles) { + for (final FileSystemEntity entity in templateFiles) { if (entity is! File) { // We are only interesting in template *file* URIs. continue;
diff --git a/packages/flutter_tools/lib/src/test/coverage_collector.dart b/packages/flutter_tools/lib/src/test/coverage_collector.dart index b9dad72..2d8e6a8 100644 --- a/packages/flutter_tools/lib/src/test/coverage_collector.dart +++ b/packages/flutter_tools/lib/src/test/coverage_collector.dart
@@ -188,7 +188,7 @@ Future<Map<String, dynamic>> _getAllCoverage(VMService service, bool Function(String) libraryPredicate) async { await service.getVM(); final List<Map<String, dynamic>> coverage = <Map<String, dynamic>>[]; - for (Isolate isolateRef in service.vm.isolates) { + for (final Isolate isolateRef in service.vm.isolates) { await isolateRef.load(); final Map<String, dynamic> scriptList = await isolateRef.invokeRpcRaw('getScripts', params: <String, dynamic>{'isolateId': isolateRef.id}); final List<Future<void>> futures = <Future<void>>[]; @@ -204,7 +204,7 @@ if (scriptList['scripts'] == null) { continue; } - for (Map<String, dynamic> script in scriptList['scripts']) { + for (final Map<String, dynamic> script in scriptList['scripts']) { if (!libraryPredicate(script['uri'] as String)) { continue; } @@ -243,9 +243,9 @@ List<Map<String, dynamic>> coverage, ) { final Map<String, Map<int, int>> hitMaps = <String, Map<int, int>>{}; - for (String scriptId in scripts.keys) { + for (final String scriptId in scripts.keys) { final Map<String, dynamic> sourceReport = sourceReports[scriptId]; - for (Map<String, dynamic> range in sourceReport['ranges']) { + for (final Map<String, dynamic> range in sourceReport['ranges']) { final Map<String, dynamic> coverage = castStringKeyedMap(range['coverage']); // Coverage reports may sometimes be null for a Script. if (coverage == null) { @@ -264,14 +264,14 @@ continue; } if (hits != null) { - for (int hit in hits) { + for (final int hit in hits) { final int line = _lineAndColumn(hit, tokenPositions)[0]; final int current = hitMap[line] ?? 0; hitMap[line] = current + 1; } } if (misses != null) { - for (int miss in misses) { + for (final int miss in misses) { final int line = _lineAndColumn(miss, tokenPositions)[0]; hitMap[line] ??= 0; }
diff --git a/packages/flutter_tools/lib/src/test/flutter_platform.dart b/packages/flutter_tools/lib/src/test/flutter_platform.dart index 8b73b57..c47af1e 100644 --- a/packages/flutter_tools/lib/src/test/flutter_platform.dart +++ b/packages/flutter_tools/lib/src/test/flutter_platform.dart
@@ -678,7 +678,7 @@ } finally { globals.printTrace('test $ourTestCount: cleaning up...'); // Finalizers are treated like a stack; run them in reverse order. - for (Finalizer finalizer in finalizers.reversed) { + for (final Finalizer finalizer in finalizers.reversed) { try { await finalizer(); } catch (error, stack) { @@ -850,7 +850,7 @@ void reportObservatoryUri(Uri uri), }) { const String observatoryString = 'Observatory listening on '; - for (Stream<List<int>> stream in <Stream<List<int>>>[ + for (final Stream<List<int>> stream in <Stream<List<int>>>[ process.stderr, process.stdout, ]) {
diff --git a/packages/flutter_tools/lib/src/test/flutter_web_platform.dart b/packages/flutter_tools/lib/src/test/flutter_web_platform.dart index 7aa705b..c638f67 100644 --- a/packages/flutter_tools/lib/src/test/flutter_web_platform.dart +++ b/packages/flutter_tools/lib/src/test/flutter_web_platform.dart
@@ -440,7 +440,7 @@ /// the longest matching prefix wins. void add(String path, shelf.Handler handler) { _Node node = _paths; - for (String component in p.url.split(path)) { + for (final String component in p.url.split(path)) { node = node.children.putIfAbsent(component, () => _Node()); } node.handler = handler; @@ -489,7 +489,7 @@ // Start this canceled because we don't want it to start ticking until we // get some response from the iframe. _timer = RestartableTimer(const Duration(seconds: 3), () { - for (RunnerSuiteController controller in _controllers) { + for (final RunnerSuiteController controller in _controllers) { controller.setDebugging(true); } }) @@ -503,7 +503,7 @@ if (!_closed) { _timer.reset(); } - for (RunnerSuiteController controller in _controllers) { + for (final RunnerSuiteController controller in _controllers) { controller.setDebugging(false); } @@ -933,7 +933,7 @@ .transform<String>(utf8.decoder) .transform<String>(const LineSplitter()) .map<Object>(jsonDecode); - await for (Object command in commands) { + await for (final Object command in commands) { if (command is Map<String, dynamic>) { File imageFile = File(command['imageFile']); Uri goldenKey = Uri.parse(command['key']);
diff --git a/packages/flutter_tools/lib/src/test/runner.dart b/packages/flutter_tools/lib/src/test/runner.dart index 593603d..490cf50 100644 --- a/packages/flutter_tools/lib/src/test/runner.dart +++ b/packages/flutter_tools/lib/src/test/runner.dart
@@ -61,9 +61,9 @@ else ...<String>['-r', 'compact'], '--concurrency=$concurrency', - for (String name in names) + for (final String name in names) ...<String>['--name', name], - for (String plainName in plainNames) + for (final String plainName in plainNames) ...<String>['--plain-name', plainName], '--test-randomize-ordering-seed=$randomSeed', ];
diff --git a/packages/flutter_tools/lib/src/tracing.dart b/packages/flutter_tools/lib/src/tracing.dart index 623a10d..020d068 100644 --- a/packages/flutter_tools/lib/src/tracing.dart +++ b/packages/flutter_tools/lib/src/tracing.dart
@@ -51,7 +51,7 @@ } }); bool done = false; - for (FlutterView view in vmService.vm.views) { + for (final FlutterView view in vmService.vm.views) { if (await view.uiIsolate.flutterAlreadyPaintedFirstUsefulFrame()) { done = true; break;
diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart index 9d0450e..99adc78 100644 --- a/packages/flutter_tools/lib/src/vmservice.dart +++ b/packages/flutter_tools/lib/src/vmservice.dart
@@ -856,7 +856,7 @@ void _removeDeadIsolates(List<Isolate> newIsolates) { // Build a set of new isolates. final Set<String> newIsolateSet = <String>{}; - for (Isolate iso in newIsolates) { + for (final Isolate iso in newIsolates) { newIsolateSet.add(iso.id); }
diff --git a/packages/flutter_tools/lib/src/vscode/vscode.dart b/packages/flutter_tools/lib/src/vscode/vscode.dart index 6410493..b110046 100644 --- a/packages/flutter_tools/lib/src/vscode/vscode.dart +++ b/packages/flutter_tools/lib/src/vscode/vscode.dart
@@ -204,7 +204,7 @@ final List<VsCode> results = <VsCode>[]; - for (_VsCodeInstallLocation searchLocation in searchLocations) { + for (final _VsCodeInstallLocation searchLocation in searchLocations) { if (globals.fs.isDirectorySync(searchLocation.installPath)) { final String extensionDirectory = globals.fs.path.join(homeDirPath, searchLocation.extensionsFolder, 'extensions');
diff --git a/packages/flutter_tools/lib/src/web/compile.dart b/packages/flutter_tools/lib/src/web/compile.dart index 8f024d2..c062031 100644 --- a/packages/flutter_tools/lib/src/web/compile.dart +++ b/packages/flutter_tools/lib/src/web/compile.dart
@@ -53,7 +53,7 @@ }, )); if (!result.success) { - for (ExceptionMeasurement measurement in result.exceptions.values) { + for (final ExceptionMeasurement measurement in result.exceptions.values) { globals.printError('Target ${measurement.target} failed: ${measurement.exception}', stackTrace: measurement.fatal ? measurement.stackTrace
diff --git a/packages/flutter_tools/lib/src/web/devfs_web.dart b/packages/flutter_tools/lib/src/web/devfs_web.dart index c28815b..e24ef5e 100644 --- a/packages/flutter_tools/lib/src/web/devfs_web.dart +++ b/packages/flutter_tools/lib/src/web/devfs_web.dart
@@ -177,7 +177,7 @@ final Uint8List codeBytes = codeFile.readAsBytesSync(); final Uint8List sourcemapBytes = sourcemapFile.readAsBytesSync(); final Map<String, dynamic> manifest = castStringKeyedMap(json.decode(manifestFile.readAsStringSync())); - for (String filePath in manifest.keys) { + for (final String filePath in manifest.keys) { if (filePath == null) { globals.printTrace('Invalid manfiest file: $filePath'); continue;
diff --git a/packages/flutter_tools/lib/src/windows/windows_device.dart b/packages/flutter_tools/lib/src/windows/windows_device.dart index 1161d6d..f7f0b65 100644 --- a/packages/flutter_tools/lib/src/windows/windows_device.dart +++ b/packages/flutter_tools/lib/src/windows/windows_device.dart
@@ -93,7 +93,7 @@ if (result.exitCode != 0) { return null; } - for (String rawProcess in result.stdout.split('\n')) { + for (final String rawProcess in result.stdout.split('\n')) { final String process = rawProcess.trim(); if (!process.contains(processName)) { continue;