Begin migrating tools to NNBD (#3891)

- Updates dependencies to null-safe versions
- Migrates common.dart (which doesn't depend on anything)
- Migrates common_tests.dart and its one dependency, utils.dart
- Adds build_runner for Mockito mock generation
- Adds a new utility methods for getting arguments that handle both the casting and the removal of nullability to address a common problematic pattern while migrating code.
  - Converts all files, not just the migrated ones, to those new helpers.

Migrating common.dart and utils.dart should unblock a command-by-command migration to null safety.

Reverts the separate of podspect lints into a step that doesn't do a Flutter upgrade
(https://github.com/flutter/plugins/pull/3700) because without that step we had a
version of Dart too old to run null-safe tooling.

First step of https://github.com/flutter/flutter/issues/81912
This commit is contained in:
stuartmorgan
2021-05-14 20:04:26 -04:00
committed by GitHub
parent e46aa5583f
commit bd0081258a
37 changed files with 397 additions and 179 deletions

View File

@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart=2.9
import 'dart:async';
import 'package:file/file.dart';
import 'package:path/path.dart' as p;
@ -53,10 +55,10 @@ class DriveExamplesCommand extends PluginCommand {
Future<void> run() async {
final List<String> failingTests = <String>[];
final List<String> pluginsWithoutTests = <String>[];
final bool isLinux = argResults[kLinux] == true;
final bool isMacos = argResults[kMacos] == true;
final bool isWeb = argResults[kWeb] == true;
final bool isWindows = argResults[kWindows] == true;
final bool isLinux = getBoolArg(kLinux);
final bool isMacos = getBoolArg(kMacos);
final bool isWeb = getBoolArg(kWeb);
final bool isWindows = getBoolArg(kWindows);
await for (final Directory plugin in getPlugins()) {
final String pluginName = plugin.basename;
if (pluginName.endsWith('_platform_interface') &&
@ -140,8 +142,7 @@ Tried searching for the following:
final List<String> driveArgs = <String>['drive'];
final String enableExperiment =
argResults[kEnableExperiment] as String;
final String enableExperiment = getStringArg(kEnableExperiment);
if (enableExperiment.isNotEmpty) {
driveArgs.add('--enable-experiment=$enableExperiment');
}
@ -222,12 +223,12 @@ Tried searching for the following:
Future<bool> _pluginSupportedOnCurrentPlatform(
FileSystemEntity plugin, FileSystem fileSystem) async {
final bool isAndroid = argResults[kAndroid] == true;
final bool isIOS = argResults[kIos] == true;
final bool isLinux = argResults[kLinux] == true;
final bool isMacos = argResults[kMacos] == true;
final bool isWeb = argResults[kWeb] == true;
final bool isWindows = argResults[kWindows] == true;
final bool isAndroid = getBoolArg(kAndroid);
final bool isIOS = getBoolArg(kIos);
final bool isLinux = getBoolArg(kLinux);
final bool isMacos = getBoolArg(kMacos);
final bool isWeb = getBoolArg(kWeb);
final bool isWindows = getBoolArg(kWindows);
if (isAndroid) {
return isAndroidPlugin(plugin, fileSystem);
}