Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implicit-casts:false on flutter_tools/lib #44447

Merged
merged 5 commits into from
Nov 19, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this one is under an is check, is it still needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. artifacts is global getter and type promotion doesn't work.

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;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. artifacts is global getter and type promotion doesn't work.

final Directory localEngineRepo = _getLocalEngineRepo(
engineOutPath: localEngineArtifacts.engineOutPath,
androidBuildInfo: androidBuildInfo,
Expand Down