Declare locals final where not reassigned (flutter_tools) (#8570)
diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index 343956d..9075daf 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart
@@ -97,18 +97,18 @@ if (!doctor.iosWorkflow.hasIDeviceId) return <IOSDevice>[]; - List<IOSDevice> devices = <IOSDevice>[]; + final List<IOSDevice> devices = <IOSDevice>[]; for (String id in _getAttachedDeviceIDs(mockIOS)) { - String name = IOSDevice._getDeviceInfo(id, 'DeviceName', mockIOS); + final String name = IOSDevice._getDeviceInfo(id, 'DeviceName', mockIOS); devices.add(new IOSDevice(id, name: name)); } return devices; } static Iterable<String> _getAttachedDeviceIDs([IOSDevice mockIOS]) { - String listerPath = (mockIOS != null) ? mockIOS.listerPath : _checkForCommand('idevice_id'); + final String listerPath = (mockIOS != null) ? mockIOS.listerPath : _checkForCommand('idevice_id'); try { - String output = runSync(<String>[listerPath, '-l']); + final String output = runSync(<String>[listerPath, '-l']); return output.trim().split('\n').where((String s) => s != null && s.isNotEmpty); } catch (e) { return <String>[]; @@ -116,7 +116,7 @@ } static String _getDeviceInfo(String deviceID, String infoKey, [IOSDevice mockIOS]) { - String informerPath = (mockIOS != null) + final String informerPath = (mockIOS != null) ? mockIOS.informerPath : _checkForCommand('ideviceinfo'); return runSync(<String>[informerPath, '-k', infoKey, '-u', deviceID]).trim(); @@ -142,7 +142,7 @@ @override bool isAppInstalled(ApplicationPackage app) { try { - String apps = runCheckedSync(<String>[installerPath, '--list-apps']); + final String apps = runCheckedSync(<String>[installerPath, '--list-apps']); if (new RegExp(app.id, multiLine: true).hasMatch(apps)) { return true; } @@ -157,8 +157,8 @@ @override bool installApp(ApplicationPackage app) { - IOSApp iosApp = app; - Directory bundle = fs.directory(iosApp.deviceBundlePath); + final IOSApp iosApp = app; + final Directory bundle = fs.directory(iosApp.deviceBundlePath); if (!bundle.existsSync()) { printError("Could not find application bundle at ${bundle.path}; have you run 'flutter build ios'?"); return false; @@ -203,7 +203,7 @@ printTrace('Building ${app.name} for $id'); // Step 1: Build the precompiled/DBC application if necessary. - XcodeBuildResult buildResult = await buildXcodeProject(app: app, mode: mode, target: mainPath, buildForDevice: true); + final XcodeBuildResult buildResult = await buildXcodeProject(app: app, mode: mode, target: mainPath, buildForDevice: true); if (!buildResult.success) { printError('Could not build the precompiled application for the device.'); await diagnoseXcodeBuildFailure(buildResult); @@ -216,15 +216,15 @@ } // Step 2: Check that the application exists at the specified path. - IOSApp iosApp = app; - Directory bundle = fs.directory(iosApp.deviceBundlePath); + final IOSApp iosApp = app; + final Directory bundle = fs.directory(iosApp.deviceBundlePath); if (!bundle.existsSync()) { printError('Could not find the built application bundle at ${bundle.path}.'); return new LaunchResult.failed(); } // Step 3: Attempt to install the application on the device. - List<String> launchArguments = <String>["--enable-dart-profiling"]; + final List<String> launchArguments = <String>["--enable-dart-profiling"]; if (debuggingOptions.startPaused) launchArguments.add("--start-paused"); @@ -240,7 +240,7 @@ if (platformArgs['trace-startup'] ?? false) launchArguments.add('--trace-startup'); - List<String> launchCommand = <String>[ + final List<String> launchCommand = <String>[ '/usr/bin/env', 'ios-deploy', '--id', @@ -271,12 +271,12 @@ // TODO(danrubel): The Android device class does something similar to this code below. // The various Device subclasses should be refactored and common code moved into the superclass. - ProtocolDiscovery observatoryDiscovery = new ProtocolDiscovery.observatory( + final ProtocolDiscovery observatoryDiscovery = new ProtocolDiscovery.observatory( getLogReader(app: app), portForwarder: portForwarder, hostPort: debuggingOptions.observatoryPort); - ProtocolDiscovery diagnosticDiscovery = new ProtocolDiscovery.diagnosticService( + final ProtocolDiscovery diagnosticDiscovery = new ProtocolDiscovery.diagnosticService( getLogReader(app: app), portForwarder: portForwarder, hostPort: debuggingOptions.diagnosticPort); - Future<Uri> forwardObsUri = observatoryDiscovery.nextUri(); + final Future<Uri> forwardObsUri = observatoryDiscovery.nextUri(); Future<Uri> forwardDiagUri; if (debuggingOptions.buildMode == BuildMode.debug) { forwardDiagUri = diagnosticDiscovery.nextUri(); @@ -284,9 +284,9 @@ forwardDiagUri = new Future<Uri>.value(null); } - Future<int> launch = runCommandAndStreamOutput(launchCommand, trace: true); + final Future<int> launch = runCommandAndStreamOutput(launchCommand, trace: true); - List<Uri> uris = await launch.then<List<Uri>>((int result) async { + final List<Uri> uris = await launch.then<List<Uri>>((int result) async { installationResult = result; if (result != 0) { @@ -392,7 +392,7 @@ // // iOS 9 format: Runner[297] <Notice>: // iOS 10 format: Runner(libsystem_asl.dylib)[297] <Notice>: - String appName = app == null ? '' : app.name.replaceAll('.app', ''); + final String appName = app == null ? '' : app.name.replaceAll('.app', ''); _lineRegex = new RegExp(appName + r'(\(.*\))?\[[\d]+\] <[A-Za-z]+>: '); } @@ -420,7 +420,7 @@ } void _onLine(String line) { - Match match = _lineRegex.firstMatch(line); + final Match match = _lineRegex.firstMatch(line); if (match != null) { // Only display the log line after the initial device and executable information. @@ -451,14 +451,14 @@ } // Usage: iproxy LOCAL_TCP_PORT DEVICE_TCP_PORT UDID - Process process = await runCommand(<String>[ + final Process process = await runCommand(<String>[ device.iproxyPath, hostPort.toString(), devicePort.toString(), device.id, ]); - ForwardedPort forwardedPort = new ForwardedPort.withContext(hostPort, + final ForwardedPort forwardedPort = new ForwardedPort.withContext(hostPort, devicePort, process); printTrace("Forwarded port $forwardedPort"); @@ -477,7 +477,7 @@ printTrace("Unforwarding port $forwardedPort"); - Process process = forwardedPort.context; + final Process process = forwardedPort.context; if (process != null) { processManager.killPid(process.pid);
diff --git a/packages/flutter_tools/lib/src/ios/ios_workflow.dart b/packages/flutter_tools/lib/src/ios/ios_workflow.dart index 6a672f8..3154fab 100644 --- a/packages/flutter_tools/lib/src/ios/ios_workflow.dart +++ b/packages/flutter_tools/lib/src/ios/ios_workflow.dart
@@ -46,7 +46,7 @@ if (!hasIosDeploy) return false; try { - Version version = new Version.parse(iosDeployVersionText); + final Version version = new Version.parse(iosDeployVersionText); return version >= new Version.parse(iosDeployMinimumVersion); } on FormatException catch (_) { return false; @@ -55,7 +55,7 @@ @override Future<ValidationResult> validate() async { - List<ValidationMessage> messages = <ValidationMessage>[]; + final List<ValidationMessage> messages = <ValidationMessage>[]; ValidationType xcodeStatus = ValidationType.missing; ValidationType pythonStatus = ValidationType.missing; ValidationType brewStatus = ValidationType.missing; @@ -143,7 +143,7 @@ } else { // Check for compatibility between libimobiledevice and Xcode. // TODO(cbracken) remove this check once libimobiledevice > 1.2.0 is released. - ProcessResult result = (await runAsync(<String>['idevice_id', '-l'])).processResult; + final ProcessResult result = (await runAsync(<String>['idevice_id', '-l'])).processResult; if (result.exitCode == 0 && result.stdout.isNotEmpty && !exitsHappy(<String>['ideviceName'])) { brewStatus = ValidationType.partial; messages.add(new ValidationMessage.error(
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index 599521f..26b6c93 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -42,7 +42,7 @@ } else { try { printTrace('xcrun clang'); - ProcessResult result = processManager.runSync(<String>['/usr/bin/xcrun', 'clang']); + final ProcessResult result = processManager.runSync(<String>['/usr/bin/xcrun', 'clang']); if (result.stdout != null && result.stdout.contains('license')) _eulaSigned = false; @@ -88,8 +88,8 @@ if (!xcodeVersionRegex.hasMatch(xcodeVersionText)) return false; - String version = xcodeVersionRegex.firstMatch(xcodeVersionText).group(1); - List<String> components = version.split('.'); + final String version = xcodeVersionRegex.firstMatch(xcodeVersionText).group(1); + final List<String> components = version.split('.'); _xcodeMajorVersion = int.parse(components[0]); _xcodeMinorVersion = components.length == 1 ? 0 : int.parse(components[1]); @@ -115,7 +115,7 @@ bool buildForDevice, bool codesign: true }) async { - String flutterProjectPath = fs.currentDirectory.path; + final String flutterProjectPath = fs.currentDirectory.path; updateXcodeGeneratedProperties(flutterProjectPath, mode, target); if (!_checkXcodeVersion()) @@ -126,7 +126,7 @@ await _addServicesToBundle(fs.directory(app.appDirectory)); - List<String> commands = <String>[ + final List<String> commands = <String>[ '/usr/bin/env', 'xcrun', 'xcodebuild', @@ -136,7 +136,7 @@ 'ONLY_ACTIVE_ARCH=YES', ]; - List<FileSystemEntity> contents = fs.directory(app.appDirectory).listSync(); + final List<FileSystemEntity> contents = fs.directory(app.appDirectory).listSync(); for (FileSystemEntity entity in contents) { if (fs.path.extension(entity.path) == '.xcworkspace') { commands.addAll(<String>[ @@ -164,7 +164,7 @@ ); } - RunResult result = await runAsync( + final RunResult result = await runAsync( commands, workingDirectory: app.appDirectory, allowReentrantFlutter: true @@ -192,8 +192,8 @@ ); } else { // Look for 'clean build/Release-iphoneos/Runner.app'. - RegExp regexp = new RegExp(r' clean (\S*\.app)$', multiLine: true); - Match match = regexp.firstMatch(result.stdout); + final RegExp regexp = new RegExp(r' clean (\S*\.app)$', multiLine: true); + final Match match = regexp.firstMatch(result.stdout); String outputDir; if (match != null) outputDir = fs.path.join(app.appDirectory, match.group(1)); @@ -202,9 +202,9 @@ } Future<Null> diagnoseXcodeBuildFailure(XcodeBuildResult result) async { - File plistFile = fs.file('ios/Runner/Info.plist'); + final File plistFile = fs.file('ios/Runner/Info.plist'); if (plistFile.existsSync()) { - String plistContent = plistFile.readAsStringSync(); + final String plistContent = plistFile.readAsStringSync(); if (plistContent.contains('com.yourcompany')) { printError(''); printError('It appears that your application still contains the default signing identifier.'); @@ -232,7 +232,7 @@ assert(result.xcodeBuildExecution.appDirectory != null); if (result.xcodeBuildExecution.buildForPhysicalDevice && result.xcodeBuildExecution.buildCommands.contains('build')) { - RunResult checkBuildSettings = await runAsync( + final RunResult checkBuildSettings = await runAsync( result.xcodeBuildExecution.buildCommands..add('-showBuildSettings'), workingDirectory: result.xcodeBuildExecution.appDirectory, allowReentrantFlutter: true @@ -302,8 +302,8 @@ if (!platform.isMacOS) return false; try { - String version = runCheckedSync(<String>['xcodebuild', '-version']); - Match match = _xcodeVersionRegExp.firstMatch(version); + final String version = runCheckedSync(<String>['xcodebuild', '-version']); + final Match match = _xcodeVersionRegExp.firstMatch(version); if (int.parse(match[1]) < 7) { printError('Found "${match[0]}". $_xcodeRequirement'); return false; @@ -316,7 +316,7 @@ } Future<Null> _addServicesToBundle(Directory bundle) async { - List<Map<String, String>> services = <Map<String, String>>[]; + final List<Map<String, String>> services = <Map<String, String>>[]; printTrace("Trying to resolve native pub services."); // Step 1: Parse the service configuration yaml files present in the service @@ -325,12 +325,12 @@ printTrace("Found ${services.length} service definition(s)."); // Step 2: Copy framework dylibs to the correct spot for xcodebuild to pick up. - Directory frameworksDirectory = fs.directory(fs.path.join(bundle.path, "Frameworks")); + final Directory frameworksDirectory = fs.directory(fs.path.join(bundle.path, "Frameworks")); await _copyServiceFrameworks(services, frameworksDirectory); // Step 3: Copy the service definitions manifest at the correct spot for // xcodebuild to pick up. - File manifestFile = fs.file(fs.path.join(bundle.path, "ServiceDefinitions.json")); + final File manifestFile = fs.file(fs.path.join(bundle.path, "ServiceDefinitions.json")); _copyServiceDefinitionsManifest(services, manifestFile); } @@ -338,8 +338,8 @@ printTrace("Copying service frameworks to '${fs.path.absolute(frameworksDirectory.path)}'."); frameworksDirectory.createSync(recursive: true); for (Map<String, String> service in services) { - String dylibPath = await getServiceFromUrl(service['ios-framework'], service['root'], service['name']); - File dylib = fs.file(dylibPath); + final String dylibPath = await getServiceFromUrl(service['ios-framework'], service['root'], service['name']); + final File dylib = fs.file(dylibPath); printTrace("Copying ${dylib.path} into bundle."); if (!dylib.existsSync()) { printError("The service dylib '${dylib.path}' does not exist."); @@ -352,12 +352,12 @@ void _copyServiceDefinitionsManifest(List<Map<String, String>> services, File manifest) { printTrace("Creating service definitions manifest at '${manifest.path}'"); - List<Map<String, String>> jsonServices = services.map((Map<String, String> service) => <String, String>{ + final List<Map<String, String>> jsonServices = services.map((Map<String, String> service) => <String, String>{ 'name': service['name'], // Since we have already moved it to the Frameworks directory. Strip away // the directory and basenames. 'framework': fs.path.basenameWithoutExtension(service['ios-framework']) }).toList(); - Map<String, dynamic> json = <String, dynamic>{ 'services' : jsonServices }; + final Map<String, dynamic> json = <String, dynamic>{ 'services' : jsonServices }; manifest.writeAsStringSync(JSON.encode(json), mode: FileMode.WRITE, flush: true); }
diff --git a/packages/flutter_tools/lib/src/ios/plist_utils.dart b/packages/flutter_tools/lib/src/ios/plist_utils.dart index 105c18c..6d727d4 100644 --- a/packages/flutter_tools/lib/src/ios/plist_utils.dart +++ b/packages/flutter_tools/lib/src/ios/plist_utils.dart
@@ -19,10 +19,10 @@ if (!fs.isFileSync(plistFilePath)) return null; - String normalizedPlistPath = fs.path.withoutExtension(fs.path.absolute(plistFilePath)); + final String normalizedPlistPath = fs.path.withoutExtension(fs.path.absolute(plistFilePath)); try { - String value = runCheckedSync(<String>[ + final String value = runCheckedSync(<String>[ '/usr/bin/defaults', 'read', normalizedPlistPath, key ]); return value.isEmpty ? null : value;
diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index 6a82aa9..71b46c4 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart
@@ -61,7 +61,7 @@ return true; if (deviceName == null) { - SimDevice testDevice = _createTestDevice(); + final SimDevice testDevice = _createTestDevice(); if (testDevice == null) { return false; } @@ -72,7 +72,7 @@ // "template" is but the built-in 'Blank' seems to work. -l causes xcrun to // quit after a time limit without killing the simulator. We quit after // 1 second. - List<String> args = <String>[_xcrunPath, 'instruments', '-w', deviceName, '-t', 'Blank', '-l', '1']; + final List<String> args = <String>[_xcrunPath, 'instruments', '-w', deviceName, '-t', 'Blank', '-l', '1']; printTrace(args.join(' ')); runDetached(args); printStatus('Waiting for iOS Simulator to boot...'); @@ -98,11 +98,11 @@ } SimDevice _createTestDevice() { - SimDeviceType deviceType = _findSuitableDeviceType(); + final SimDeviceType deviceType = _findSuitableDeviceType(); if (deviceType == null) return null; - String runtime = _findSuitableRuntime(); + final String runtime = _findSuitableRuntime(); if (runtime == null) return null; @@ -112,8 +112,8 @@ .forEach(_deleteDevice); // Create new device - String deviceName = '${deviceType.name} $_kFlutterTestDeviceSuffix'; - List<String> args = <String>[_xcrunPath, 'simctl', 'create', deviceName, deviceType.identifier, runtime]; + final String deviceName = '${deviceType.name} $_kFlutterTestDeviceSuffix'; + final List<String> args = <String>[_xcrunPath, 'simctl', 'create', deviceName, deviceType.identifier, runtime]; printTrace(args.join(' ')); runCheckedSync(args); @@ -121,8 +121,8 @@ } SimDeviceType _findSuitableDeviceType() { - List<Map<String, dynamic>> allTypes = _list(SimControlListSection.devicetypes); - List<Map<String, dynamic>> usableTypes = allTypes + final List<Map<String, dynamic>> allTypes = _list(SimControlListSection.devicetypes); + final List<Map<String, dynamic>> usableTypes = allTypes .where((Map<String, dynamic> info) => info['name'].startsWith('iPhone')) .toList() ..sort((Map<String, dynamic> r1, Map<String, dynamic> r2) => -compareIphoneVersions(r1['identifier'], r2['identifier'])); @@ -141,8 +141,8 @@ } String _findSuitableRuntime() { - List<Map<String, dynamic>> allRuntimes = _list(SimControlListSection.runtimes); - List<Map<String, dynamic>> usableRuntimes = allRuntimes + final List<Map<String, dynamic>> allRuntimes = _list(SimControlListSection.runtimes); + final List<Map<String, dynamic>> usableRuntimes = allRuntimes .where((Map<String, dynamic> info) => info['name'].startsWith('iOS')) .toList() ..sort((Map<String, dynamic> r1, Map<String, dynamic> r2) => -compareIosVersions(r1['version'], r2['version'])); @@ -159,7 +159,7 @@ void _deleteDevice(SimDevice device) { try { - List<String> args = <String>[_xcrunPath, 'simctl', 'delete', device.name]; + final List<String> args = <String>[_xcrunPath, 'simctl', 'delete', device.name]; printTrace(args.join(' ')); runCheckedSync(args); } catch(e) { @@ -190,9 +190,9 @@ // }, // "pairs": { ... }, - List<String> command = <String>[_xcrunPath, 'simctl', 'list', '--json', section.name]; + final List<String> command = <String>[_xcrunPath, 'simctl', 'list', '--json', section.name]; printTrace(command.join(' ')); - ProcessResult results = processManager.runSync(command); + final ProcessResult results = processManager.runSync(command); if (results.exitCode != 0) { printError('Error executing simctl: ${results.exitCode}\n${results.stderr}'); return <String, Map<String, dynamic>>{}; @@ -203,12 +203,12 @@ /// Returns a list of all available devices, both potential and connected. List<SimDevice> getDevices() { - List<SimDevice> devices = <SimDevice>[]; + final List<SimDevice> devices = <SimDevice>[]; - Map<String, dynamic> devicesSection = _list(SimControlListSection.devices); + final Map<String, dynamic> devicesSection = _list(SimControlListSection.devices); for (String deviceCategory in devicesSection.keys) { - List<Map<String, String>> devicesData = devicesSection[deviceCategory]; + final List<Map<String, String>> devicesData = devicesSection[deviceCategory]; for (Map<String, String> data in devicesData) { devices.add(new SimDevice(deviceCategory, data)); @@ -244,7 +244,7 @@ } void launch(String deviceId, String appIdentifier, [List<String> launchArgs]) { - List<String> args = <String>[_xcrunPath, 'simctl', 'launch', deviceId, appIdentifier]; + final List<String> args = <String>[_xcrunPath, 'simctl', 'launch', deviceId, appIdentifier]; if (launchArgs != null) args.addAll(launchArgs); runCheckedSync(args); @@ -329,7 +329,7 @@ } String _getSimulatorAppHomeDirectory(ApplicationPackage app) { - String simulatorPath = _getSimulatorPath(); + final String simulatorPath = _getSimulatorPath(); if (simulatorPath == null) return null; return fs.path.join(simulatorPath, 'data'); @@ -346,7 +346,7 @@ @override bool installApp(ApplicationPackage app) { try { - IOSApp iosApp = app; + final IOSApp iosApp = app; SimControl.instance.install(id, iosApp.simulatorBundlePath); return true; } catch (e) { @@ -374,7 +374,7 @@ // Step 1: Check if the device is part of a blacklisted category. // We do not support WatchOS or tvOS devices. - RegExp blacklist = new RegExp(r'Apple (TV|Watch)', caseSensitive: false); + final RegExp blacklist = new RegExp(r'Apple (TV|Watch)', caseSensitive: false); if (blacklist.hasMatch(name)) { _supportMessage = 'Flutter does not support Apple TV or Apple Watch. Select an iPhone 5s or above.'; return false; @@ -386,14 +386,14 @@ // runner on the simulator is completely different). // Check for unsupported iPads. - Match iPadMatch = new RegExp(r'iPad (2|Retina)', caseSensitive: false).firstMatch(name); + final Match iPadMatch = new RegExp(r'iPad (2|Retina)', caseSensitive: false).firstMatch(name); if (iPadMatch != null) { _supportMessage = 'Flutter does not yet support iPad 2 or iPad Retina. Select an iPad Air or above.'; return false; } // Check for unsupported iPhones. - Match iPhoneMatch = new RegExp(r'iPhone [0-5]').firstMatch(name); + final Match iPhoneMatch = new RegExp(r'iPhone [0-5]').firstMatch(name); if (iPhoneMatch != null) { if (name == 'iPhone 5s') return true; @@ -441,7 +441,7 @@ } // Prepare launch arguments. - List<String> args = <String>['--enable-dart-profiling']; + final List<String> args = <String>['--enable-dart-profiling']; if (!prebuiltApplication) { args.addAll(<String>[ @@ -457,9 +457,9 @@ if (debuggingOptions.startPaused) args.add('--start-paused'); - int observatoryPort = await debuggingOptions.findBestObservatoryPort(); + final int observatoryPort = await debuggingOptions.findBestObservatoryPort(); args.add('--observatory-port=$observatoryPort'); - int diagnosticPort = await debuggingOptions.findBestDiagnosticPort(); + final int diagnosticPort = await debuggingOptions.findBestDiagnosticPort(); args.add('--diagnostic-port=$diagnosticPort'); } @@ -484,7 +484,7 @@ printTrace('Waiting for observatory port to be available...'); try { - Uri deviceUri = await observatoryDiscovery.nextUri(); + final Uri deviceUri = await observatoryDiscovery.nextUri(); return new LaunchResult.succeeded(observatoryUri: deviceUri); } catch (error) { printError('Error waiting for a debug connection: $error'); @@ -495,9 +495,9 @@ } bool _applicationIsInstalledAndRunning(ApplicationPackage app) { - bool isInstalled = isAppInstalled(app); + final bool isInstalled = isAppInstalled(app); - bool isRunning = exitsHappy(<String>[ + final bool isRunning = exitsHappy(<String>[ '/usr/bin/killall', 'Runner', ]); @@ -515,14 +515,14 @@ Future<Null> _buildAndInstallApplicationBundle(ApplicationPackage app) async { // Step 1: Build the Xcode project. // The build mode for the simulator is always debug. - XcodeBuildResult buildResult = await buildXcodeProject(app: app, mode: BuildMode.debug, buildForDevice: false); + final XcodeBuildResult buildResult = await buildXcodeProject(app: app, mode: BuildMode.debug, buildForDevice: false); if (!buildResult.success) throwToolExit('Could not build the application for the simulator.'); // Step 2: Assert that the Xcode project was successfully built. - IOSApp iosApp = app; - Directory bundle = fs.directory(iosApp.simulatorBundlePath); - bool bundleExists = bundle.existsSync(); + final IOSApp iosApp = app; + final Directory bundle = fs.directory(iosApp.simulatorBundlePath); + final bool bundleExists = bundle.existsSync(); if (!bundleExists) throwToolExit('Could not find the built application bundle at ${bundle.path}.'); @@ -542,7 +542,7 @@ Future<bool> pushFile( ApplicationPackage app, String localFile, String targetFile) async { if (p.platform.isMacOS) { - String simulatorHomeDirectory = _getSimulatorAppHomeDirectory(app); + final String simulatorHomeDirectory = _getSimulatorAppHomeDirectory(app); runCheckedSync(<String>['cp', localFile, fs.path.join(simulatorHomeDirectory, targetFile)]); return true; } @@ -575,16 +575,16 @@ @override void clearLogs() { - File logFile = fs.file(logFilePath); + final File logFile = fs.file(logFilePath); if (logFile.existsSync()) { - RandomAccessFile randomFile = logFile.openSync(mode: FileMode.WRITE); + final RandomAccessFile randomFile = logFile.openSync(mode: FileMode.WRITE); randomFile.truncateSync(0); randomFile.closeSync(); } } void ensureLogsExists() { - File logFile = fs.file(logFilePath); + final File logFile = fs.file(logFilePath); if (!logFile.existsSync()) logFile.writeAsBytesSync(<int>[]); } @@ -667,10 +667,10 @@ ]; String _filterDeviceLine(String string) { - Match match = _mapRegex.matchAsPrefix(string); + final Match match = _mapRegex.matchAsPrefix(string); if (match != null) { - String category = match.group(1); - String content = match.group(2); + final String category = match.group(1); + final String content = match.group(2); // Filter out some messages that clearly aren't related to Flutter. if (string.contains(': could not find icon for representation -> com.apple.')) @@ -720,7 +720,7 @@ void _onDeviceLine(String line) { printTrace('[DEVICE LOG] $line'); - Match multi = _lastMessageMultipleRegex.matchAsPrefix(line); + final Match multi = _lastMessageMultipleRegex.matchAsPrefix(line); if (multi != null) { if (_lastLine != null) { @@ -737,7 +737,7 @@ } String _filterSystemLog(String string) { - Match match = _mapRegex.matchAsPrefix(string); + final Match match = _mapRegex.matchAsPrefix(string); return match == null ? string : '${match.group(1)}: ${match.group(2)}'; } @@ -746,7 +746,7 @@ if (!_flutterRunnerRegex.hasMatch(line)) return; - String filteredLine = _filterSystemLog(line); + final String filteredLine = _filterSystemLog(line); if (filteredLine == null) return; @@ -760,13 +760,13 @@ } int compareIosVersions(String v1, String v2) { - List<int> v1Fragments = v1.split('.').map(int.parse).toList(); - List<int> v2Fragments = v2.split('.').map(int.parse).toList(); + final List<int> v1Fragments = v1.split('.').map(int.parse).toList(); + final List<int> v2Fragments = v2.split('.').map(int.parse).toList(); int i = 0; while(i < v1Fragments.length && i < v2Fragments.length) { - int v1Fragment = v1Fragments[i]; - int v2Fragment = v2Fragments[i]; + final int v1Fragment = v1Fragments[i]; + final int v2Fragment = v2Fragments[i]; if (v1Fragment != v2Fragment) return v1Fragment.compareTo(v2Fragment); i++; @@ -786,11 +786,11 @@ new RegExp(r'com.apple.CoreSimulator.SimDeviceType.iPhone-(\d+)(.*)'); int compareIphoneVersions(String id1, String id2) { - Match m1 = _iosDeviceTypePattern.firstMatch(id1); - Match m2 = _iosDeviceTypePattern.firstMatch(id2); + final Match m1 = _iosDeviceTypePattern.firstMatch(id1); + final Match m2 = _iosDeviceTypePattern.firstMatch(id2); - int v1 = int.parse(m1[1]); - int v2 = int.parse(m2[1]); + final int v1 = int.parse(m1[1]); + final int v2 = int.parse(m2[1]); if (v1 != v2) return v1.compareTo(v2); @@ -798,8 +798,8 @@ // Sorted in the least preferred first order. const List<String> qualifiers = const <String>['-Plus', '', 's-Plus', 's']; - int q1 = qualifiers.indexOf(m1[2]); - int q2 = qualifiers.indexOf(m2[2]); + final int q1 = qualifiers.indexOf(m1[2]); + final int q2 = qualifiers.indexOf(m2[2]); return q1.compareTo(q2); }
diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index 9cd5087..c32ab15 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart
@@ -13,11 +13,11 @@ final RegExp _varExpr = new RegExp(r'\$\((.*)\)'); void updateXcodeGeneratedProperties(String projectPath, BuildMode mode, String target) { - StringBuffer localsBuffer = new StringBuffer(); + final StringBuffer localsBuffer = new StringBuffer(); localsBuffer.writeln('// This is a generated file; do not edit or check into version control.'); - String flutterRoot = fs.path.normalize(Cache.flutterRoot); + final String flutterRoot = fs.path.normalize(Cache.flutterRoot); localsBuffer.writeln('FLUTTER_ROOT=$flutterRoot'); // This holds because requiresProjectRoot is true for this command @@ -34,27 +34,27 @@ localsBuffer.writeln('SYMROOT=\${SOURCE_ROOT}/../${getIosBuildDirectory()}'); - String flutterFrameworkDir = fs.path.normalize(fs.path.dirname(artifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, mode))); + final String flutterFrameworkDir = fs.path.normalize(fs.path.dirname(artifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, mode))); localsBuffer.writeln('FLUTTER_FRAMEWORK_DIR=$flutterFrameworkDir'); if (artifacts is LocalEngineArtifacts) { - LocalEngineArtifacts localEngineArtifacts = artifacts; + final LocalEngineArtifacts localEngineArtifacts = artifacts; localsBuffer.writeln('LOCAL_ENGINE=${localEngineArtifacts.engineOutPath}'); } - File localsFile = fs.file(fs.path.join(projectPath, 'ios', 'Flutter', 'Generated.xcconfig')); + final File localsFile = fs.file(fs.path.join(projectPath, 'ios', 'Flutter', 'Generated.xcconfig')); localsFile.createSync(recursive: true); localsFile.writeAsStringSync(localsBuffer.toString()); } Map<String, String> getXcodeBuildSettings(String xcodeProjPath, String target) { - String absProjPath = fs.path.absolute(xcodeProjPath); - String out = runCheckedSync(<String>[ + final String absProjPath = fs.path.absolute(xcodeProjPath); + final String out = runCheckedSync(<String>[ '/usr/bin/xcodebuild', '-project', absProjPath, '-target', target, '-showBuildSettings' ]); - Map<String, String> settings = <String, String>{}; + final Map<String, String> settings = <String, String>{}; for (String line in out.split('\n').where(_settingExpr.hasMatch)) { - Match match = _settingExpr.firstMatch(line); + final Match match = _settingExpr.firstMatch(line); settings[match[1]] = match[2]; } return settings; @@ -64,10 +64,10 @@ /// Substitutes variables in [str] with their values from the specified Xcode /// project and target. String substituteXcodeVariables(String str, String xcodeProjPath, String target) { - Iterable<Match> matches = _varExpr.allMatches(str); + final Iterable<Match> matches = _varExpr.allMatches(str); if (matches.isEmpty) return str; - Map<String, String> settings = getXcodeBuildSettings(xcodeProjPath, target); + final Map<String, String> settings = getXcodeBuildSettings(xcodeProjPath, target); return str.replaceAllMapped(_varExpr, (Match m) => settings[m[1]] ?? m[0]); }