Skip to content

Commit

Permalink
implicit-casts:false on flutter_tools/lib (#44447)
Browse files Browse the repository at this point in the history
* implicit-casts:false on flutter_tools/lib

* address review comments

* use castStringKeyedMap

* introduce {bool,string,strings}Arg

* fix ci
  • Loading branch information
a14n committed Nov 19, 2019
1 parent 152e6ec commit adc7351
Show file tree
Hide file tree
Showing 110 changed files with 797 additions and 774 deletions.
10 changes: 5 additions & 5 deletions packages/flutter_tools/bin/fuchsia_asset_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ Future<void> run(List<String> args) async {
}
Cache.flutterRoot = platform.environment['FLUTTER_ROOT'];

final String assetDir = argResults[_kOptionAsset];
final String assetDir = argResults[_kOptionAsset] as String;
final AssetBundle assets = await buildAssets(
manifestPath: argResults[_kOptionManifest] ?? defaultManifestPath,
manifestPath: argResults[_kOptionManifest] as String ?? defaultManifestPath,
assetDirPath: assetDir,
packagesPath: argResults[_kOptionPackages],
packagesPath: argResults[_kOptionPackages] as String,
includeDefaultFonts: false,
);

Expand All @@ -77,8 +77,8 @@ Future<void> run(List<String> args) async {
});
await Future.wait<void>(calls);

final String outputMan = argResults[_kOptionAssetManifestOut];
await writeFuchsiaManifest(assets, argResults[_kOptionAsset], outputMan, argResults[_kOptionComponentName]);
final String outputMan = argResults[_kOptionAssetManifestOut] as String;
await writeFuchsiaManifest(assets, argResults[_kOptionAsset] as String, outputMan, argResults[_kOptionComponentName] as String);
}

