diff --git a/dev/tools/gen_keycodes/lib/key_data.dart b/dev/tools/gen_keycodes/lib/key_data.dart index a8d9994ac0..9dd567a32e 100644 --- a/dev/tools/gen_keycodes/lib/key_data.dart +++ b/dev/tools/gen_keycodes/lib/key_data.dart @@ -162,6 +162,7 @@ class KeyData { final String androidName = match.group(2); result[androidName] ??= []; result[androidName].add(int.parse(match.group(1))); + return null; }); return result; @@ -178,9 +179,9 @@ class KeyData { headerFile = headerFile.replaceAllMapped(enumBlock, (Match match) => match.group(1)); final RegExp enumEntry = RegExp(r'''AKEYCODE_([A-Z0-9_]+)\s*=\s*([0-9]+),?'''); final Map result = {}; - headerFile.replaceAllMapped(enumEntry, (Match match) { + for (Match match in enumEntry.allMatches(headerFile)) { result[match.group(1)] = int.parse(match.group(2)); - }); + } return result; } @@ -193,9 +194,9 @@ class KeyData { // Only get the KEY definitions, ignore the rest (mouse, joystick, etc). final RegExp enumEntry = RegExp(r'''define GLFW_KEY_([A-Z0-9_]+)\s*([A-Z0-9_]+),?'''); final Map replaced = {}; - headerFile.replaceAllMapped(enumEntry, (Match match) { + for (Match match in enumEntry.allMatches(headerFile)) { replaced[match.group(1)] = int.tryParse(match.group(2)) ?? match.group(2).replaceAll('GLFW_KEY_', ''); - }); + } final Map result = {}; replaced.forEach((String key, dynamic value) { // Some definition values point to other definitions (e.g #define GLFW_KEY_LAST GLFW_KEY_MENU). diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index 3c929a1607..c902802d31 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -182,7 +182,7 @@ class FlutterDevice { // The flutterExit message only returns if it fails, so just wait a few // seconds then assume it worked. // TODO(ianh): We should make this return once the VM service disconnects. - await Future.wait(futures).timeout(const Duration(seconds: 2), onTimeout: () { }); + await Future.wait(futures).timeout(const Duration(seconds: 2), onTimeout: () => []); } Future setupDevFS( diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index e59dcbb174..91339ca970 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -446,6 +446,7 @@ class HotRunner extends ResidentRunner { // Resume the isolate so that it can be killed by the embedder. return view.uiIsolate.resume(); } + return null; }, ).whenComplete( () { completer.complete(null); }, diff --git a/packages/flutter_tools/test/integration/test_driver.dart b/packages/flutter_tools/test/integration/test_driver.dart index e7dacc5dc5..3f62692b36 100644 --- a/packages/flutter_tools/test/integration/test_driver.dart +++ b/packages/flutter_tools/test/integration/test_driver.dart @@ -366,6 +366,7 @@ abstract class FlutterTestDriver { _debugPrint('$task...'); return callback()..timeout(timeout, onTimeout: () { _debugPrint('$task is taking longer than usual...'); + return null; }); } @@ -388,6 +389,7 @@ abstract class FlutterTestDriver { print(messages.toString()); timeoutExpired = true; print('$task is taking longer than usual...'); + return null; }); return future.catchError((dynamic error) { diff --git a/packages/flutter_tools/test/ios/ios_workflow_test.dart b/packages/flutter_tools/test/ios/ios_workflow_test.dart index eafaa192eb..6cd3401a13 100644 --- a/packages/flutter_tools/test/ios/ios_workflow_test.dart +++ b/packages/flutter_tools/test/ios/ios_workflow_test.dart @@ -187,6 +187,7 @@ Show information about a connected device. -x, --xml output information as xml plist instead of key/value pairs -h, --help prints usage information '''); + return null; }); final IOSWorkflowTestTarget workflow = IOSWorkflowTestTarget(); final ValidationResult result = await workflow.validate();