Future<void> writeFuchsiaManifest(AssetBundle assets, String outputBase, String fileDest, String componentName) async {
Expand Down
10 changes: 5 additions & 5 deletions packages/flutter_tools/bin/fuchsia_attach.dart
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ String originalWorkingDirectory;

Future<void> main(List<String> args) async {
final ArgResults argResults = parser.parse(args);
final bool verbose = argResults['verbose'];
final String target = argResults['target'];
final bool verbose = argResults['verbose'] as bool;
final String target = argResults['target'] as String;
final List<String> targetParts = _extractPathAndName(target);
final String path = targetParts[0];
final String name = targetParts[1];
final File dartSdk = fs.file(argResults['dart-sdk']);
final String buildDirectory = argResults['build-dir'];
final String buildDirectory = argResults['build-dir'] as String;
final File frontendServer = fs.file('$buildDirectory/host_x64/gen/third_party/flutter/frontend_server/frontend_server_tool.snapshot');
final File sshConfig = fs.file('$buildDirectory/ssh-keys/ssh_config');
final File devFinder = fs.file(argResults['dev-finder']);
Expand Down Expand Up @@ -69,13 +69,13 @@ Future<void> main(List<String> args) async {
}

// Check for a package with a lib directory.
final String entrypoint = argResults['entrypoint'];
final String entrypoint = argResults['entrypoint'] as String;
String targetFile = 'lib/$entrypoint';
if (!fs.file(targetFile).existsSync()) {
// Otherwise assume the package is flat.
targetFile = entrypoint;
}
final String deviceName = argResults['device'];
final String deviceName = argResults['device'] as String;
final List<String> command = <String>[
'attach',
'--module',
Expand Down
12 changes: 6 additions & 6 deletions packages/flutter_tools/bin/fuchsia_tester.dart
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ Future<void> run(List<String> args) async {
throwToolExit('Cannot find SDK files at ${sdkRootSrc.path}');
}
Directory coverageDirectory;
final String coverageDirectoryPath = argResults[_kOptionCoverageDirectory];
final String coverageDirectoryPath = argResults[_kOptionCoverageDirectory] as String;
if (coverageDirectoryPath != null) {
if (!fs.isDirectorySync(coverageDirectoryPath)) {
throwToolExit('Cannot find coverage directory at $coverageDirectoryPath');
Expand All @@ -111,11 +111,11 @@ Future<void> run(List<String> args) async {
fs.link(sdkRootDest.childFile('platform.dill').path).createSync('platform_strong.dill');

PackageMap.globalPackagesPath =
fs.path.normalize(fs.path.absolute(argResults[_kOptionPackages]));
fs.path.normalize(fs.path.absolute(argResults[_kOptionPackages] as String));

Directory testDirectory;
CoverageCollector collector;
if (argResults['coverage']) {
if (argResults['coverage'] as bool) {
collector = CoverageCollector(
libraryPredicate: (String libraryName) {
// If we have a specified coverage directory then accept all libraries.
Expand All @@ -134,7 +134,7 @@ Future<void> run(List<String> args) async {

final Map<String, String> tests = <String, String>{};
final List<Map<String, dynamic>> jsonList = List<Map<String, dynamic>>.from(
json.decode(fs.file(argResults[_kOptionTests]).readAsStringSync()));
json.decode(fs.file(argResults[_kOptionTests]).readAsStringSync()) as List<Map<String, dynamic>>);
for (Map<String, dynamic> map in jsonList) {
final String source = fs.file(map['source']).resolveSymbolicLinksSync();
final String dill = fs.file(map['dill']).resolveSymbolicLinksSync();
Expand All @@ -150,7 +150,7 @@ Future<void> run(List<String> args) async {
buildMode: BuildMode.debug,
precompiledDillFiles: tests,
concurrency: math.max(1, platform.numberOfProcessors - 2),
icudtlPath: fs.path.absolute(argResults[_kOptionIcudtl]),
icudtlPath: fs.path.absolute(argResults[_kOptionIcudtl] as String),
coverageDirectory: coverageDirectory,
);

Expand All @@ -163,7 +163,7 @@ Future<void> run(List<String> args) async {
} else {
fs.currentDirectory = testDirectory;
}
if (!await collector.collectCoverageData(argResults[_kOptionCoveragePath], coverageDirectory: coverageDirectory)) {
if (!await collector.collectCoverageData(argResults[_kOptionCoveragePath] as String, coverageDirectory: coverageDirectory)) {
throwToolExit('Failed to collect coverage data');
}
}
Expand Down
45 changes: 21 additions & 24 deletions packages/flutter_tools/lib/src/android/android_device.dart
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,10 @@ class AndroidDevice extends Device {
stderrEncoding: latin1,
);
if (result.exitCode == 0 || allowHeapCorruptionOnWindows(result.exitCode)) {
_properties = parseAdbDeviceProperties(result.stdout);
_properties = parseAdbDeviceProperties(result.stdout as String);
} else {
printError('Error ${result.exitCode} retrieving device properties for $name:');
printError(result.stderr);
printError(result.stderr as String);
}
} on ProcessException catch (error) {
printError('Error retrieving device properties for $name: $error');
Expand Down Expand Up @@ -334,18 +334,17 @@ class AndroidDevice extends Device {
}
}

String _getDeviceSha1Path(ApplicationPackage app) {
return '/data/local/tmp/sky.${app.id}.sha1';
String _getDeviceSha1Path(AndroidApk apk) {
return '/data/local/tmp/sky.${apk.id}.sha1';
}

Future<String> _getDeviceApkSha1(ApplicationPackage app) async {
Future<String> _getDeviceApkSha1(AndroidApk apk) async {
final RunResult result = await processUtils.run(
adbCommandForDevice(<String>['shell', 'cat', _getDeviceSha1Path(app)]));
adbCommandForDevice(<String>['shell', 'cat', _getDeviceSha1Path(apk)]));
return result.stdout;
}

String _getSourceSha1(ApplicationPackage app) {
final AndroidApk apk = app;
String _getSourceSha1(AndroidApk apk) {
final File shaFile = fs.file('${apk.file.path}.sha1');
return shaFile.existsSync() ? shaFile.readAsStringSync() : '';
}
Expand All @@ -354,7 +353,7 @@ class AndroidDevice extends Device {
String get name => modelID;

@override
Future<bool> isAppInstalled(ApplicationPackage app) async {
Future<bool> isAppInstalled(AndroidApk app) async {
// This call takes 400ms - 600ms.
try {
final RunResult listOut = await runAdbCheckedAsync(<String>['shell', 'pm', 'list', 'packages', app.id]);
Expand All @@ -366,16 +365,15 @@ class AndroidDevice extends Device {
}

@override
Future<bool> isLatestBuildInstalled(ApplicationPackage app) async {
Future<bool> isLatestBuildInstalled(AndroidApk app) async {
final String installedSha1 = await _getDeviceApkSha1(app);
return installedSha1.isNotEmpty && installedSha1 == _getSourceSha1(app);
}

@override
Future<bool> installApp(ApplicationPackage app) async {
final AndroidApk apk = app;
if (!apk.file.existsSync()) {
printError('"${fs.path.relative(apk.file.path)}" does not exist.');
Future<bool> installApp(AndroidApk app) async {
if (!app.file.existsSync()) {
printError('"${fs.path.relative(app.file.path)}" does not exist.');
return false;
}

Expand All @@ -384,9 +382,9 @@ class AndroidDevice extends Device {
return false;
}

final Status status = logger.startProgress('Installing ${fs.path.relative(apk.file.path)}...', timeout: timeoutConfiguration.slowOperation);
final Status status = logger.startProgress('Installing ${fs.path.relative(app.file.path)}...', timeout: timeoutConfiguration.slowOperation);
final RunResult installResult = await processUtils.run(
adbCommandForDevice(<String>['install', '-t', '-r', apk.file.path]));
adbCommandForDevice(<String>['install', '-t', '-r', app.file.path]));
status.stop();
// Some versions of adb exit with exit code 0 even on failure :(
// Parsing the output to check for failures.
Expand All @@ -413,7 +411,7 @@ class AndroidDevice extends Device {
}

@override
Future<bool> uninstallApp(ApplicationPackage app) async {
Future<bool> uninstallApp(AndroidApk app) async {
if (!await _checkForSupportedAdbVersion() ||
!await _checkForSupportedAndroidVersion()) {
return false;
Expand All @@ -440,7 +438,7 @@ class AndroidDevice extends Device {
return true;
}

Future<bool> _installLatestApp(ApplicationPackage package) async {
Future<bool> _installLatestApp(AndroidApk package) async {
final bool wasInstalled = await isAppInstalled(package);
if (wasInstalled) {
if (await isLatestBuildInstalled(package)) {
Expand Down Expand Up @@ -470,7 +468,7 @@ class AndroidDevice extends Device {

@override
Future<LaunchResult> startApp(
ApplicationPackage package, {
AndroidApk package, {
String mainPath,
String route,
DebuggingOptions debuggingOptions,
Expand Down Expand Up @@ -537,8 +535,7 @@ class AndroidDevice extends Device {
return LaunchResult.failed();
}

final bool traceStartup = platformArgs['trace-startup'] ?? false;
final AndroidApk apk = package;
final bool traceStartup = platformArgs['trace-startup'] as bool ?? false;
printTrace('$this startApp');

ProtocolDiscovery observatoryDiscovery;
Expand Down Expand Up @@ -595,7 +592,7 @@ class AndroidDevice extends Device {
if (debuggingOptions.verboseSystemLogs)
...<String>['--ez', 'verbose-logging', 'true'],
],
apk.launchActivity,
package.launchActivity,
];
final String result = (await runAdbCheckedAsync(cmd)).stdout;
// This invocation returns 0 even when it fails.
Expand Down Expand Up @@ -636,7 +633,7 @@ class AndroidDevice extends Device {
bool get supportsHotRestart => true;

@override
Future<bool> stopApp(ApplicationPackage app) {
Future<bool> stopApp(AndroidApk app) {
final List<String> command = adbCommandForDevice(<String>['shell', 'am', 'force-stop', app.id]);
return processUtils.stream(command).then<bool>(
(int exitCode) => exitCode == 0 || allowHeapCorruptionOnWindows(exitCode));
Expand All @@ -648,7 +645,7 @@ class AndroidDevice extends Device {
}

@override
DeviceLogReader getLogReader({ ApplicationPackage app }) {
DeviceLogReader getLogReader({ AndroidApk app }) {
// The Android log reader isn't app-specific.
_logReader ??= _AdbLogReader(this);
return _logReader;
Expand Down
2 changes: 1 addition & 1 deletion packages/flutter_tools/lib/src/android/android_sdk.dart
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ class AndroidSdk {
String findAndroidHomeDir() {
String androidHomeDir;
if (config.containsKey('android-sdk')) {
androidHomeDir = config.getValue('android-sdk');
androidHomeDir = config.getValue('android-sdk') as String;
} else if (platform.environment.containsKey(kAndroidHome)) {
androidHomeDir = platform.environment[kAndroidHome];
} else if (platform.environment.containsKey(kAndroidSdkRoot)) {
Expand Down
17 changes: 9 additions & 8 deletions packages/flutter_tools/lib/src/android/android_studio.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import '../base/file_system.dart';
import '../base/platform.dart';
import '../base/process.dart';
import '../base/process_manager.dart';
import '../base/utils.dart';
import '../base/version.dart';
import '../globals.dart';
import '../ios/plist_parser.dart';
Expand Down Expand Up @@ -45,26 +46,26 @@ class AndroidStudio implements Comparable<AndroidStudio> {
Map<String, dynamic> plistValues = PlistParser.instance.parseFile(plistFile);
// As AndroidStudio managed by JetBrainsToolbox could have a wrapper pointing to the real Android Studio.
// Check if we've found a JetBrainsToolbox wrapper and deal with it properly.
final String jetBrainsToolboxAppBundlePath = plistValues['JetBrainsToolboxApp'];
final String jetBrainsToolboxAppBundlePath = plistValues['JetBrainsToolboxApp'] as String;
if (jetBrainsToolboxAppBundlePath != null) {
studioPath = fs.path.join(jetBrainsToolboxAppBundlePath, 'Contents');
plistFile = fs.path.join(studioPath, 'Info.plist');
plistValues = PlistParser.instance.parseFile(plistFile);
}

final String versionString = plistValues[PlistParser.kCFBundleShortVersionStringKey];
final String versionString = plistValues[PlistParser.kCFBundleShortVersionStringKey] as String;

Version version;
if (versionString != null) {
version = Version.parse(versionString);
}

String pathsSelectorValue;
final Map<String, dynamic> jvmOptions = plistValues['JVMOptions'];
final Map<String, dynamic> jvmOptions = castStringKeyedMap(plistValues['JVMOptions']);
if (jvmOptions != null) {
final Map<String, dynamic> jvmProperties = jvmOptions['Properties'];
final Map<String, dynamic> jvmProperties = castStringKeyedMap(jvmOptions['Properties']);
if (jvmProperties != null) {
pathsSelectorValue = jvmProperties['idea.paths.selector'];
pathsSelectorValue = jvmProperties['idea.paths.selector'] as String;
}
}
final String presetPluginsPath = pathsSelectorValue == null
Expand Down Expand Up @@ -149,7 +150,7 @@ class AndroidStudio implements Comparable<AndroidStudio> {

/// Locates the newest, valid version of Android Studio.
static AndroidStudio latestValid() {
final String configuredStudio = config.getValue('android-studio-dir');
final String configuredStudio = config.getValue('android-studio-dir') as String;
if (configuredStudio != null) {
String configuredStudioPath = configuredStudio;
if (platform.isMacOS && !configuredStudioPath.endsWith('Contents')) {
Expand Down Expand Up @@ -201,7 +202,7 @@ class AndroidStudio implements Comparable<AndroidStudio> {
_checkForStudio('/Applications');
_checkForStudio(fs.path.join(homeDirPath, 'Applications'));

final String configuredStudioDir = config.getValue('android-studio-dir');
final String configuredStudioDir = config.getValue('android-studio-dir') as String;
if (configuredStudioDir != null) {
FileSystemEntity configuredStudio = fs.file(configuredStudioDir);
if (configuredStudio.basename == 'Contents') {
Expand Down Expand Up @@ -248,7 +249,7 @@ class AndroidStudio implements Comparable<AndroidStudio> {
}
}

final String configuredStudioDir = config.getValue('android-studio-dir');
final String configuredStudioDir = config.getValue('android-studio-dir') as String;
if (configuredStudioDir != null && !_hasStudioAt(configuredStudioDir)) {
studios.add(AndroidStudio(configuredStudioDir,
configured: configuredStudioDir));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class NoAndroidStudioValidator extends DoctorValidator {
Future<ValidationResult> validate() async {
final List<ValidationMessage> messages = <ValidationMessage>[];

final String cfgAndroidStudio = config.getValue('android-studio-dir');
final String cfgAndroidStudio = config.getValue('android-studio-dir') as String;
if (cfgAndroidStudio != null) {
messages.add(ValidationMessage.error(userMessages.androidStudioMissing(cfgAndroidStudio)));
}
Expand Down
4 changes: 2 additions & 2 deletions packages/flutter_tools/lib/src/android/android_workflow.dart
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class AndroidValidator extends DoctorValidator {
printTrace('java -version');
final ProcessResult result = await processManager.run(<String>[javaBinary, '-version']);
if (result.exitCode == 0) {
final List<String> versionLines = result.stderr.split('\n');
final List<String> versionLines = (result.stderr as String).split('\n');
javaVersionText = versionLines.length >= 2 ? versionLines[1] : versionLines[0];
}
} catch (error) {
Expand Down Expand Up @@ -236,7 +236,7 @@ class AndroidLicenseValidator extends DoctorValidator {
try {
final ProcessResult result = await processManager.run(<String>[javaBinary, '-version']);
if (result.exitCode == 0) {
final List<String> versionLines = result.stderr.split('\n');
final List<String> versionLines = (result.stderr as String).split('\n');
javaVersion = versionLines.length >= 2 ? versionLines[1] : versionLines[0];
}
} catch (error) {
Expand Down
4 changes: 2 additions & 2 deletions packages/flutter_tools/lib/src/android/gradle.dart
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ Future<void> buildGradleApp({
command.add('-q');
}
if (artifacts is LocalEngineArtifacts) {
final LocalEngineArtifacts localEngineArtifacts = artifacts;
final LocalEngineArtifacts localEngineArtifacts = artifacts as LocalEngineArtifacts;
final Directory localEngineRepo = _getLocalEngineRepo(
engineOutPath: localEngineArtifacts.engineOutPath,
androidBuildInfo: androidBuildInfo,
Expand Down Expand Up @@ -526,7 +526,7 @@ Future<void> buildGradleAar({
command.add('-Ptarget-platform=$targetPlatforms');
}
if (artifacts is LocalEngineArtifacts) {
final LocalEngineArtifacts localEngineArtifacts = artifacts;
final LocalEngineArtifacts localEngineArtifacts = artifacts as LocalEngineArtifacts;
final Directory localEngineRepo = _getLocalEngineRepo(
engineOutPath: localEngineArtifacts.engineOutPath,
androidBuildInfo: androidBuildInfo,
Expand Down

0 comments on commit adc7351

Please sign in to comment.