diff --git a/examples/catalog/bin/screenshot_test.dart.template b/examples/catalog/bin/screenshot_test.dart.template index 6492439d6..63fb2855b 100644 --- a/examples/catalog/bin/screenshot_test.dart.template +++ b/examples/catalog/bin/screenshot_test.dart.template @@ -26,7 +26,7 @@ void main() { for (String path in paths) { await driver.waitUntilNoTransientCallbacks(); // TBD: when #11021 has been resolved, this shouldn't be necessary. - await new Future.delayed(const Duration(milliseconds: 500)); + await new Future.delayed(const Duration(milliseconds: 500)); final List pixels = await driver.screenshot(); final File file = new File(path); await file.writeAsBytes(pixels); diff --git a/examples/catalog/test/expansion_tile_sample_test.dart b/examples/catalog/test/expansion_tile_sample_test.dart index 2a6bcde26..619a0bac2 100644 --- a/examples/catalog/test/expansion_tile_sample_test.dart +++ b/examples/catalog/test/expansion_tile_sample_test.dart @@ -22,12 +22,12 @@ void main() { } } - Future scrollUpOneEntry() async { + Future scrollUpOneEntry() async { await tester.dragFrom(const Offset(200.0, 200.0), const Offset(0.0, -88.00)); await tester.pumpAndSettle(); } - Future tapEntry(String title) async { + Future tapEntry(String title) async { await tester.tap(find.text(title)); await tester.pumpAndSettle(); } diff --git a/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart b/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart index bf327f041..0b1a2727b 100644 --- a/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart @@ -351,7 +351,7 @@ class _DemoBottomAppBar extends StatelessWidget { IconButton( icon: const Icon(Icons.menu), onPressed: () { - showModalBottomSheet( + showModalBottomSheet( context: context, builder: (BuildContext context) => const _DemoDrawer(), ); diff --git a/examples/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart b/examples/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart index 64701fe21..ab9763e96 100644 --- a/examples/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart @@ -64,7 +64,7 @@ class _DateTimePicker extends StatelessWidget { final ValueChanged selectDate; final ValueChanged selectTime; - Future _selectDate(BuildContext context) async { + Future _selectDate(BuildContext context) async { final DateTime picked = await showDatePicker( context: context, initialDate: selectedDate, @@ -75,7 +75,7 @@ class _DateTimePicker extends StatelessWidget { selectDate(picked); } - Future _selectTime(BuildContext context) async { + Future _selectTime(BuildContext context) async { final TimeOfDay picked = await showTimePicker( context: context, initialTime: selectedTime diff --git a/examples/flutter_gallery/lib/demo/material/dialog_demo.dart b/examples/flutter_gallery/lib/demo/material/dialog_demo.dart index 27c7bffc8..73c5e83da 100644 --- a/examples/flutter_gallery/lib/demo/material/dialog_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/dialog_demo.dart @@ -180,7 +180,7 @@ class DialogDemoState extends State { context: context, initialTime: _selectedTime ) - .then((TimeOfDay value) { + .then((TimeOfDay value) { if (value != null && value != _selectedTime) { _selectedTime = value; _scaffoldKey.currentState.showSnackBar(SnackBar( diff --git a/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart b/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart index 9d268feae..9c5fc2c9e 100644 --- a/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart @@ -49,7 +49,7 @@ class DateTimeItem extends StatelessWidget { firstDate: date.subtract(const Duration(days: 30)), lastDate: date.add(const Duration(days: 30)) ) - .then((DateTime value) { + .then((DateTime value) { if (value != null) onChanged(DateTime(value.year, value.month, value.day, time.hour, time.minute)); }); @@ -76,7 +76,7 @@ class DateTimeItem extends StatelessWidget { context: context, initialTime: time ) - .then((TimeOfDay value) { + .then((TimeOfDay value) { if (value != null) onChanged(DateTime(date.year, date.month, date.day, value.hour, value.minute)); }); diff --git a/examples/flutter_gallery/lib/demo/material/list_demo.dart b/examples/flutter_gallery/lib/demo/material/list_demo.dart index 0f35f96fd..d47c226a8 100644 --- a/examples/flutter_gallery/lib/demo/material/list_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/list_demo.dart @@ -32,7 +32,7 @@ class ListDemo extends StatefulWidget { class _ListDemoState extends State { static final GlobalKey scaffoldKey = GlobalKey(); - PersistentBottomSheetController _bottomSheet; + PersistentBottomSheetController _bottomSheet; _MaterialListType _itemType = _MaterialListType.threeLine; bool _dense = false; bool _showAvatars = true; @@ -51,7 +51,7 @@ class _ListDemoState extends State { } void _showConfigurationSheet() { - final PersistentBottomSheetController bottomSheet = scaffoldKey.currentState.showBottomSheet((BuildContext bottomSheetContext) { + final PersistentBottomSheetController bottomSheet = scaffoldKey.currentState.showBottomSheet((BuildContext bottomSheetContext) { return Container( decoration: const BoxDecoration( border: Border(top: BorderSide(color: Colors.black26)), diff --git a/examples/flutter_gallery/lib/demo/material/overscroll_demo.dart b/examples/flutter_gallery/lib/demo/material/overscroll_demo.dart index 58634444c..028b1fc2a 100644 --- a/examples/flutter_gallery/lib/demo/material/overscroll_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/overscroll_demo.dart @@ -26,10 +26,10 @@ class OverscrollDemoState extends State { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N' ]; - Future _handleRefresh() { - final Completer completer = Completer(); - Timer(const Duration(seconds: 3), () { completer.complete(null); }); - return completer.future.then((_) { + Future _handleRefresh() { + final Completer completer = Completer(); + Timer(const Duration(seconds: 3), () { completer.complete(); }); + return completer.future.then((_) { _scaffoldKey.currentState?.showSnackBar(SnackBar( content: const Text('Refresh complete'), action: SnackBarAction( diff --git a/examples/flutter_gallery/lib/demo/material/persistent_bottom_sheet_demo.dart b/examples/flutter_gallery/lib/demo/material/persistent_bottom_sheet_demo.dart index b244989c8..40ac5895f 100644 --- a/examples/flutter_gallery/lib/demo/material/persistent_bottom_sheet_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/persistent_bottom_sheet_demo.dart @@ -28,7 +28,7 @@ class _PersistentBottomSheetDemoState extends State { setState(() { // disable the button _showBottomSheetCallback = null; }); - _scaffoldKey.currentState.showBottomSheet((BuildContext context) { + _scaffoldKey.currentState.showBottomSheet((BuildContext context) { final ThemeData themeData = Theme.of(context); return Container( decoration: BoxDecoration( diff --git a/examples/flutter_gallery/lib/demo/material/reorderable_list_demo.dart b/examples/flutter_gallery/lib/demo/material/reorderable_list_demo.dart index 4cda720df..f2961281d 100644 --- a/examples/flutter_gallery/lib/demo/material/reorderable_list_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/reorderable_list_demo.dart @@ -39,7 +39,7 @@ class _ListItem { class _ListDemoState extends State { static final GlobalKey scaffoldKey = GlobalKey(); - PersistentBottomSheetController _bottomSheet; + PersistentBottomSheetController _bottomSheet; _ReorderableListType _itemType = _ReorderableListType.threeLine; bool _reverseSort = false; final List<_ListItem> _items = [ @@ -58,7 +58,7 @@ class _ListDemoState extends State { void _showConfigurationSheet() { setState(() { - _bottomSheet = scaffoldKey.currentState.showBottomSheet((BuildContext bottomSheetContext) { + _bottomSheet = scaffoldKey.currentState.showBottomSheet((BuildContext bottomSheetContext) { return DecoratedBox( decoration: const BoxDecoration( border: Border(top: BorderSide(color: Colors.black26)), diff --git a/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart b/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart index 0ebb592ef..6f09cb862 100644 --- a/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart @@ -69,7 +69,7 @@ class _TabsFabDemoState extends State with SingleTickerProviderStat } void _showExplanatoryText() { - _scaffoldKey.currentState.showBottomSheet((BuildContext context) { + _scaffoldKey.currentState.showBottomSheet((BuildContext context) { return Container( decoration: BoxDecoration( border: Border(top: BorderSide(color: Theme.of(context).dividerColor)) diff --git a/examples/flutter_gallery/lib/demo/shrine/shrine_home.dart b/examples/flutter_gallery/lib/demo/shrine/shrine_home.dart index 9382df9f0..a7aa943be 100644 --- a/examples/flutter_gallery/lib/demo/shrine/shrine_home.dart +++ b/examples/flutter_gallery/lib/demo/shrine/shrine_home.dart @@ -362,7 +362,7 @@ class _ShrineHomeState extends State { static final GlobalKey _scaffoldKey = GlobalKey(debugLabel: 'Shrine Home'); static final _ShrineGridDelegate gridDelegate = _ShrineGridDelegate(); - Future _showOrderPage(Product product) async { + Future _showOrderPage(Product product) async { final Order order = _shoppingCart[product] ?? Order(product: product); final Order completedOrder = await Navigator.push(context, ShrineOrderRoute( order: order, diff --git a/examples/flutter_gallery/lib/demo/video_demo.dart b/examples/flutter_gallery/lib/demo/video_demo.dart index a100591ad..b4851bdaf 100644 --- a/examples/flutter_gallery/lib/demo/video_demo.dart +++ b/examples/flutter_gallery/lib/demo/video_demo.dart @@ -66,7 +66,7 @@ class VideoCard extends StatelessWidget { pageBuilder: fullScreenRoutePageBuilder, ); - route.completed.then((void result) { + route.completed.then((void value) { controller.setVolume(0.0); }); @@ -272,7 +272,7 @@ class ConnectivityOverlay extends StatefulWidget { }); final Widget child; - final Completer connectedCompleter; + final Completer connectedCompleter; final GlobalKey scaffoldKey; @override @@ -362,14 +362,14 @@ class _VideoDemoState extends State ); final GlobalKey scaffoldKey = GlobalKey(); - final Completer connectedCompleter = Completer(); + final Completer connectedCompleter = Completer(); bool isSupported = true; @override void initState() { super.initState(); - Future initController(VideoPlayerController controller) async { + Future initController(VideoPlayerController controller) async { controller.setLooping(true); controller.setVolume(0.0); controller.play(); diff --git a/examples/flutter_gallery/lib/gallery/demo.dart b/examples/flutter_gallery/lib/gallery/demo.dart index c6a5eda19..12afd7df9 100644 --- a/examples/flutter_gallery/lib/gallery/demo.dart +++ b/examples/flutter_gallery/lib/gallery/demo.dart @@ -138,7 +138,7 @@ class FullScreenCodeDialogState extends State { @override void didChangeDependencies() { - getExampleCode(widget.exampleCodeTag, DefaultAssetBundle.of(context)).then((String code) { + getExampleCode(widget.exampleCodeTag, DefaultAssetBundle.of(context)).then((String code) { if (mounted) { setState(() { _exampleCode = code ?? 'Example code not found'; diff --git a/examples/flutter_gallery/lib/gallery/example_code_parser.dart b/examples/flutter_gallery/lib/gallery/example_code_parser.dart index 6a834bc40..7f5029249 100644 --- a/examples/flutter_gallery/lib/gallery/example_code_parser.dart +++ b/examples/flutter_gallery/lib/gallery/example_code_parser.dart @@ -17,7 +17,7 @@ Future getExampleCode(String tag, AssetBundle bundle) async { return _exampleCode[tag]; } -Future _parseExampleCode(AssetBundle bundle) async { +Future _parseExampleCode(AssetBundle bundle) async { final String code = await bundle.loadString('lib/gallery/example_code.dart') ?? '// lib/gallery/example_code.dart not found\n'; _exampleCode = {}; diff --git a/examples/flutter_gallery/test/live_smoketest.dart b/examples/flutter_gallery/test/live_smoketest.dart index 8bab93de9..c64be0439 100644 --- a/examples/flutter_gallery/test/live_smoketest.dart +++ b/examples/flutter_gallery/test/live_smoketest.dart @@ -39,7 +39,7 @@ const List _kSkippedDemoTitles = [ 'Video', ]; -Future main() async { +Future main() async { try { // Verify that _kUnsynchronizedDemos and _kSkippedDemos identify // demos that actually exist. @@ -89,8 +89,8 @@ class _LiveWidgetController extends LiveWidgetController { bool frameSync = true; /// Waits until at the end of a frame the provided [condition] is [true]. - Future _waitUntilFrame(bool condition(), [Completer completer]) { - completer ??= Completer(); + Future _waitUntilFrame(bool condition(), [Completer completer]) { + completer ??= Completer(); if (!condition()) { SchedulerBinding.instance.addPostFrameCallback((Duration timestamp) { _waitUntilFrame(condition, completer); @@ -112,11 +112,11 @@ class _LiveWidgetController extends LiveWidgetController { } @override - Future tap(Finder finder, { int pointer }) async { + Future tap(Finder finder, { int pointer }) async { await super.tap(await _waitForElement(finder), pointer: pointer); } - Future scrollIntoView(Finder finder, {double alignment}) async { + Future scrollIntoView(Finder finder, {double alignment}) async { final Finder target = await _waitForElement(finder); await Scrollable.ensureVisible(target.evaluate().single, duration: const Duration(milliseconds: 100), alignment: alignment); } diff --git a/examples/flutter_gallery/test/smoke_test.dart b/examples/flutter_gallery/test/smoke_test.dart index df480fce7..9eb65f543 100644 --- a/examples/flutter_gallery/test/smoke_test.dart +++ b/examples/flutter_gallery/test/smoke_test.dart @@ -46,7 +46,7 @@ void verifyToStringOutput(String name, String route, String testString) { } } -Future smokeDemo(WidgetTester tester, GalleryDemo demo) async { +Future smokeDemo(WidgetTester tester, GalleryDemo demo) async { // Don't use pumpUntilNoTransientCallbacks in this function, because some of // the smoketests have infinitely-running animations (e.g. the progress // indicators demo). @@ -94,7 +94,7 @@ Future smokeDemo(WidgetTester tester, GalleryDemo demo) async { await tester.pump(const Duration(milliseconds: 400)); // Wait until it has finished. } -Future smokeOptionsPage(WidgetTester tester) async { +Future smokeOptionsPage(WidgetTester tester) async { final Finder showOptionsPageButton = find.byTooltip('Toggle options page'); // Show the options page @@ -133,7 +133,7 @@ Future smokeOptionsPage(WidgetTester tester) async { await tester.pumpAndSettle(); } -Future smokeGallery(WidgetTester tester) async { +Future smokeGallery(WidgetTester tester) async { bool sendFeedbackButtonPressed = false; await tester.pumpWidget( diff --git a/examples/flutter_gallery/test_driver/scroll_perf_test.dart b/examples/flutter_gallery/test_driver/scroll_perf_test.dart index 07a0b7f6a..0f1f2cb00 100644 --- a/examples/flutter_gallery/test_driver/scroll_perf_test.dart +++ b/examples/flutter_gallery/test_driver/scroll_perf_test.dart @@ -31,13 +31,13 @@ void main() { // Scroll down for (int i = 0; i < 5; i++) { await driver.scroll(demoList, 0.0, -300.0, const Duration(milliseconds: 300)); - await Future.delayed(const Duration(milliseconds: 500)); + await Future.delayed(const Duration(milliseconds: 500)); } // Scroll up for (int i = 0; i < 5; i++) { await driver.scroll(demoList, 0.0, 300.0, const Duration(milliseconds: 300)); - await Future.delayed(const Duration(milliseconds: 500)); + await Future.delayed(const Duration(milliseconds: 500)); } }); diff --git a/examples/flutter_gallery/test_driver/transitions_perf_test.dart b/examples/flutter_gallery/test_driver/transitions_perf_test.dart index 9e6da3b1a..440e33206 100644 --- a/examples/flutter_gallery/test_driver/transitions_perf_test.dart +++ b/examples/flutter_gallery/test_driver/transitions_perf_test.dart @@ -55,7 +55,7 @@ List _allDemos = []; /// Extracts event data from [events] recorded by timeline, validates it, turns /// it into a histogram, and saves to a JSON file. -Future saveDurationsHistogram(List> events, String outputPath) async { +Future saveDurationsHistogram(List> events, String outputPath) async { final Map> durations = >{}; Map startEvent; @@ -121,7 +121,7 @@ Future saveDurationsHistogram(List> events, String ou /// Scrolls each demo menu item into view, launches it, then returns to the /// home screen twice. -Future runDemos(List demos, FlutterDriver driver) async { +Future runDemos(List demos, FlutterDriver driver) async { final SerializableFinder demoList = find.byValueKey('GalleryDemoList'); String currentDemoCategory; diff --git a/examples/flutter_gallery/test_memory/back_button.dart b/examples/flutter_gallery/test_memory/back_button.dart index c8f2e1163..9efc776d0 100644 --- a/examples/flutter_gallery/test_memory/back_button.dart +++ b/examples/flutter_gallery/test_memory/back_button.dart @@ -30,7 +30,7 @@ class LifecycleObserver extends WidgetsBindingObserver { Future main() async { runApp(const GalleryApp()); await endOfAnimation(); - await Future.delayed(const Duration(milliseconds: 50)); + await Future.delayed(const Duration(milliseconds: 50)); debugPrint('==== MEMORY BENCHMARK ==== READY ===='); WidgetsBinding.instance.addObserver(LifecycleObserver()); } diff --git a/examples/flutter_gallery/test_memory/memory_nav.dart b/examples/flutter_gallery/test_memory/memory_nav.dart index fc64fda5f..b5aad66a8 100644 --- a/examples/flutter_gallery/test_memory/memory_nav.dart +++ b/examples/flutter_gallery/test_memory/memory_nav.dart @@ -36,7 +36,7 @@ Future main() async { ), )); await SchedulerBinding.instance.endOfFrame; - await Future.delayed(const Duration(milliseconds: 50)); + await Future.delayed(const Duration(milliseconds: 50)); debugPrint('==== MEMORY BENCHMARK ==== READY ===='); await ready.future; @@ -55,12 +55,12 @@ Future main() async { debugPrint('Navigating...'); await controller.tap(find.text('Material')); - await Future.delayed(const Duration(milliseconds: 150)); + await Future.delayed(const Duration(milliseconds: 150)); final Finder demoList = find.byKey(const Key('GalleryDemoList')); final Finder demoItem = find.text('Text fields'); do { await controller.drag(demoList, const Offset(0.0, -300.0)); - await Future.delayed(const Duration(milliseconds: 20)); + await Future.delayed(const Duration(milliseconds: 20)); } while (!demoItem.precache()); // Ensure that the center of the "Text fields" item is visible diff --git a/examples/layers/services/isolate.dart b/examples/layers/services/isolate.dart index d7bfae7a6..5c689d62a 100644 --- a/examples/layers/services/isolate.dart +++ b/examples/layers/services/isolate.dart @@ -136,12 +136,12 @@ class CalculationManager { // isolates do not have access to the root bundle. However, the loading // process is asynchronous, so the UI will not block while the file is // loaded. - rootBundle.loadString('services/data.json').then((String data) { + rootBundle.loadString('services/data.json').then((String data) { if (isRunning) { final CalculationMessage message = CalculationMessage(data, _receivePort.sendPort); // Spawn an isolate to JSON-parse the file contents. The JSON parsing // is synchronous, so if done in the main isolate, the UI would block. - Isolate.spawn(_calculate, message).then((Isolate isolate) { + Isolate.spawn(_calculate, message).then((Isolate isolate) { if (!isRunning) { isolate.kill(priority: Isolate.immediate); } else { diff --git a/examples/layers/test/gestures_test.dart b/examples/layers/test/gestures_test.dart index c37b1d2c8..1b0966399 100644 --- a/examples/layers/test/gestures_test.dart +++ b/examples/layers/test/gestures_test.dart @@ -16,7 +16,7 @@ void main() { final Finder finder = find.byType(GestureDemo); MaterialColor getSwatch() => tester.state(finder).swatch; - Future tap() async { + Future tap() async { final Offset topLeft = tester.getTopLeft(finder); await tester.tapAt(tester.getSize(finder).center(topLeft)); await tester.pump(const Duration(seconds: 1)); diff --git a/examples/platform_channel/lib/main.dart b/examples/platform_channel/lib/main.dart index 8739a010d..48eddc8e3 100644 --- a/examples/platform_channel/lib/main.dart +++ b/examples/platform_channel/lib/main.dart @@ -21,7 +21,7 @@ class _PlatformChannelState extends State { String _batteryLevel = 'Battery level: unknown.'; String _chargingStatus = 'Battery status: unknown.'; - Future _getBatteryLevel() async { + Future _getBatteryLevel() async { String batteryLevel; try { final int result = await methodChannel.invokeMethod('getBatteryLevel'); diff --git a/examples/platform_channel_swift/lib/main.dart b/examples/platform_channel_swift/lib/main.dart index 8739a010d..48eddc8e3 100644 --- a/examples/platform_channel_swift/lib/main.dart +++ b/examples/platform_channel_swift/lib/main.dart @@ -21,7 +21,7 @@ class _PlatformChannelState extends State { String _batteryLevel = 'Battery level: unknown.'; String _chargingStatus = 'Battery status: unknown.'; - Future _getBatteryLevel() async { + Future _getBatteryLevel() async { String batteryLevel; try { final int result = await methodChannel.invokeMethod('getBatteryLevel'); diff --git a/examples/platform_view/lib/main.dart b/examples/platform_view/lib/main.dart index 9a66c01b7..4778d68c7 100644 --- a/examples/platform_view/lib/main.dart +++ b/examples/platform_view/lib/main.dart @@ -45,7 +45,7 @@ class _MyHomePageState extends State { }); } - Future _launchPlatformCount() async { + Future _launchPlatformCount() async { final int platformCounter = await _methodChannel.invokeMethod('switchView', _counter); setState(() { diff --git a/examples/stocks/lib/stock_data.dart b/examples/stocks/lib/stock_data.dart index e8d98dbb0..3e084824f 100644 --- a/examples/stocks/lib/stock_data.dart +++ b/examples/stocks/lib/stock_data.dart @@ -77,7 +77,7 @@ class StockData extends ChangeNotifier { static bool actuallyFetchData = true; void _fetchNextChunk() { - _httpClient.get(_urlToFetch(_nextChunk++)).then((http.Response response) { + _httpClient.get(_urlToFetch(_nextChunk++)).then((http.Response response) { final String json = response.body; if (json == null) { debugPrint('Failed to load stock data chunk ${_nextChunk - 1}'); diff --git a/examples/stocks/lib/stock_home.dart b/examples/stocks/lib/stock_home.dart index 323850d71..c77134ea0 100644 --- a/examples/stocks/lib/stock_home.dart +++ b/examples/stocks/lib/stock_home.dart @@ -263,7 +263,7 @@ class StockHomeState extends State { Navigator.pushNamed(context, '/stock:${stock.symbol}'); }, onShow: (Stock stock) { - _scaffoldKey.currentState.showBottomSheet((BuildContext context) => StockSymbolBottomSheet(stock: stock)); + _scaffoldKey.currentState.showBottomSheet((BuildContext context) => StockSymbolBottomSheet(stock: stock)); }, ); } diff --git a/examples/stocks/test_driver/scroll_perf_test.dart b/examples/stocks/test_driver/scroll_perf_test.dart index e8a85911c..eb5a23ccf 100644 --- a/examples/stocks/test_driver/scroll_perf_test.dart +++ b/examples/stocks/test_driver/scroll_perf_test.dart @@ -29,13 +29,13 @@ void main() { // Scroll down for (int i = 0; i < 5; i++) { await driver.scroll(stockList, 0.0, -300.0, const Duration(milliseconds: 300)); - await Future.delayed(const Duration(milliseconds: 500)); + await Future.delayed(const Duration(milliseconds: 500)); } // Scroll up for (int i = 0; i < 5; i++) { await driver.scroll(stockList, 0.0, 300.0, const Duration(milliseconds: 300)); - await Future.delayed(const Duration(milliseconds: 500)); + await Future.delayed(const Duration(milliseconds: 500)); } }); diff --git a/packages/flutter/lib/src/animation/animation_controller.dart b/packages/flutter/lib/src/animation/animation_controller.dart index f41806581..587a541ba 100644 --- a/packages/flutter/lib/src/animation/animation_controller.dart +++ b/packages/flutter/lib/src/animation/animation_controller.dart @@ -615,7 +615,7 @@ class AnimationController extends Animation _simulation = simulation; _lastElapsedDuration = Duration.zero; _value = simulation.x(0.0).clamp(lowerBound, upperBound); - final Future result = _ticker.start(); + final TickerFuture result = _ticker.start(); _status = (_direction == _AnimationDirection.forward) ? AnimationStatus.forward : AnimationStatus.reverse; diff --git a/packages/flutter/lib/src/cupertino/button.dart b/packages/flutter/lib/src/cupertino/button.dart index 323d2c6cd..912f4af16 100644 --- a/packages/flutter/lib/src/cupertino/button.dart +++ b/packages/flutter/lib/src/cupertino/button.dart @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:async'; - import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; @@ -188,10 +186,10 @@ class _CupertinoButtonState extends State with SingleTickerProv if (_animationController.isAnimating) return; final bool wasHeldDown = _buttonHeldDown; - final Future ticker = _buttonHeldDown + final TickerFuture ticker = _buttonHeldDown ? _animationController.animateTo(1.0, duration: kFadeOutDuration) : _animationController.animateTo(0.0, duration: kFadeInDuration); - ticker.then((Null value) { + ticker.then((void value) { if (mounted && wasHeldDown != _buttonHeldDown) _animate(); }); diff --git a/packages/flutter/lib/src/foundation/basic_types.dart b/packages/flutter/lib/src/foundation/basic_types.dart index 285e40aa0..73637cd7d 100644 --- a/packages/flutter/lib/src/foundation/basic_types.dart +++ b/packages/flutter/lib/src/foundation/basic_types.dart @@ -47,7 +47,7 @@ typedef IterableFilter = Iterable Function(Iterable input); /// * [VoidCallback], a synchronous version of this signature. /// * [AsyncValueGetter], a signature for asynchronous getters. /// * [AsyncValueSetter], a signature for asynchronous setters. -typedef AsyncCallback = Future Function(); +typedef AsyncCallback = Future Function(); /// Signature for callbacks that report that a value has been set and return a /// [Future] that completes when the value has been saved. @@ -56,7 +56,7 @@ typedef AsyncCallback = Future Function(); /// /// * [ValueSetter], a synchronous version of this signature. /// * [AsyncValueGetter], the getter equivalent of this signature. -typedef AsyncValueSetter = Future Function(T value); +typedef AsyncValueSetter = Future Function(T value); /// Signature for callbacks that are to asynchronously report a value on demand. /// diff --git a/packages/flutter/lib/src/foundation/binding.dart b/packages/flutter/lib/src/foundation/binding.dart index e08df2026..56555d311 100644 --- a/packages/flutter/lib/src/foundation/binding.dart +++ b/packages/flutter/lib/src/foundation/binding.dart @@ -172,12 +172,12 @@ abstract class BindingBase { /// /// The [Future] returned by the `callback` argument is returned by [lockEvents]. @protected - Future lockEvents(Future callback()) { + Future lockEvents(Future callback()) { developer.Timeline.startSync('Lock events'); assert(callback != null); _lockCount += 1; - final Future future = callback(); + final Future future = callback(); assert(future != null, 'The lockEvents() callback returned null; it should return a Future that completes when the lock is to expire.'); future.whenComplete(() { _lockCount -= 1; @@ -216,7 +216,7 @@ abstract class BindingBase { /// /// Subclasses (binding classes) should override [performReassemble] to react /// to this method being called. This method itself should not be overridden. - Future reassembleApplication() { + Future reassembleApplication() { return lockEvents(performReassemble); } @@ -232,9 +232,9 @@ abstract class BindingBase { /// Do not call this method directly. Instead, use [reassembleApplication]. @mustCallSuper @protected - Future performReassemble() { + Future performReassemble() { FlutterError.resetErrorCount(); - return Future.value(); + return Future.value(); } /// Registers a service extension method with the given name (full @@ -467,6 +467,6 @@ abstract class BindingBase { } /// Terminate the Flutter application. -Future _exitApplication() async { +Future _exitApplication() async { exit(0); } diff --git a/packages/flutter/lib/src/foundation/diagnostics.dart b/packages/flutter/lib/src/foundation/diagnostics.dart index 4f90f82c2..a996103d6 100644 --- a/packages/flutter/lib/src/foundation/diagnostics.dart +++ b/packages/flutter/lib/src/foundation/diagnostics.dart @@ -664,7 +664,7 @@ abstract class DiagnosticsNode { }) { assert(style != null); assert(level != null); - return DiagnosticsProperty( + return DiagnosticsProperty( '', null, description: message, @@ -1033,7 +1033,7 @@ abstract class DiagnosticsNode { /// * [DiagnosticsNode.message], which serves the same role for messages /// without a clear property name. /// * [StringProperty], which is a better fit for properties with string values. -class MessageProperty extends DiagnosticsProperty { +class MessageProperty extends DiagnosticsProperty { /// Create a diagnostics property that displays a message. /// /// Messages have no concrete [value] (so [value] will return null). The diff --git a/packages/flutter/lib/src/foundation/print.dart b/packages/flutter/lib/src/foundation/print.dart index 434dbb243..5b15e4eb9 100644 --- a/packages/flutter/lib/src/foundation/print.dart +++ b/packages/flutter/lib/src/foundation/print.dart @@ -54,7 +54,7 @@ const int _kDebugPrintCapacity = 12 * 1024; const Duration _kDebugPrintPauseTime = Duration(seconds: 1); final Queue _debugPrintBuffer = Queue(); final Stopwatch _debugPrintStopwatch = Stopwatch(); -Completer _debugPrintCompleter; +Completer _debugPrintCompleter; bool _debugPrintScheduled = false; void _debugPrintTask() { _debugPrintScheduled = false; @@ -72,7 +72,7 @@ void _debugPrintTask() { _debugPrintScheduled = true; _debugPrintedCharacters = 0; Timer(_kDebugPrintPauseTime, _debugPrintTask); - _debugPrintCompleter ??= Completer(); + _debugPrintCompleter ??= Completer(); } else { _debugPrintStopwatch.start(); _debugPrintCompleter?.complete(); @@ -83,7 +83,7 @@ void _debugPrintTask() { /// A Future that resolves when there is no longer any buffered content being /// printed by [debugPrintThrottled] (which is the default implementation for /// [debugPrint], which is used to report errors to the console). -Future get debugPrintDone => _debugPrintCompleter?.future ?? Future.value(); +Future get debugPrintDone => _debugPrintCompleter?.future ?? Future.value(); final RegExp _indentPattern = RegExp('^ *(?:[-+*] |[0-9]+[.):] )?'); enum _WordWrapParseMode { inSpace, inWord, atBreak } diff --git a/packages/flutter/lib/src/material/about.dart b/packages/flutter/lib/src/material/about.dart index 3348ee061..59f078dac 100644 --- a/packages/flutter/lib/src/material/about.dart +++ b/packages/flutter/lib/src/material/about.dart @@ -379,7 +379,7 @@ class _LicensePageState extends State { final List _licenses = []; bool _loaded = false; - Future _initLicenses() async { + Future _initLicenses() async { final Flow flow = Flow.begin(); Timeline.timeSync('_initLicenses()', () { }, flow: flow); await for (LicenseEntry license in LicenseRegistry.licenses) { diff --git a/packages/flutter/lib/src/material/feedback.dart b/packages/flutter/lib/src/material/feedback.dart index 0576e4a59..5dbe0a460 100644 --- a/packages/flutter/lib/src/material/feedback.dart +++ b/packages/flutter/lib/src/material/feedback.dart @@ -87,14 +87,14 @@ class Feedback { /// /// * [wrapForTap] to trigger platform-specific feedback before executing a /// [GestureTapCallback]. - static Future forTap(BuildContext context) async { + static Future forTap(BuildContext context) async { context.findRenderObject().sendSemanticsEvent(const TapSemanticEvent()); switch (_platform(context)) { case TargetPlatform.android: case TargetPlatform.fuchsia: return SystemSound.play(SystemSoundType.click); default: - return Future.value(); + return Future.value(); } } @@ -126,14 +126,14 @@ class Feedback { /// /// * [wrapForLongPress] to trigger platform-specific feedback before /// executing a [GestureLongPressCallback]. - static Future forLongPress(BuildContext context) { + static Future forLongPress(BuildContext context) { context.findRenderObject().sendSemanticsEvent(const LongPressSemanticsEvent()); switch (_platform(context)) { case TargetPlatform.android: case TargetPlatform.fuchsia: return HapticFeedback.vibrate(); default: - return Future.value(); + return Future.value(); } } diff --git a/packages/flutter/lib/src/material/ink_well.dart b/packages/flutter/lib/src/material/ink_well.dart index 84eb5ddd9..4c6ef4c43 100644 --- a/packages/flutter/lib/src/material/ink_well.dart +++ b/packages/flutter/lib/src/material/ink_well.dart @@ -405,7 +405,7 @@ class InkResponse extends StatefulWidget { } } -class _InkResponseState extends State with AutomaticKeepAliveClientMixin { +class _InkResponseState extends State with AutomaticKeepAliveClientMixin { Set _splashes; InteractiveInkFeature _currentSplash; InkHighlight _lastHighlight; diff --git a/packages/flutter/lib/src/material/popup_menu.dart b/packages/flutter/lib/src/material/popup_menu.dart index 74bfb9958..9685f55c5 100644 --- a/packages/flutter/lib/src/material/popup_menu.dart +++ b/packages/flutter/lib/src/material/popup_menu.dart @@ -106,7 +106,7 @@ class PopupMenuDivider extends PopupMenuEntry { final double height; @override - bool represents(dynamic value) => false; + bool represents(Null value) => false; @override _PopupMenuDividerState createState() => _PopupMenuDividerState(); diff --git a/packages/flutter/lib/src/material/refresh_indicator.dart b/packages/flutter/lib/src/material/refresh_indicator.dart index 3a3602b27..17a211f0f 100644 --- a/packages/flutter/lib/src/material/refresh_indicator.dart +++ b/packages/flutter/lib/src/material/refresh_indicator.dart @@ -137,7 +137,7 @@ class RefreshIndicator extends StatefulWidget { /// Contains the state for a [RefreshIndicator]. This class can be used to /// programmatically show the refresh indicator, see the [show] method. -class RefreshIndicatorState extends State with TickerProviderStateMixin { +class RefreshIndicatorState extends State with TickerProviderStateMixin { AnimationController _positionController; AnimationController _scaleController; Animation _positionFactor; @@ -328,7 +328,7 @@ class RefreshIndicatorState extends State with TickerProviderS _mode = _RefreshIndicatorMode.snap; _positionController .animateTo(1.0 / _kDragSizeFactorLimit, duration: _kIndicatorSnapDuration) - .then((Null value) { + .then((void value) { if (mounted && _mode == _RefreshIndicatorMode.snap) { assert(widget.onRefresh != null); setState(() { diff --git a/packages/flutter/lib/src/material/reorderable_list.dart b/packages/flutter/lib/src/material/reorderable_list.dart index 68d2ca721..67503af81 100644 --- a/packages/flutter/lib/src/material/reorderable_list.dart +++ b/packages/flutter/lib/src/material/reorderable_list.dart @@ -159,7 +159,7 @@ class _ReorderableListContent extends StatefulWidget { _ReorderableListContentState createState() => _ReorderableListContentState(); } -class _ReorderableListContentState extends State<_ReorderableListContent> with TickerProviderStateMixin { +class _ReorderableListContentState extends State<_ReorderableListContent> with TickerProviderStateMixin<_ReorderableListContent> { // The extent along the [widget.scrollDirection] axis to allow a child to // drop into when the user reorders list children. @@ -301,7 +301,7 @@ class _ReorderableListContentState extends State<_ReorderableListContent> with T scrollOffset < bottomOffset ? bottomOffset : topOffset, duration: _scrollAnimationDuration, curve: Curves.easeInOut, - ).then((Null none) { + ).then((void value) { setState(() { _scrolling = false; }); diff --git a/packages/flutter/lib/src/material/scaffold.dart b/packages/flutter/lib/src/material/scaffold.dart index 1bffd4c4c..d655425aa 100644 --- a/packages/flutter/lib/src/material/scaffold.dart +++ b/packages/flutter/lib/src/material/scaffold.dart @@ -1192,7 +1192,7 @@ class ScaffoldState extends State with TickerProviderStateMixin { _snackBarController.value = 0.0; completer.complete(reason); } else { - _snackBarController.reverse().then((Null _) { + _snackBarController.reverse().then((void value) { assert(mounted); if (!completer.isCompleted) completer.complete(reason); diff --git a/packages/flutter/lib/src/material/tabs.dart b/packages/flutter/lib/src/material/tabs.dart index 066931547..c2ef5cb68 100644 --- a/packages/flutter/lib/src/material/tabs.dart +++ b/packages/flutter/lib/src/material/tabs.dart @@ -1118,12 +1118,12 @@ class _TabBarViewState extends State { } } - Future _warpToCurrentIndex() async { + Future _warpToCurrentIndex() async { if (!mounted) - return Future.value(); + return Future.value(); if (_pageController.page == _currentIndex.toDouble()) - return Future.value(); + return Future.value(); final int previousIndex = _controller.previousIndex; if ((_currentIndex - previousIndex).abs() == 1) @@ -1147,7 +1147,7 @@ class _TabBarViewState extends State { await _pageController.animateToPage(_currentIndex, duration: kTabScrollDuration, curve: Curves.ease); if (!mounted) - return Future.value(); + return Future.value(); setState(() { _warpUnderwayCount -= 1; diff --git a/packages/flutter/lib/src/painting/image_stream.dart b/packages/flutter/lib/src/painting/image_stream.dart index 57dd52275..4c0b0c404 100644 --- a/packages/flutter/lib/src/painting/image_stream.dart +++ b/packages/flutter/lib/src/painting/image_stream.dart @@ -493,7 +493,7 @@ class MultiFrameImageStreamCompleter extends ImageStreamCompleter { return timestamp - _shownTimestamp >= _frameDuration; } - Future _decodeNextFrameAndSchedule() async { + Future _decodeNextFrameAndSchedule() async { try { _nextFrame = await _codec.getNextFrame(); } catch (exception, stack) { diff --git a/packages/flutter/lib/src/rendering/binding.dart b/packages/flutter/lib/src/rendering/binding.dart index 5f8bef1ff..c67eb26a9 100644 --- a/packages/flutter/lib/src/rendering/binding.dart +++ b/packages/flutter/lib/src/rendering/binding.dart @@ -61,7 +61,7 @@ abstract class RendererBinding extends BindingBase with ServicesBinding, Schedul getter: () async => debugPaintSizeEnabled, setter: (bool value) { if (debugPaintSizeEnabled == value) - return Future.value(); + return Future.value(); debugPaintSizeEnabled = value; return _forceRepaint(); }, @@ -71,7 +71,7 @@ abstract class RendererBinding extends BindingBase with ServicesBinding, Schedul getter: () async => debugPaintBaselinesEnabled, setter: (bool value) { if (debugPaintBaselinesEnabled == value) - return Future.value(); + return Future.value(); debugPaintBaselinesEnabled = value; return _forceRepaint(); }, @@ -84,7 +84,7 @@ abstract class RendererBinding extends BindingBase with ServicesBinding, Schedul debugRepaintRainbowEnabled = value; if (repaint) return _forceRepaint(); - return Future.value(); + return Future.value(); }, ); registerSignalServiceExtension( @@ -290,7 +290,7 @@ abstract class RendererBinding extends BindingBase with ServicesBinding, Schedul } @override - Future performReassemble() async { + Future performReassemble() async { await super.performReassemble(); Timeline.startSync('Dirty Render Tree', arguments: timelineWhitelistArguments); try { @@ -310,7 +310,7 @@ abstract class RendererBinding extends BindingBase with ServicesBinding, Schedul super.hitTest(result, position); // ignore: abstract_super_member_reference } - Future _forceRepaint() { + Future _forceRepaint() { RenderObjectVisitor visitor; visitor = (RenderObject child) { child.markNeedsPaint(); diff --git a/packages/flutter/lib/src/rendering/platform_view.dart b/packages/flutter/lib/src/rendering/platform_view.dart index d1af55b52..93f6e12e1 100644 --- a/packages/flutter/lib/src/rendering/platform_view.dart +++ b/packages/flutter/lib/src/rendering/platform_view.dart @@ -151,7 +151,7 @@ class RenderAndroidView extends RenderBox { Size _currentAndroidViewSize; - Future _sizePlatformView() async { + Future _sizePlatformView() async { // Android virtual displays cannot have a zero size. // Trying to size it to 0 crashes the app, which was happening when starting the app // with a locked screen (see: https://github.com/flutter/flutter/issues/20456). diff --git a/packages/flutter/lib/src/rendering/viewport_offset.dart b/packages/flutter/lib/src/rendering/viewport_offset.dart index 60cb22713..341a1ac76 100644 --- a/packages/flutter/lib/src/rendering/viewport_offset.dart +++ b/packages/flutter/lib/src/rendering/viewport_offset.dart @@ -176,7 +176,7 @@ abstract class ViewportOffset extends ChangeNotifier { /// /// The duration must not be zero. To jump to a particular value without an /// animation, use [jumpTo]. - Future animateTo(double to, { + Future animateTo(double to, { @required Duration duration, @required Curve curve, }); @@ -252,10 +252,10 @@ class _FixedViewportOffset extends ViewportOffset { } @override - Future animateTo(double to, { + Future animateTo(double to, { @required Duration duration, @required Curve curve, - }) async => null; + }) async { } @override ScrollDirection get userScrollDirection => ScrollDirection.idle; diff --git a/packages/flutter/lib/src/scheduler/binding.dart b/packages/flutter/lib/src/scheduler/binding.dart index 98a6c2a9a..0fe49d01b 100644 --- a/packages/flutter/lib/src/scheduler/binding.dart +++ b/packages/flutter/lib/src/scheduler/binding.dart @@ -579,7 +579,7 @@ abstract class SchedulerBinding extends BindingBase with ServicesBinding { _postFrameCallbacks.add(callback); } - Completer _nextFrameCompleter; + Completer _nextFrameCompleter; /// Returns a Future that completes after the frame completes. /// @@ -590,11 +590,11 @@ abstract class SchedulerBinding extends BindingBase with ServicesBinding { /// If the device's screen is currently turned off, this may wait a very long /// time, since frames are not scheduled while the device's screen is turned /// off. - Future get endOfFrame { + Future get endOfFrame { if (_nextFrameCompleter == null) { if (schedulerPhase == SchedulerPhase.idle) scheduleFrame(); - _nextFrameCompleter = Completer(); + _nextFrameCompleter = Completer(); addPostFrameCallback((Duration timeStamp) { _nextFrameCompleter.complete(); _nextFrameCompleter = null; diff --git a/packages/flutter/lib/src/scheduler/ticker.dart b/packages/flutter/lib/src/scheduler/ticker.dart index cd4d77ba3..4ebc1cf87 100644 --- a/packages/flutter/lib/src/scheduler/ticker.dart +++ b/packages/flutter/lib/src/scheduler/ticker.dart @@ -347,7 +347,7 @@ class Ticker { /// /// To run a callback when either this future resolves or when the ticker is /// canceled, use [whenCompleteOrCancel]. -class TickerFuture implements Future { +class TickerFuture implements Future { TickerFuture._(); /// Creates a [TickerFuture] instance that represents an already-complete @@ -361,8 +361,8 @@ class TickerFuture implements Future { _complete(); } - final Completer _primaryCompleter = Completer(); - Completer _secondaryCompleter; + final Completer _primaryCompleter = Completer(); + Completer _secondaryCompleter; bool _completed; // null means unresolved, true means complete, false means canceled void _complete() { @@ -385,11 +385,10 @@ class TickerFuture implements Future { /// future, so even if the [orCancel] property is accessed, canceling the /// ticker will not cause an uncaught exception in the current zone. void whenCompleteOrCancel(VoidCallback callback) { - Null thunk(dynamic value) { + void thunk(dynamic value) { callback(); - return null; } - orCancel.then(thunk, onError: thunk); + orCancel.then(thunk, onError: thunk); } /// A future that resolves when this future resolves or throws when the ticker @@ -400,12 +399,12 @@ class TickerFuture implements Future { /// corresponding ticker is canceled, then the [Future] returned by this /// getter will complete with an error, and if that error is not caught, there /// will be an uncaught exception in the current zone. - Future get orCancel { + Future get orCancel { if (_secondaryCompleter == null) { - _secondaryCompleter = Completer(); + _secondaryCompleter = Completer(); if (_completed != null) { if (_completed) { - _secondaryCompleter.complete(null); + _secondaryCompleter.complete(); } else { _secondaryCompleter.completeError(const TickerCanceled()); } @@ -415,27 +414,27 @@ class TickerFuture implements Future { } @override - Stream asStream() { + Stream asStream() { return _primaryCompleter.future.asStream(); } @override - Future catchError(Function onError, { bool test(dynamic error) }) { + Future catchError(Function onError, { bool test(dynamic error) }) { return _primaryCompleter.future.catchError(onError, test: test); } @override - Future then(dynamic f(Null value), { Function onError }) { + Future then(dynamic f(void value), { Function onError }) { return _primaryCompleter.future.then(f, onError: onError); } @override - Future timeout(Duration timeLimit, { dynamic onTimeout() }) { + Future timeout(Duration timeLimit, { dynamic onTimeout() }) { return _primaryCompleter.future.timeout(timeLimit, onTimeout: onTimeout); } @override - Future whenComplete(dynamic action()) { + Future whenComplete(dynamic action()) { return _primaryCompleter.future.whenComplete(action); } diff --git a/packages/flutter/lib/src/semantics/semantics_service.dart b/packages/flutter/lib/src/semantics/semantics_service.dart index 5d6fb2515..e2aeaf113 100644 --- a/packages/flutter/lib/src/semantics/semantics_service.dart +++ b/packages/flutter/lib/src/semantics/semantics_service.dart @@ -27,7 +27,7 @@ class SemanticsService { /// /// For example a camera application can use this method to make accessibility /// announcements regarding objects in the viewfinder. - static Future announce(String message, TextDirection textDirection) async { + static Future announce(String message, TextDirection textDirection) async { final AnnounceSemanticsEvent event = AnnounceSemanticsEvent(message, textDirection); await SystemChannels.accessibility.send(event.toMap()); } @@ -36,7 +36,7 @@ class SemanticsService { /// /// Currently only honored on Android. The contents of [message] will be /// read by TalkBack. - static Future tooltip(String message) async { + static Future tooltip(String message) async { final TooltipSemanticsEvent event = TooltipSemanticsEvent(message); await SystemChannels.accessibility.send(event.toMap()); } diff --git a/packages/flutter/lib/src/services/clipboard.dart b/packages/flutter/lib/src/services/clipboard.dart index 13bc929d1..aba3761a8 100644 --- a/packages/flutter/lib/src/services/clipboard.dart +++ b/packages/flutter/lib/src/services/clipboard.dart @@ -33,7 +33,7 @@ class Clipboard { static const String kTextPlain = 'text/plain'; /// Stores the given clipboard data on the clipboard. - static Future setData(ClipboardData data) async { + static Future setData(ClipboardData data) async { await SystemChannels.platform.invokeMethod( 'Clipboard.setData', { diff --git a/packages/flutter/lib/src/services/haptic_feedback.dart b/packages/flutter/lib/src/services/haptic_feedback.dart index 067781db8..f2759aeba 100644 --- a/packages/flutter/lib/src/services/haptic_feedback.dart +++ b/packages/flutter/lib/src/services/haptic_feedback.dart @@ -20,7 +20,7 @@ class HapticFeedback { /// /// On Android, this uses the platform haptic feedback API to simulate a /// response to a long press (`HapticFeedbackConstants.LONG_PRESS`). - static Future vibrate() async { + static Future vibrate() async { await SystemChannels.platform.invokeMethod('HapticFeedback.vibrate'); } @@ -31,7 +31,7 @@ class HapticFeedback { /// below 10. /// /// On Android, this uses `HapticFeedbackConstants.VIRTUAL_KEY`. - static Future lightImpact() async { + static Future lightImpact() async { await SystemChannels.platform.invokeMethod( 'HapticFeedback.vibrate', 'HapticFeedbackType.lightImpact', @@ -45,7 +45,7 @@ class HapticFeedback { /// below 10. /// /// On Android, this uses `HapticFeedbackConstants.KEYBOARD_TAP`. - static Future mediumImpact() async { + static Future mediumImpact() async { await SystemChannels.platform.invokeMethod( 'HapticFeedback.vibrate', 'HapticFeedbackType.mediumImpact', @@ -60,7 +60,7 @@ class HapticFeedback { /// /// On Android, this uses `HapticFeedbackConstants.CONTEXT_CLICK` on API levels /// 23 and above. This call has no effects on Android API levels below 23. - static Future heavyImpact() async { + static Future heavyImpact() async { await SystemChannels.platform.invokeMethod( 'HapticFeedback.vibrate', 'HapticFeedbackType.heavyImpact', @@ -73,7 +73,7 @@ class HapticFeedback { /// This call has no effects on iOS versions below 10. /// /// On Android, this uses `HapticFeedbackConstants.CLOCK_TICK`. - static Future selectionClick() async { + static Future selectionClick() async { await SystemChannels.platform.invokeMethod( 'HapticFeedback.vibrate', 'HapticFeedbackType.selectionClick', diff --git a/packages/flutter/lib/src/services/platform_messages.dart b/packages/flutter/lib/src/services/platform_messages.dart index ef26456be..c05d9ac2a 100644 --- a/packages/flutter/lib/src/services/platform_messages.dart +++ b/packages/flutter/lib/src/services/platform_messages.dart @@ -58,7 +58,7 @@ class BinaryMessages { /// from [Window.onPlatformMessage]. /// /// To register a handler for a given message channel, see [setMessageHandler]. - static Future handlePlatformMessage( + static Future handlePlatformMessage( String channel, ByteData data, ui.PlatformMessageResponseCallback callback) async { ByteData response; try { diff --git a/packages/flutter/lib/src/services/system_navigator.dart b/packages/flutter/lib/src/services/system_navigator.dart index 036601eb6..a93867335 100644 --- a/packages/flutter/lib/src/services/system_navigator.dart +++ b/packages/flutter/lib/src/services/system_navigator.dart @@ -19,7 +19,7 @@ class SystemNavigator { /// This method should be preferred over calling `dart:io`'s [exit] method, as /// the latter may cause the underlying platform to act as if the application /// had crashed. - static Future pop() async { + static Future pop() async { await SystemChannels.platform.invokeMethod('SystemNavigator.pop'); } } diff --git a/packages/flutter/lib/src/services/system_sound.dart b/packages/flutter/lib/src/services/system_sound.dart index 80b833ba0..528964a79 100644 --- a/packages/flutter/lib/src/services/system_sound.dart +++ b/packages/flutter/lib/src/services/system_sound.dart @@ -19,7 +19,7 @@ class SystemSound { /// Play the specified system sound. If that sound is not present on the /// system, the call is ignored. - static Future play(SystemSoundType type) async { + static Future play(SystemSoundType type) async { await SystemChannels.platform.invokeMethod( 'SystemSound.play', type.toString(), diff --git a/packages/flutter/lib/src/widgets/animated_list.dart b/packages/flutter/lib/src/widgets/animated_list.dart index b44f47178..037f35831 100644 --- a/packages/flutter/lib/src/widgets/animated_list.dart +++ b/packages/flutter/lib/src/widgets/animated_list.dart @@ -205,7 +205,7 @@ class AnimatedList extends StatefulWidget { /// /// [AnimatedList] item input handlers can also refer to their [AnimatedListState] /// with the static [AnimatedList.of] method. -class AnimatedListState extends State with TickerProviderStateMixin { +class AnimatedListState extends State with TickerProviderStateMixin { final List<_ActiveItem> _incomingItems = <_ActiveItem>[]; final List<_ActiveItem> _outgoingItems = <_ActiveItem>[]; int _itemsCount = 0; @@ -297,7 +297,7 @@ class AnimatedListState extends State with TickerProviderStateMixi _itemsCount += 1; }); - controller.forward().then((Null value) { + controller.forward().then((_) { _removeActiveItemAt(_incomingItems, incomingItem.itemIndex).controller.dispose(); }); } @@ -332,7 +332,7 @@ class AnimatedListState extends State with TickerProviderStateMixi ..sort(); }); - controller.reverse().then((Null value) { + controller.reverse().then((void value) { _removeActiveItemAt(_outgoingItems, outgoingItem.itemIndex).controller.dispose(); // Decrement the incoming and outgoing item indices to account diff --git a/packages/flutter/lib/src/widgets/binding.dart b/packages/flutter/lib/src/widgets/binding.dart index 463909f97..0a5a14173 100644 --- a/packages/flutter/lib/src/widgets/binding.dart +++ b/packages/flutter/lib/src/widgets/binding.dart @@ -283,7 +283,7 @@ abstract class WidgetsBinding extends BindingBase with SchedulerBinding, Gesture Future.value(WidgetsApp.showPerformanceOverlayOverride), setter: (bool value) { if (WidgetsApp.showPerformanceOverlayOverride == value) - return Future.value(); + return Future.value(); WidgetsApp.showPerformanceOverlayOverride = value; return _forceRebuild(); }, @@ -296,7 +296,7 @@ abstract class WidgetsBinding extends BindingBase with SchedulerBinding, Gesture getter: () => Future.value(WidgetsApp.debugAllowBannerOverride), setter: (bool value) { if (WidgetsApp.debugAllowBannerOverride == value) - return Future.value(); + return Future.value(); WidgetsApp.debugAllowBannerOverride = value; return _forceRebuild(); }, @@ -318,12 +318,12 @@ abstract class WidgetsBinding extends BindingBase with SchedulerBinding, Gesture }()); } - Future _forceRebuild() { + Future _forceRebuild() { if (renderViewElement != null) { buildOwner.reassemble(renderViewElement); return endOfFrame; } - return Future.value(); + return Future.value(); } /// The [BuildOwner] in charge of executing the build pipeline for the @@ -443,7 +443,7 @@ abstract class WidgetsBinding extends BindingBase with SchedulerBinding, Gesture /// This method exposes the `popRoute` notification from /// [SystemChannels.navigation]. @protected - Future handlePopRoute() async { + Future handlePopRoute() async { for (WidgetsBindingObserver observer in List.from(_observers)) { if (await observer.didPopRoute()) return; @@ -463,7 +463,7 @@ abstract class WidgetsBinding extends BindingBase with SchedulerBinding, Gesture /// [SystemChannels.navigation]. @protected @mustCallSuper - Future handlePushRoute(String route) async { + Future handlePushRoute(String route) async { for (WidgetsBindingObserver observer in List.from(_observers)) { if (await observer.didPushRoute(route)) return; @@ -477,7 +477,7 @@ abstract class WidgetsBinding extends BindingBase with SchedulerBinding, Gesture case 'pushRoute': return handlePushRoute(methodCall.arguments); } - return Future.value(); + return Future.value(); } @override @@ -500,7 +500,7 @@ abstract class WidgetsBinding extends BindingBase with SchedulerBinding, Gesture observer.didHaveMemoryPressure(); } - Future _handleSystemMessage(Object systemMessage) async { + Future _handleSystemMessage(Object systemMessage) async { final Map message = systemMessage; final String type = message['type']; switch (type) { @@ -508,7 +508,7 @@ abstract class WidgetsBinding extends BindingBase with SchedulerBinding, Gesture handleMemoryPressure(); break; } - return null; + return; } bool _needToReportFirstFrame = true; @@ -699,11 +699,11 @@ abstract class WidgetsBinding extends BindingBase with SchedulerBinding, Gesture } @override - Future performReassemble() { + Future performReassemble() { deferFirstFrameReport(); if (renderViewElement != null) buildOwner.reassemble(renderViewElement); - return super.performReassemble().then((Null value) { + return super.performReassemble().then((void value) { allowFirstFrameReport(); }); } diff --git a/packages/flutter/lib/src/widgets/drag_target.dart b/packages/flutter/lib/src/widgets/drag_target.dart index ba289f507..6c3be3e6d 100644 --- a/packages/flutter/lib/src/widgets/drag_target.dart +++ b/packages/flutter/lib/src/widgets/drag_target.dart @@ -593,14 +593,12 @@ class _DragAvatar extends Drag { _enteredTargets.add(target); return target.didEnter(this); }, - orElse: _null + orElse: () => null ); _activeTarget = newTarget; } - static Null _null() => null; - Iterable<_DragTargetState> _getDragTargets(List path) sync* { // Look for the RenderBoxes that corresponds to the hit target (the hit target // widgets build RenderMetaData boxes for us for this purpose). diff --git a/packages/flutter/lib/src/widgets/editable_text.dart b/packages/flutter/lib/src/widgets/editable_text.dart index 3c79cc6ac..96785c0b0 100644 --- a/packages/flutter/lib/src/widgets/editable_text.dart +++ b/packages/flutter/lib/src/widgets/editable_text.dart @@ -427,7 +427,7 @@ class EditableText extends StatefulWidget { } /// State for a [EditableText]. -class EditableTextState extends State with AutomaticKeepAliveClientMixin, WidgetsBindingObserver implements TextInputClient, TextSelectionDelegate { +class EditableTextState extends State with AutomaticKeepAliveClientMixin, WidgetsBindingObserver implements TextInputClient, TextSelectionDelegate { Timer _cursorTimer; final ValueNotifier _showCursor = ValueNotifier(false); final GlobalKey _editableKey = GlobalKey(); diff --git a/packages/flutter/lib/src/widgets/image.dart b/packages/flutter/lib/src/widgets/image.dart index 91e87ef84..6901b7e26 100644 --- a/packages/flutter/lib/src/widgets/image.dart +++ b/packages/flutter/lib/src/widgets/image.dart @@ -71,14 +71,14 @@ ImageConfiguration createLocalImageConfiguration(BuildContext context, { Size si /// See also: /// /// * [ImageCache], which holds images that may be reused. -Future precacheImage( +Future precacheImage( ImageProvider provider, BuildContext context, { Size size, ImageErrorListener onError, }) { final ImageConfiguration config = createLocalImageConfiguration(context, size: size); - final Completer completer = Completer(); + final Completer completer = Completer(); final ImageStream stream = provider.resolve(config); void listener(ImageInfo image, bool sync) { completer.complete(); @@ -98,7 +98,7 @@ Future precacheImage( } } stream.addListener(listener, onError: errorListener); - completer.future.then((Null _) { stream.removeListener(listener); }); + completer.future.then((void value) { stream.removeListener(listener); }); return completer.future; } diff --git a/packages/flutter/lib/src/widgets/implicit_animations.dart b/packages/flutter/lib/src/widgets/implicit_animations.dart index 7332c88d4..768ae346f 100644 --- a/packages/flutter/lib/src/widgets/implicit_animations.dart +++ b/packages/flutter/lib/src/widgets/implicit_animations.dart @@ -257,7 +257,7 @@ typedef TweenVisitor = Tween Function(Tween tween, T targetValue, Tween /// Subclasses must implement the [forEachTween] method to allow /// [ImplicitlyAnimatedWidgetState] to iterate through the subclasses' widget's /// fields and animate them. -abstract class ImplicitlyAnimatedWidgetState extends State with SingleTickerProviderStateMixin { +abstract class ImplicitlyAnimatedWidgetState extends State with SingleTickerProviderStateMixin { /// The animation controller driving this widget's implicit animations. @protected AnimationController get controller => _controller; diff --git a/packages/flutter/lib/src/widgets/nested_scroll_view.dart b/packages/flutter/lib/src/widgets/nested_scroll_view.dart index 9d7d98e71..fe6058297 100644 --- a/packages/flutter/lib/src/widgets/nested_scroll_view.dart +++ b/packages/flutter/lib/src/widgets/nested_scroll_view.dart @@ -704,7 +704,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont _outerPosition.updateCanDrag(maxInnerExtent); } - Future animateTo(double to, { + Future animateTo(double to, { @required Duration duration, @required Curve curve, }) async { @@ -713,7 +713,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont duration, curve, ); - final List> resultFutures = >[outerActivity.done]; + final List> resultFutures = >[outerActivity.done]; beginActivity( outerActivity, (_NestedScrollPosition position) { @@ -726,7 +726,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont return innerActivity; }, ); - await Future.wait(resultFutures); + await Future.wait(resultFutures); } void jumpTo(double to) { @@ -1070,7 +1070,7 @@ class _NestedScrollPosition extends ScrollPosition implements ScrollActivityDele } @override - Future animateTo(double to, { + Future animateTo(double to, { @required Duration duration, @required Curve curve, }) { diff --git a/packages/flutter/lib/src/widgets/page_view.dart b/packages/flutter/lib/src/widgets/page_view.dart index 6629a8047..371cd58b8 100644 --- a/packages/flutter/lib/src/widgets/page_view.dart +++ b/packages/flutter/lib/src/widgets/page_view.dart @@ -111,7 +111,7 @@ class PageController extends ScrollController { /// The returned [Future] resolves when the animation completes. /// /// The `duration` and `curve` arguments must not be null. - Future animateToPage(int page, { + Future animateToPage(int page, { @required Duration duration, @required Curve curve, }) { @@ -138,7 +138,7 @@ class PageController extends ScrollController { /// The returned [Future] resolves when the animation completes. /// /// The `duration` and `curve` arguments must not be null. - Future nextPage({ @required Duration duration, @required Curve curve }) { + Future nextPage({ @required Duration duration, @required Curve curve }) { return animateToPage(page.round() + 1, duration: duration, curve: curve); } @@ -148,7 +148,7 @@ class PageController extends ScrollController { /// The returned [Future] resolves when the animation completes. /// /// The `duration` and `curve` arguments must not be null. - Future previousPage({ @required Duration duration, @required Curve curve }) { + Future previousPage({ @required Duration duration, @required Curve curve }) { return animateToPage(page.round() - 1, duration: duration, curve: curve); } diff --git a/packages/flutter/lib/src/widgets/scroll_activity.dart b/packages/flutter/lib/src/widgets/scroll_activity.dart index 4fbb9b9a5..eb5630290 100644 --- a/packages/flutter/lib/src/widgets/scroll_activity.dart +++ b/packages/flutter/lib/src/widgets/scroll_activity.dart @@ -601,7 +601,7 @@ class DrivenScrollActivity extends ScrollActivity { assert(duration > Duration.zero), assert(curve != null), super(delegate) { - _completer = Completer(); + _completer = Completer(); _controller = AnimationController.unbounded( value: from, debugLabel: '$runtimeType', @@ -612,7 +612,7 @@ class DrivenScrollActivity extends ScrollActivity { .whenComplete(_end); // won't trigger if we dispose _controller first } - Completer _completer; + Completer _completer; AnimationController _controller; /// A [Future] that completes when the activity stops. @@ -620,7 +620,7 @@ class DrivenScrollActivity extends ScrollActivity { /// For example, this [Future] will complete if the animation reaches the end /// or if the user interacts with the scroll view in way that causes the /// animation to stop before it reaches the end. - Future get done => _completer.future; + Future get done => _completer.future; @override double get velocity => _controller.velocity; diff --git a/packages/flutter/lib/src/widgets/scroll_controller.dart b/packages/flutter/lib/src/widgets/scroll_controller.dart index abaf54360..b862cf16a 100644 --- a/packages/flutter/lib/src/widgets/scroll_controller.dart +++ b/packages/flutter/lib/src/widgets/scroll_controller.dart @@ -142,15 +142,15 @@ class ScrollController extends ChangeNotifier { /// /// The duration must not be zero. To jump to a particular value without an /// animation, use [jumpTo]. - Future animateTo(double offset, { + Future animateTo(double offset, { @required Duration duration, @required Curve curve, }) { assert(_positions.isNotEmpty, 'ScrollController not attached to any scroll views.'); - final List> animations = List>(_positions.length); + final List> animations = List>(_positions.length); for (int i = 0; i < _positions.length; i += 1) animations[i] = _positions[i].animateTo(offset, duration: duration, curve: curve); - return Future.wait(animations).then((List _) => null); + return Future.wait(animations).then((List _) => null); } /// Jumps the scroll position from its current value to the given value, diff --git a/packages/flutter/lib/src/widgets/scroll_position.dart b/packages/flutter/lib/src/widgets/scroll_position.dart index 9048442d7..b550e1559 100644 --- a/packages/flutter/lib/src/widgets/scroll_position.dart +++ b/packages/flutter/lib/src/widgets/scroll_position.dart @@ -488,7 +488,7 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics { /// Animates the position such that the given object is as visible as possible /// by just scrolling this position. - Future ensureVisible(RenderObject object, { + Future ensureVisible(RenderObject object, { double alignment = 0.0, Duration duration = Duration.zero, Curve curve = Curves.ease, @@ -500,11 +500,11 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics { final double target = viewport.getOffsetToReveal(object, alignment).offset.clamp(minScrollExtent, maxScrollExtent); if (target == pixels) - return Future.value(); + return Future.value(); if (duration == Duration.zero) { jumpTo(target); - return Future.value(); + return Future.value(); } return animateTo(target, duration: duration, curve: curve); @@ -545,7 +545,7 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics { /// /// The animation is typically handled by an [DrivenScrollActivity]. @override - Future animateTo(double to, { + Future animateTo(double to, { @required Duration duration, @required Curve curve, }); diff --git a/packages/flutter/lib/src/widgets/scroll_position_with_single_context.dart b/packages/flutter/lib/src/widgets/scroll_position_with_single_context.dart index bd7ab341c..2b691fd96 100644 --- a/packages/flutter/lib/src/widgets/scroll_position_with_single_context.dart +++ b/packages/flutter/lib/src/widgets/scroll_position_with_single_context.dart @@ -169,14 +169,14 @@ class ScrollPositionWithSingleContext extends ScrollPosition implements ScrollAc } @override - Future animateTo(double to, { + Future animateTo(double to, { @required Duration duration, @required Curve curve, }) { if (nearEqual(to, pixels, physics.tolerance.distance)) { // Skip the animation, go straight to the position as we are already close. jumpTo(to); - return Future.value(); + return Future.value(); } final DrivenScrollActivity activity = DrivenScrollActivity( diff --git a/packages/flutter/lib/src/widgets/scrollable.dart b/packages/flutter/lib/src/widgets/scrollable.dart index 0f019bce0..e5fb0584f 100644 --- a/packages/flutter/lib/src/widgets/scrollable.dart +++ b/packages/flutter/lib/src/widgets/scrollable.dart @@ -209,12 +209,12 @@ class Scrollable extends StatefulWidget { /// Scrolls the scrollables that enclose the given context so as to make the /// given context visible. - static Future ensureVisible(BuildContext context, { + static Future ensureVisible(BuildContext context, { double alignment = 0.0, Duration duration = Duration.zero, Curve curve = Curves.ease, }) { - final List> futures = >[]; + final List> futures = >[]; ScrollableState scrollable = Scrollable.of(context); while (scrollable != null) { @@ -229,10 +229,10 @@ class Scrollable extends StatefulWidget { } if (futures.isEmpty || duration == Duration.zero) - return Future.value(); + return Future.value(); if (futures.length == 1) return futures.single; - return Future.wait(futures).then((List _) => null); + return Future.wait(futures).then((List _) => null); } } diff --git a/packages/flutter/lib/src/widgets/sliver_persistent_header.dart b/packages/flutter/lib/src/widgets/sliver_persistent_header.dart index 9719280f1..d87857c45 100644 --- a/packages/flutter/lib/src/widgets/sliver_persistent_header.dart +++ b/packages/flutter/lib/src/widgets/sliver_persistent_header.dart @@ -207,13 +207,13 @@ class _SliverPersistentHeaderElement extends RenderObjectElement { } @override - void insertChildRenderObject(covariant RenderObject child, Null slot) { + void insertChildRenderObject(covariant RenderObject child, dynamic slot) { assert(renderObject.debugValidateChild(child)); renderObject.child = child; } @override - void moveChildRenderObject(covariant RenderObject child, Null slot) { + void moveChildRenderObject(covariant RenderObject child, dynamic slot) { assert(false); } diff --git a/packages/flutter/lib/src/widgets/text_selection.dart b/packages/flutter/lib/src/widgets/text_selection.dart index f2019c2c7..7e2a85f63 100644 --- a/packages/flutter/lib/src/widgets/text_selection.dart +++ b/packages/flutter/lib/src/widgets/text_selection.dart @@ -176,7 +176,7 @@ abstract class TextSelectionControls { /// asynchronous. Race conditions may exist with this API as currently /// implemented. // TODO(ianh): https://github.com/flutter/flutter/issues/11427 - Future handlePaste(TextSelectionDelegate delegate) async { + Future handlePaste(TextSelectionDelegate delegate) async { final TextEditingValue value = delegate.textEditingValue; // Snapshot the input before using `await`. final ClipboardData data = await Clipboard.getData(Clipboard.kTextPlain); if (data != null) { diff --git a/packages/flutter/lib/src/widgets/widget_inspector.dart b/packages/flutter/lib/src/widgets/widget_inspector.dart index 3ea2f6fca..dc8b442e4 100644 --- a/packages/flutter/lib/src/widgets/widget_inspector.dart +++ b/packages/flutter/lib/src/widgets/widget_inspector.dart @@ -910,13 +910,13 @@ class WidgetInspectorService { /// /// This is expensive and should not be called except during development. @protected - Future forceRebuild() { + Future forceRebuild() { final WidgetsBinding binding = WidgetsBinding.instance; if (binding.renderViewElement != null) { binding.buildOwner.reassemble(binding.renderViewElement); return binding.endOfFrame; } - return Future.value(); + return Future.value(); } /// Called to register service extensions. @@ -937,7 +937,7 @@ class WidgetInspectorService { getter: () async => WidgetsApp.debugShowWidgetInspectorOverride, setter: (bool value) { if (WidgetsApp.debugShowWidgetInspectorOverride == value) { - return Future.value(); + return Future.value(); } WidgetsApp.debugShowWidgetInspectorOverride = value; return forceRebuild(); diff --git a/packages/flutter/test/animation/futures_test.dart b/packages/flutter/test/animation/futures_test.dart index 2e552f9b2..23eb35a2e 100644 --- a/packages/flutter/test/animation/futures_test.dart +++ b/packages/flutter/test/animation/futures_test.dart @@ -22,7 +22,7 @@ void main() { vsync: const TestVSync(), ); final List log = []; - Future runTest() async { + Future runTest() async { log.add('a'); // t=0 await controller1.forward(); // starts at t=0 again log.add('b'); // wants to end at t=100 but missed frames until t=150 @@ -32,7 +32,7 @@ void main() { log.add('d'); // wants to end at t=1099 but missed frames until t=1200 } log.add('start'); - runTest().then((Null value) { + runTest().then((void value) { log.add('end'); }); await tester.pump(); // t=0 @@ -71,7 +71,7 @@ void main() { vsync: const TestVSync(), ); final List log = []; - Future runTest() async { + Future runTest() async { log.add('a'); // t=0 await controller1.forward().orCancel; // starts at t=0 again log.add('b'); // wants to end at t=100 but missed frames until t=150 @@ -81,7 +81,7 @@ void main() { log.add('d'); // wants to end at t=1099 but missed frames until t=1200 } log.add('start'); - runTest().then((Null value) { + runTest().then((void value) { log.add('end'); }); await tester.pump(); // t=0 @@ -112,7 +112,7 @@ void main() { vsync: const TestVSync(), ); final List log = []; - Future runTest() async { + Future runTest() async { try { log.add('start'); await controller1.forward().orCancel; @@ -121,7 +121,7 @@ void main() { log.add('caught'); } } - runTest().then((Null value) { + runTest().then((void value) { log.add('end'); }); await tester.pump(); // start ticker @@ -172,10 +172,10 @@ void main() { final TickerFuture f = controller1.forward(); await tester.pump(); // start ticker await tester.pump(const Duration(milliseconds: 200)); // end ticker - expect(await f.asStream().single, isNull); + expect(f.asStream().single, isInstanceOf>()); await f.catchError((dynamic e) { throw 'do not reach'; }); - expect(await f.then((Null value) => true), isTrue); - expect(await f.whenComplete(() => false), isNull); - expect(await f.timeout(const Duration(seconds: 5)), isNull); + expect(await f.then((_) => true), isTrue); + expect(f.whenComplete(() => false), isInstanceOf>()); + expect(f.timeout(const Duration(seconds: 5)), isInstanceOf>()); }); } diff --git a/packages/flutter/test/cupertino/bottom_tab_bar_test.dart b/packages/flutter/test/cupertino/bottom_tab_bar_test.dart index 54dc0b916..ca54528dc 100644 --- a/packages/flutter/test/cupertino/bottom_tab_bar_test.dart +++ b/packages/flutter/test/cupertino/bottom_tab_bar_test.dart @@ -8,7 +8,7 @@ import 'package:flutter_test/flutter_test.dart'; import '../painting/mocks_for_image_cache.dart'; import '../widgets/semantics_tester.dart'; -Future pumpWidgetWithBoilerplate(WidgetTester tester, Widget widget) async { +Future pumpWidgetWithBoilerplate(WidgetTester tester, Widget widget) async { await tester.pumpWidget( Directionality( textDirection: TextDirection.ltr, diff --git a/packages/flutter/test/engine/task_order_test.dart b/packages/flutter/test/engine/task_order_test.dart index f29acf608..eef26fcf7 100644 --- a/packages/flutter/test/engine/task_order_test.dart +++ b/packages/flutter/test/engine/task_order_test.dart @@ -13,7 +13,7 @@ void main() { tasks.add(1); // Flush 0 microtasks. - await Future.delayed(Duration.zero); + await Future.delayed(Duration.zero); scheduleMicrotask(() { tasks.add(3); @@ -25,7 +25,7 @@ void main() { tasks.add(2); // Flush 2 microtasks. - await Future.delayed(Duration.zero); + await Future.delayed(Duration.zero); scheduleMicrotask(() { tasks.add(6); @@ -40,7 +40,7 @@ void main() { tasks.add(5); // Flush 3 microtasks. - await Future.delayed(Duration.zero); + await Future.delayed(Duration.zero); tasks.add(9); diff --git a/packages/flutter/test/foundation/error_reporting_test.dart b/packages/flutter/test/foundation/error_reporting_test.dart index 28dab80b2..db224bfcc 100644 --- a/packages/flutter/test/foundation/error_reporting_test.dart +++ b/packages/flutter/test/foundation/error_reporting_test.dart @@ -38,7 +38,7 @@ Future getSampleStack() async { return await Future.sync(() => StackTrace.current); } -Future main() async { +Future main() async { final List console = []; final StackTrace sampleStack = await getSampleStack(); diff --git a/packages/flutter/test/foundation/reassemble_test.dart b/packages/flutter/test/foundation/reassemble_test.dart index f686ba34f..1808b6cb4 100644 --- a/packages/flutter/test/foundation/reassemble_test.dart +++ b/packages/flutter/test/foundation/reassemble_test.dart @@ -11,7 +11,7 @@ class TestFoundationFlutterBinding extends BindingBase { bool wasLocked; @override - Future performReassemble() async { + Future performReassemble() async { wasLocked = locked; return super.performReassemble(); } diff --git a/packages/flutter/test/foundation/service_extensions_test.dart b/packages/flutter/test/foundation/service_extensions_test.dart index e2ca5b955..b5d4b5cfa 100644 --- a/packages/flutter/test/foundation/service_extensions_test.dart +++ b/packages/flutter/test/foundation/service_extensions_test.dart @@ -43,7 +43,7 @@ class TestServiceExtensionsBinding extends BindingBase int reassembled = 0; bool pendingReassemble = false; @override - Future performReassemble() { + Future performReassemble() { reassembled += 1; pendingReassemble = true; return super.performReassemble(); @@ -54,7 +54,7 @@ class TestServiceExtensionsBinding extends BindingBase void scheduleFrame() { frameScheduled = true; } - Future doFrame() async { + Future doFrame() async { frameScheduled = false; if (ui.window.onBeginFrame != null) ui.window.onBeginFrame(Duration.zero); @@ -74,8 +74,8 @@ class TestServiceExtensionsBinding extends BindingBase pendingReassemble = false; } - Future flushMicrotasks() { - final Completer completer = Completer(); + Future flushMicrotasks() { + final Completer completer = Completer(); Timer.run(completer.complete); return completer.future; } diff --git a/packages/flutter/test/foundation/synchronous_future_test.dart b/packages/flutter/test/foundation/synchronous_future_test.dart index a768a2191..d69546b7f 100644 --- a/packages/flutter/test/foundation/synchronous_future_test.dart +++ b/packages/flutter/test/foundation/synchronous_future_test.dart @@ -12,13 +12,13 @@ void main() { final Future future = SynchronousFuture(42); int result; - future.then((int value) { result = value; }); + future.then((int value) { result = value; }); expect(result, equals(42)); result = null; final Future futureWithTimeout = future.timeout(const Duration(milliseconds: 1)); - futureWithTimeout.then((int value) { result = value; }); + futureWithTimeout.then((int value) { result = value; }); expect(result, isNull); await futureWithTimeout; expect(result, equals(42)); diff --git a/packages/flutter/test/gestures/locking_test.dart b/packages/flutter/test/gestures/locking_test.dart index 8bb75b5e4..3de144aac 100644 --- a/packages/flutter/test/gestures/locking_test.dart +++ b/packages/flutter/test/gestures/locking_test.dart @@ -29,7 +29,7 @@ class TestGestureFlutterBinding extends BindingBase with GestureBinding { ] ); - Future test(VoidCallback callback) { + Future test(VoidCallback callback) { assert(callback != null); return _binding.lockEvents(() async { ui.window.onPointerDataPacket(packet); diff --git a/packages/flutter/test/material/chip_test.dart b/packages/flutter/test/material/chip_test.dart index 8870443e0..f73e2fda2 100644 --- a/packages/flutter/test/material/chip_test.dart +++ b/packages/flutter/test/material/chip_test.dart @@ -81,7 +81,7 @@ Widget _wrapForChip({ /// further constraining the size of its child, the label widget. /// Optionally, adding an avatar or delete icon to the chip should not /// cause the chip or label to exceed its constrained height. -Future _testConstrainedLabel( +Future _testConstrainedLabel( WidgetTester tester, { CircleAvatar avatar, VoidCallback onDeleted, diff --git a/packages/flutter/test/material/date_picker_test.dart b/packages/flutter/test/material/date_picker_test.dart index 920449a9f..ca5f19bf8 100644 --- a/packages/flutter/test/material/date_picker_test.dart +++ b/packages/flutter/test/material/date_picker_test.dart @@ -127,7 +127,7 @@ void _tests() { await tester.pump(const Duration(seconds: 5)); }); - Future preparePicker(WidgetTester tester, Future callback(Future date)) async { + Future preparePicker(WidgetTester tester, Future callback(Future date)) async { BuildContext buttonContext; await tester.pumpWidget(MaterialApp( home: Material( diff --git a/packages/flutter/test/material/dropdown_test.dart b/packages/flutter/test/material/dropdown_test.dart index 4c2bf8fed..486ce2076 100644 --- a/packages/flutter/test/material/dropdown_test.dart +++ b/packages/flutter/test/material/dropdown_test.dart @@ -585,7 +585,7 @@ void main() { Rect buttonRect; Rect menuRect; - Future popUpAndDown(Widget frame) async { + Future popUpAndDown(Widget frame) async { await tester.pumpWidget(frame); await tester.tap(find.byType(dropdownButtonType)); await tester.pumpAndSettle(); diff --git a/packages/flutter/test/material/flexible_space_bar_collapse_mode_test.dart b/packages/flutter/test/material/flexible_space_bar_collapse_mode_test.dart index 8786e03b5..6ba8384fb 100644 --- a/packages/flutter/test/material/flexible_space_bar_collapse_mode_test.dart +++ b/packages/flutter/test/material/flexible_space_bar_collapse_mode_test.dart @@ -243,7 +243,7 @@ void main() { }); } -Future slowDrag(WidgetTester tester, Key widget, Offset offset) async { +Future slowDrag(WidgetTester tester, Key widget, Offset offset) async { final Offset target = tester.getCenter(find.byKey(widget)); final TestGesture gesture = await tester.startGesture(target); await gesture.moveBy(offset); diff --git a/packages/flutter/test/material/ink_well_test.dart b/packages/flutter/test/material/ink_well_test.dart index 89ba576c4..0ae941032 100644 --- a/packages/flutter/test/material/ink_well_test.dart +++ b/packages/flutter/test/material/ink_well_test.dart @@ -155,7 +155,7 @@ void main() { }); testWidgets('splashing survives scrolling when keep-alive is enabled', (WidgetTester tester) async { - Future runTest(bool keepAlive) async { + Future runTest(bool keepAlive) async { await tester.pumpWidget( Directionality( textDirection: TextDirection.ltr, diff --git a/packages/flutter/test/material/modal_bottom_sheet_test.dart b/packages/flutter/test/material/modal_bottom_sheet_test.dart index e9594e20b..8123958f5 100644 --- a/packages/flutter/test/material/modal_bottom_sheet_test.dart +++ b/packages/flutter/test/material/modal_bottom_sheet_test.dart @@ -26,11 +26,10 @@ void main() { expect(find.text('BottomSheet'), findsNothing); bool showBottomSheetThenCalled = false; - showModalBottomSheet( + showModalBottomSheet( context: savedContext, builder: (BuildContext context) => const Text('BottomSheet') - ).then((Null result) { - expectSync(result, isNull); + ).then((void value) { showBottomSheetThenCalled = true; }); @@ -48,11 +47,10 @@ void main() { expect(find.text('BottomSheet'), findsNothing); showBottomSheetThenCalled = false; - showModalBottomSheet( + showModalBottomSheet( context: savedContext, builder: (BuildContext context) => const Text('BottomSheet'), - ).then((Null result) { - expectSync(result, isNull); + ).then((void value) { showBottomSheetThenCalled = true; }); await tester.pump(); // bottom sheet show animation starts @@ -83,7 +81,7 @@ void main() { expect(showBottomSheetThenCalled, isFalse); expect(find.text('BottomSheet'), findsNothing); - scaffoldKey.currentState.showBottomSheet((BuildContext context) { + scaffoldKey.currentState.showBottomSheet((BuildContext context) { return Container( margin: const EdgeInsets.all(40.0), child: const Text('BottomSheet') @@ -137,7 +135,7 @@ void main() { ) )); - scaffoldKey.currentState.showBottomSheet((BuildContext context) { + scaffoldKey.currentState.showBottomSheet((BuildContext context) { return Container( margin: const EdgeInsets.all(40.0), child: const Text('BottomSheet') diff --git a/packages/flutter/test/material/persistent_bottom_sheet_test.dart b/packages/flutter/test/material/persistent_bottom_sheet_test.dart index c880aeeca..388b5b211 100644 --- a/packages/flutter/test/material/persistent_bottom_sheet_test.dart +++ b/packages/flutter/test/material/persistent_bottom_sheet_test.dart @@ -8,7 +8,7 @@ import 'package:flutter/material.dart'; void main() { testWidgets('Verify that a BottomSheet can be rebuilt with ScaffoldFeatureController.setState()', (WidgetTester tester) async { final GlobalKey scaffoldKey = GlobalKey(); - PersistentBottomSheetController bottomSheet; + PersistentBottomSheetController bottomSheet; int buildCount = 0; await tester.pumpWidget(MaterialApp( @@ -18,7 +18,7 @@ void main() { ) )); - bottomSheet = scaffoldKey.currentState.showBottomSheet((_) { + bottomSheet = scaffoldKey.currentState.showBottomSheet((_) { return Builder( builder: (BuildContext context) { buildCount += 1; @@ -45,7 +45,7 @@ void main() { ) )); - scaffoldKey.currentState.showBottomSheet((BuildContext context) { + scaffoldKey.currentState.showBottomSheet((BuildContext context) { return ListView( shrinkWrap: true, primary: false, @@ -76,7 +76,7 @@ void main() { )); int buildCount = 0; - showBottomSheet( + showBottomSheet( context: key.currentContext, builder: (BuildContext context) { return Builder( @@ -114,7 +114,7 @@ void main() { await tester.pump(); - showBottomSheet( + showBottomSheet( context: scaffoldContext, builder: (BuildContext context) { bottomSheetContext = context; diff --git a/packages/flutter/test/material/popup_menu_test.dart b/packages/flutter/test/material/popup_menu_test.dart index 3352a7bb2..eba243b7d 100644 --- a/packages/flutter/test/material/popup_menu_test.dart +++ b/packages/flutter/test/material/popup_menu_test.dart @@ -224,8 +224,8 @@ void main() { || widgetType == '_PopupMenu'; // for old versions of Dart that don't reify method type arguments }; - Future openMenu(TextDirection textDirection, Alignment alignment) async { - return TestAsyncUtils.guard(() async { + Future openMenu(TextDirection textDirection, Alignment alignment) async { + return TestAsyncUtils.guard(() async { await tester.pumpWidget(Container()); // reset in case we had a menu up already await tester.pumpWidget(TestApp( textDirection: textDirection, @@ -239,14 +239,14 @@ void main() { }); } - Future testPositioningDown( + Future testPositioningDown( WidgetTester tester, TextDirection textDirection, Alignment alignment, TextDirection growthDirection, Rect startRect, ) { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard(() async { await openMenu(textDirection, alignment); Rect rect = tester.getRect(find.byWidgetPredicate(popupMenu)); expect(rect, startRect); @@ -296,14 +296,14 @@ void main() { }); } - Future testPositioningDownThenUp( + Future testPositioningDownThenUp( WidgetTester tester, TextDirection textDirection, Alignment alignment, TextDirection growthDirection, Rect startRect, ) { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard(() async { await openMenu(textDirection, alignment); Rect rect = tester.getRect(find.byWidgetPredicate(popupMenu)); expect(rect, startRect); diff --git a/packages/flutter/test/material/scaffold_test.dart b/packages/flutter/test/material/scaffold_test.dart index 4c23e53b8..aadc34d1a 100644 --- a/packages/flutter/test/material/scaffold_test.dart +++ b/packages/flutter/test/material/scaffold_test.dart @@ -306,7 +306,7 @@ void main() { builder: (BuildContext context) { return GestureDetector( onTap: () { - Scaffold.of(context).showBottomSheet((BuildContext context) { + Scaffold.of(context).showBottomSheet((BuildContext context) { return Container( key: sheetKey, color: Colors.blue[500], @@ -390,7 +390,7 @@ void main() { }); group('back arrow', () { - Future expectBackIcon(WidgetTester tester, TargetPlatform platform, IconData expectedIcon) async { + Future expectBackIcon(WidgetTester tester, TargetPlatform platform, IconData expectedIcon) async { final GlobalKey rootKey = GlobalKey(); final Map routes = { '/': (_) => Container(key: rootKey, child: const Text('Home')), @@ -425,7 +425,7 @@ void main() { }); group('close button', () { - Future expectCloseIcon(WidgetTester tester, TargetPlatform platform, IconData expectedIcon, PageRoute routeBuilder()) async { + Future expectCloseIcon(WidgetTester tester, TargetPlatform platform, IconData expectedIcon, PageRoute routeBuilder()) async { await tester.pumpWidget( MaterialApp( theme: ThemeData(platform: platform), diff --git a/packages/flutter/test/material/slider_test.dart b/packages/flutter/test/material/slider_test.dart index 6db6c616d..bf4cec3a3 100644 --- a/packages/flutter/test/material/slider_test.dart +++ b/packages/flutter/test/material/slider_test.dart @@ -1013,7 +1013,7 @@ void main() { ); } - Future testReparenting(bool reparent) async { + Future testReparenting(bool reparent) async { final RenderBox sliderBox = tester.firstRenderObject(find.byType(Slider)); final Offset center = tester.getCenter(find.byType(Slider)); // Move to 0.0. @@ -1276,7 +1276,7 @@ void main() { ); } - Future expectValueIndicator({ + Future expectValueIndicator({ bool isVisible, SliderThemeData theme, int divisions, diff --git a/packages/flutter/test/material/snack_bar_test.dart b/packages/flutter/test/material/snack_bar_test.dart index 1ecbb2291..cf1d55d09 100644 --- a/packages/flutter/test/material/snack_bar_test.dart +++ b/packages/flutter/test/material/snack_bar_test.dart @@ -425,7 +425,7 @@ void main() { actionPressed = true; } ), - )).closed.then((SnackBarClosedReason reason) { + )).closed.then((SnackBarClosedReason reason) { closedReason = reason; }); }, diff --git a/packages/flutter/test/material/text_field_test.dart b/packages/flutter/test/material/text_field_test.dart index b12527a5d..2a324841b 100644 --- a/packages/flutter/test/material/text_field_test.dart +++ b/packages/flutter/test/material/text_field_test.dart @@ -100,7 +100,7 @@ Widget boilerplate({ Widget child }) { ); } -Future skipPastScrollingAnimation(WidgetTester tester) async { +Future skipPastScrollingAnimation(WidgetTester tester) async { await tester.pump(); await tester.pump(const Duration(milliseconds: 200)); } @@ -212,7 +212,7 @@ void main() { final RenderBox inputBox = findTextFieldBox(); final Size emptyInputSize = inputBox.size; - Future checkText(String testValue) async { + Future checkText(String testValue) async { return TestAsyncUtils.guard(() async { await tester.enterText(find.byType(TextField), testValue); // Check that the onChanged event handler fired. @@ -246,7 +246,7 @@ void main() { final EditableTextState editableText = tester.state(find.byType(EditableText)); // Check that the cursor visibility toggles after each blink interval. - Future checkCursorToggle() async { + Future checkCursorToggle() async { final bool initialShowCursor = editableText.cursorCurrentlyVisible; await tester.pump(editableText.cursorBlinkInterval); expect(editableText.cursorCurrentlyVisible, equals(!initialShowCursor)); @@ -840,7 +840,7 @@ void main() { ), ); - Future checkText(String testValue) { + Future checkText(String testValue) { return TestAsyncUtils.guard(() async { await tester.enterText(find.byType(TextField), testValue); @@ -870,7 +870,7 @@ void main() { ), ); - Future checkText(String testValue) async { + Future checkText(String testValue) async { return TestAsyncUtils.guard(() async { await tester.enterText(find.byType(TextField), testValue); diff --git a/packages/flutter/test/material/time_picker_test.dart b/packages/flutter/test/material/time_picker_test.dart index daca36d98..216715994 100644 --- a/packages/flutter/test/material/time_picker_test.dart +++ b/packages/flutter/test/material/time_picker_test.dart @@ -57,7 +57,7 @@ Future startPicker(WidgetTester tester, ValueChanged onChange return tester.getCenter(find.byKey(const ValueKey('time-picker-dial'))); } -Future finishPicker(WidgetTester tester) async { +Future finishPicker(WidgetTester tester) async { final MaterialLocalizations materialLocalizations = MaterialLocalizations.of(tester.element(find.byType(RaisedButton))); await tester.tap(find.text(materialLocalizations.okButtonLabel)); await tester.pumpAndSettle(const Duration(seconds: 1)); @@ -223,7 +223,7 @@ void _tests() { const List labels12To11TwoDigit = ['12', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11']; const List labels00To23 = ['00', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']; - Future mediaQueryBoilerplate(WidgetTester tester, bool alwaysUse24HourFormat, + Future mediaQueryBoilerplate(WidgetTester tester, bool alwaysUse24HourFormat, { TimeOfDay initialTime = const TimeOfDay(hour: 7, minute: 0) }) async { await tester.pumpWidget( Localizations( @@ -397,7 +397,7 @@ void _tests() { testWidgets('can increment and decrement hours', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); - Future actAndExpect({ String initialValue, SemanticsAction action, String finalValue }) async { + Future actAndExpect({ String initialValue, SemanticsAction action, String finalValue }) async { final SemanticsNode elevenHours = semantics.nodesWith( value: initialValue, ancestor: tester.renderObject(_hourControl).debugSemantics, @@ -463,7 +463,7 @@ void _tests() { testWidgets('can increment and decrement minutes', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); - Future actAndExpect({ String initialValue, SemanticsAction action, String finalValue }) async { + Future actAndExpect({ String initialValue, SemanticsAction action, String finalValue }) async { final SemanticsNode elevenHours = semantics.nodesWith( value: initialValue, ancestor: tester.renderObject(_minuteControl).debugSemantics, diff --git a/packages/flutter/test/material/user_accounts_drawer_header_test.dart b/packages/flutter/test/material/user_accounts_drawer_header_test.dart index 31fb51072..fdd454ad4 100644 --- a/packages/flutter/test/material/user_accounts_drawer_header_test.dart +++ b/packages/flutter/test/material/user_accounts_drawer_header_test.dart @@ -12,7 +12,7 @@ const Key avatarA = Key('A'); const Key avatarC = Key('C'); const Key avatarD = Key('D'); -Future pumpTestWidget(WidgetTester tester, { +Future pumpTestWidget(WidgetTester tester, { bool withName = true, bool withEmail = true, bool withOnDetailsPressedHandler = true, diff --git a/packages/flutter/test/material/will_pop_test.dart b/packages/flutter/test/material/will_pop_test.dart index 5a64acf5e..0c643b79f 100644 --- a/packages/flutter/test/material/will_pop_test.dart +++ b/packages/flutter/test/material/will_pop_test.dart @@ -277,7 +277,7 @@ void main() { StateSetter contentsSetState; // call this to rebuild the route's SampleForm contents bool contentsEmpty = false; // when true, don't include the SampleForm in the route - final TestPageRoute route = TestPageRoute( + final TestPageRoute route = TestPageRoute( builder: (BuildContext context) { return StatefulBuilder( builder: (BuildContext context, StateSetter setState) { diff --git a/packages/flutter/test/services/fake_platform_views.dart b/packages/flutter/test/services/fake_platform_views.dart index a53229596..8ade91738 100644 --- a/packages/flutter/test/services/fake_platform_views.dart +++ b/packages/flutter/test/services/fake_platform_views.dart @@ -35,7 +35,7 @@ class FakePlatformViewsController { Future _onMethodCall(MethodCall call) { if (targetPlatform == TargetPlatform.android) return _onMethodCallAndroid(call); - return Future.sync(() => null); + return Future.sync(() => null); } Future _onMethodCallAndroid(MethodCall call) { @@ -51,7 +51,7 @@ class FakePlatformViewsController { case 'setDirection': return _setDirection(call); } - return Future.sync(() => null); + return Future.sync(() => null); } Future _create(MethodCall call) { @@ -90,7 +90,7 @@ class FakePlatformViewsController { ); _views.remove(id); - return Future.sync(() => null); + return Future.sync(() => null); } Future _resize(MethodCall call) async { @@ -110,7 +110,7 @@ class FakePlatformViewsController { } _views[id].size = Size(width, height); - return Future.sync(() => null); + return Future.sync(() => null); } Future _touch(MethodCall call) { @@ -132,7 +132,7 @@ class FakePlatformViewsController { motionEvents[id] = []; motionEvents[id].add(FakeMotionEvent(action, pointerIds, pointerOffsets)); - return Future.sync(() => null); + return Future.sync(() => null); } Future _setDirection(MethodCall call) async { @@ -148,7 +148,7 @@ class FakePlatformViewsController { _views[id].layoutDirection = layoutDirection; - return Future.sync(() => null); + return Future.sync(() => null); } } diff --git a/packages/flutter/test/services/platform_channel_test.dart b/packages/flutter/test/services/platform_channel_test.dart index b7cf0dc56..572454b0d 100644 --- a/packages/flutter/test/services/platform_channel_test.dart +++ b/packages/flutter/test/services/platform_channel_test.dart @@ -190,7 +190,7 @@ void main() { ); final List events = await channel.receiveBroadcastStream('hello').toList(); expect(events, orderedEquals(['hello1', 'hello2'])); - await Future.delayed(Duration.zero); + await Future.delayed(Duration.zero); expect(canceled, isTrue); }); test('can receive error event', () async { @@ -212,7 +212,7 @@ void main() { final List events = []; final List errors = []; channel.receiveBroadcastStream('hello').listen(events.add, onError: errors.add); - await Future.delayed(Duration.zero); + await Future.delayed(Duration.zero); expect(events, isEmpty); expect(errors, hasLength(1)); expect(errors[0], isInstanceOf()); diff --git a/packages/flutter/test/widgets/align_test.dart b/packages/flutter/test/widgets/align_test.dart index 9213e775b..c8054f713 100644 --- a/packages/flutter/test/widgets/align_test.dart +++ b/packages/flutter/test/widgets/align_test.dart @@ -24,20 +24,20 @@ void main() { await tester.pumpWidget( const Align( - key: GlobalObjectKey(null), + key: GlobalObjectKey>(null), alignment: Alignment.topLeft, ), ); await tester.pumpWidget(const Directionality( textDirection: TextDirection.rtl, child: Align( - key: GlobalObjectKey(null), + key: GlobalObjectKey>(null), alignment: AlignmentDirectional.topStart, ), )); await tester.pumpWidget( const Align( - key: GlobalObjectKey(null), + key: GlobalObjectKey>(null), alignment: Alignment.topLeft, ), ); diff --git a/packages/flutter/test/widgets/animated_size_test.dart b/packages/flutter/test/widgets/animated_size_test.dart index 5fbab1591..3185a4acb 100644 --- a/packages/flutter/test/widgets/animated_size_test.dart +++ b/packages/flutter/test/widgets/animated_size_test.dart @@ -138,7 +138,7 @@ void main() { }); testWidgets('tracks unstable child, then resumes animation when child stabilizes', (WidgetTester tester) async { - Future pumpMillis(int millis) async { + Future pumpMillis(int millis) async { await tester.pump(Duration(milliseconds: millis)); } diff --git a/packages/flutter/test/widgets/app_overrides_test.dart b/packages/flutter/test/widgets/app_overrides_test.dart index b6319c8e1..b463b15dd 100644 --- a/packages/flutter/test/widgets/app_overrides_test.dart +++ b/packages/flutter/test/widgets/app_overrides_test.dart @@ -28,12 +28,12 @@ class TestRoute extends PageRoute { } } -Future pumpApp(WidgetTester tester) async { +Future pumpApp(WidgetTester tester) async { await tester.pumpWidget( WidgetsApp( color: const Color(0xFF333333), onGenerateRoute: (RouteSettings settings) { - return TestRoute(settings: settings, child: Container()); + return TestRoute(settings: settings, child: Container()); }, ), ); diff --git a/packages/flutter/test/widgets/app_title_test.dart b/packages/flutter/test/widgets/app_title_test.dart index 18b897250..cfe62560a 100644 --- a/packages/flutter/test/widgets/app_title_test.dart +++ b/packages/flutter/test/widgets/app_title_test.dart @@ -8,7 +8,7 @@ import 'package:flutter/widgets.dart'; const Color kTitleColor = Color(0xFF333333); const String kTitleString = 'Hello World'; -Future pumpApp(WidgetTester tester, { GenerateAppTitle onGenerateTitle }) async { +Future pumpApp(WidgetTester tester, { GenerateAppTitle onGenerateTitle }) async { await tester.pumpWidget( WidgetsApp( supportedLocales: const [ diff --git a/packages/flutter/test/widgets/async_test.dart b/packages/flutter/test/widgets/async_test.dart index 099ca9842..92bc5a8c5 100644 --- a/packages/flutter/test/widgets/async_test.dart +++ b/packages/flutter/test/widgets/async_test.dart @@ -327,7 +327,7 @@ void main() { }); } -Future eventFiring(WidgetTester tester) async { +Future eventFiring(WidgetTester tester) async { await tester.pump(Duration.zero); } diff --git a/packages/flutter/test/widgets/box_decoration_test.dart b/packages/flutter/test/widgets/box_decoration_test.dart index c3d4eafc4..f51195e65 100644 --- a/packages/flutter/test/widgets/box_decoration_test.dart +++ b/packages/flutter/test/widgets/box_decoration_test.dart @@ -18,7 +18,7 @@ import '../rendering/mock_canvas.dart'; class TestImageProvider extends ImageProvider { TestImageProvider(this.future); - final Future future; + final Future future; static ui.Image image; @@ -30,17 +30,17 @@ class TestImageProvider extends ImageProvider { @override ImageStreamCompleter load(TestImageProvider key) { return OneFrameImageStreamCompleter( - future.then((Null value) => ImageInfo(image: image)) + future.then((void value) => ImageInfo(image: image)) ); } } -Future main() async { +Future main() async { TestImageProvider.image = await decodeImageFromList(Uint8List.fromList(kTransparentImage)); testWidgets('DecoratedBox handles loading images', (WidgetTester tester) async { final GlobalKey key = GlobalKey(); - final Completer completer = Completer(); + final Completer completer = Completer(); await tester.pumpWidget( KeyedSubtree( key: key, @@ -62,7 +62,7 @@ Future main() async { }); testWidgets('Moving a DecoratedBox', (WidgetTester tester) async { - final Completer completer = Completer(); + final Completer completer = Completer(); final Widget subtree = KeyedSubtree( key: GlobalKey(), child: RepaintBoundary( diff --git a/packages/flutter/test/widgets/custom_painter_test.dart b/packages/flutter/test/widgets/custom_painter_test.dart index 03455e53d..e0cfeaf1f 100644 --- a/packages/flutter/test/widgets/custom_painter_test.dart +++ b/packages/flutter/test/widgets/custom_painter_test.dart @@ -682,7 +682,7 @@ void _defineTests() { }); } -void testDiff(String description, Future Function(_DiffTester tester) testFunction) { +void testDiff(String description, Future Function(_DiffTester tester) testFunction) { testWidgets(description, (WidgetTester tester) async { await testFunction(_DiffTester(tester)); }); @@ -700,7 +700,7 @@ class _DiffTester { /// /// - checks that initial and final configurations are in the desired states. /// - checks that keyed nodes have stable IDs. - Future diff({List from, List to}) async { + Future diff({List from, List to}) async { final SemanticsTester semanticsTester = SemanticsTester(tester); TestSemantics createExpectations(List labels) { diff --git a/packages/flutter/test/widgets/dismissible_test.dart b/packages/flutter/test/widgets/dismissible_test.dart index 084de05bd..420fdcc0e 100644 --- a/packages/flutter/test/widgets/dismissible_test.dart +++ b/packages/flutter/test/widgets/dismissible_test.dart @@ -61,9 +61,9 @@ Widget buildTest({ double startToEndThreshold, TextDirection textDirection = Tex ); } -typedef DismissMethod = Future Function(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection }); +typedef DismissMethod = Future Function(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection }); -Future dismissElement(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection }) async { +Future dismissElement(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection }) async { Offset downLocation; Offset upLocation; switch (gestureDirection) { @@ -98,7 +98,7 @@ Future dismissElement(WidgetTester tester, Finder finder, { @required Axis await gesture.up(); } -Future flingElement(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection, double initialOffsetFactor = 0.0 }) async { +Future flingElement(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection, double initialOffsetFactor = 0.0 }) async { Offset delta; switch (gestureDirection) { case AxisDirection.left: @@ -119,7 +119,7 @@ Future flingElement(WidgetTester tester, Finder finder, { @required AxisDi await tester.fling(finder, delta, 1000.0, initialOffset: delta * initialOffsetFactor); } -Future flingElementFromZero(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection }) async { +Future flingElementFromZero(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection }) async { // This is a special case where we drag in one direction, then fling back so // that at the point of release, we're at exactly the point at which we // started, but with velocity. This is needed to check a boundary condition @@ -127,7 +127,7 @@ Future flingElementFromZero(WidgetTester tester, Finder finder, { @require await flingElement(tester, finder, gestureDirection: gestureDirection, initialOffsetFactor: -1.0); } -Future dismissItem(WidgetTester tester, int item, { +Future dismissItem(WidgetTester tester, int item, { @required AxisDirection gestureDirection, DismissMethod mechanism = dismissElement, }) async { @@ -144,7 +144,7 @@ Future dismissItem(WidgetTester tester, int item, { await tester.pump(); // rebuild after the callback removes the entry } -Future checkFlingItemBeforeMovementEnd(WidgetTester tester, int item, { +Future checkFlingItemBeforeMovementEnd(WidgetTester tester, int item, { @required AxisDirection gestureDirection, DismissMethod mechanism = rollbackElement }) async { @@ -158,7 +158,7 @@ Future checkFlingItemBeforeMovementEnd(WidgetTester tester, int item, { await tester.pump(const Duration(milliseconds: 100)); } -Future checkFlingItemAfterMovement(WidgetTester tester, int item, { +Future checkFlingItemAfterMovement(WidgetTester tester, int item, { @required AxisDirection gestureDirection, DismissMethod mechanism = rollbackElement }) async { @@ -172,7 +172,7 @@ Future checkFlingItemAfterMovement(WidgetTester tester, int item, { await tester.pump(const Duration(milliseconds: 300)); } -Future rollbackElement(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection, double initialOffsetFactor = 0.0 }) async { +Future rollbackElement(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection, double initialOffsetFactor = 0.0 }) async { Offset delta; switch (gestureDirection) { case AxisDirection.left: diff --git a/packages/flutter/test/widgets/draggable_test.dart b/packages/flutter/test/widgets/draggable_test.dart index 9085deadc..dcec8aece 100644 --- a/packages/flutter/test/widgets/draggable_test.dart +++ b/packages/flutter/test/widgets/draggable_test.dart @@ -1803,7 +1803,7 @@ void main() { } -Future _testLongPressDraggableHapticFeedback({WidgetTester tester, bool hapticFeedbackOnStart, int expectedHapticFeedbackCount}) async { +Future _testLongPressDraggableHapticFeedback({WidgetTester tester, bool hapticFeedbackOnStart, int expectedHapticFeedbackCount}) async { bool onDragStartedCalled = false; int hapticFeedbackCalls = 0; @@ -1845,7 +1845,7 @@ Future _testLongPressDraggableHapticFeedback({WidgetTester tester, bool ha expect(hapticFeedbackCalls, expectedHapticFeedbackCount); } -Future _testChildAnchorFeedbackPosition({WidgetTester tester, double top = 0.0, double left = 0.0}) async { +Future _testChildAnchorFeedbackPosition({WidgetTester tester, double top = 0.0, double left = 0.0}) async { final List accepted = []; int dragStartedCount = 0; diff --git a/packages/flutter/test/widgets/editable_text_test.dart b/packages/flutter/test/widgets/editable_text_test.dart index 31f7d7d0a..8b502d893 100644 --- a/packages/flutter/test/widgets/editable_text_test.dart +++ b/packages/flutter/test/widgets/editable_text_test.dart @@ -30,7 +30,7 @@ void main() { // More technically, when an EditableText is given a particular [action], Flutter // requests [serializedActionName] when attaching to the platform's input // system. - Future _desiredKeyboardActionIsRequested({ + Future _desiredKeyboardActionIsRequested({ WidgetTester tester, TextInputAction action, String serializedActionName, diff --git a/packages/flutter/test/widgets/ensure_visible_test.dart b/packages/flutter/test/widgets/ensure_visible_test.dart index 5da809057..6c654990a 100644 --- a/packages/flutter/test/widgets/ensure_visible_test.dart +++ b/packages/flutter/test/widgets/ensure_visible_test.dart @@ -227,7 +227,7 @@ void main() { group('ListView', () { testWidgets('ListView ensureVisible Axis.vertical', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -263,7 +263,7 @@ void main() { testWidgets('ListView ensureVisible Axis.horizontal', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -299,7 +299,7 @@ void main() { testWidgets('ListView ensureVisible Axis.vertical reverse', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -335,7 +335,7 @@ void main() { testWidgets('ListView ensureVisible Axis.horizontal reverse', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -372,7 +372,7 @@ void main() { // TODO(abarth): Unskip this test. See https://github.com/flutter/flutter/issues/7919 testWidgets('ListView ensureVisible negative child', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -430,7 +430,7 @@ void main() { testWidgets('ListView ensureVisible rotated child', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -483,7 +483,7 @@ void main() { group('ListView shrinkWrap', () { testWidgets('ListView ensureVisible Axis.vertical', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -519,7 +519,7 @@ void main() { testWidgets('ListView ensureVisible Axis.horizontal', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -555,7 +555,7 @@ void main() { testWidgets('ListView ensureVisible Axis.vertical reverse', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -591,7 +591,7 @@ void main() { testWidgets('ListView ensureVisible Axis.horizontal reverse', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } @@ -629,7 +629,7 @@ void main() { group('Scrollable with center', () { testWidgets('ensureVisible', (WidgetTester tester) async { BuildContext findContext(int i) => tester.element(findKey(i)); - Future prepare(double offset) async { + Future prepare(double offset) async { tester.state(find.byType(Scrollable)).position.jumpTo(offset); await tester.pump(); } diff --git a/packages/flutter/test/widgets/fade_in_image_test.dart b/packages/flutter/test/widgets/fade_in_image_test.dart index 1c7401047..55673bc83 100644 --- a/packages/flutter/test/widgets/fade_in_image_test.dart +++ b/packages/flutter/test/widgets/fade_in_image_test.dart @@ -9,7 +9,7 @@ import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; import '../painting/image_test_utils.dart'; -Future main() async { +Future main() async { // These must run outside test zone to complete final ui.Image targetImage = await createTestImage(); final ui.Image placeholderImage = await createTestImage(); diff --git a/packages/flutter/test/widgets/form_test.dart b/packages/flutter/test/widgets/form_test.dart index fae19d9de..02b5cbe29 100644 --- a/packages/flutter/test/widgets/form_test.dart +++ b/packages/flutter/test/widgets/form_test.dart @@ -30,7 +30,7 @@ void main() { expect(fieldValue, isNull); - Future checkText(String testValue) async { + Future checkText(String testValue) async { await tester.enterText(find.byType(TextFormField), testValue); formKey.currentState.save(); // pump'ing is unnecessary because callback happens regardless of frames @@ -63,7 +63,7 @@ void main() { expect(fieldValue, isNull); - Future checkText(String testValue) async { + Future checkText(String testValue) async { await tester.enterText(find.byType(TextField), testValue); // pump'ing is unnecessary because callback happens regardless of frames expect(fieldValue, equals(testValue)); @@ -97,7 +97,7 @@ void main() { // Start off not autovalidating. await tester.pumpWidget(builder(false)); - Future checkErrorText(String testValue) async { + Future checkErrorText(String testValue) async { formKey.currentState.reset(); await tester.pumpWidget(builder(false)); await tester.enterText(find.byType(TextFormField), testValue); @@ -154,13 +154,13 @@ void main() { await tester.pumpWidget(builder()); - Future checkErrorText(String testValue) async { + Future checkErrorText(String testValue) async { await tester.enterText(find.byType(TextFormField).first, testValue); await tester.pump(); // Check for a new Text widget with our error text. expect(find.text(testValue + '/error'), findsOneWidget); - return null; + return; } await checkErrorText('Test'); diff --git a/packages/flutter/test/widgets/gesture_detector_test.dart b/packages/flutter/test/widgets/gesture_detector_test.dart index ac2800f28..36fe286f3 100644 --- a/packages/flutter/test/widgets/gesture_detector_test.dart +++ b/packages/flutter/test/widgets/gesture_detector_test.dart @@ -286,7 +286,7 @@ void main() { // Pointer is dragged from the center of the 800x100 gesture detector // to a point (400,300) below it. This always causes onTapCancel to be // called; onTap should never be called. - Future dragOut(Duration timeout) async { + Future dragOut(Duration timeout) async { final TestGesture gesture = await tester.startGesture(const Offset(400.0, 50.0)); // If the timeout is less than kPressTimeout the recognizer will just trigger // the onTapCancel callback. If the timeout is greater than kLongPressTimeout diff --git a/packages/flutter/test/widgets/image_test.dart b/packages/flutter/test/widgets/image_test.dart index 04fd69e0b..7c17a95e1 100644 --- a/packages/flutter/test/widgets/image_test.dart +++ b/packages/flutter/test/widgets/image_test.dart @@ -601,7 +601,7 @@ void main() { testWidgets('Precache', (WidgetTester tester) async { final TestImageProvider provider = TestImageProvider(); - Future precache; + Future precache; await tester.pumpWidget( Builder( builder: (BuildContext context) { @@ -632,7 +632,7 @@ void main() { final Exception testException = Exception('cannot resolve host'); final StackTrace testStack = StackTrace.current; final TestImageProvider imageProvider = TestImageProvider(); - Future precache; + Future precache; await tester.pumpWidget( Builder( builder: (BuildContext context) { diff --git a/packages/flutter/test/widgets/list_view_test.dart b/packages/flutter/test/widgets/list_view_test.dart index 8bca4d0da..89e497891 100644 --- a/packages/flutter/test/widgets/list_view_test.dart +++ b/packages/flutter/test/widgets/list_view_test.dart @@ -176,7 +176,7 @@ void main() { }); testWidgets('ListView large scroll jump and keepAlive first child not keepAlive', (WidgetTester tester) async { - Future checkAndScroll([String zero = '0:false']) async { + Future checkAndScroll([String zero = '0:false']) async { expect(find.text(zero), findsOneWidget); expect(find.text('1:false'), findsOneWidget); expect(find.text('2:false'), findsOneWidget); diff --git a/packages/flutter/test/widgets/obscured_animated_image_test.dart b/packages/flutter/test/widgets/obscured_animated_image_test.dart index fac8fdcff..1af690a00 100644 --- a/packages/flutter/test/widgets/obscured_animated_image_test.dart +++ b/packages/flutter/test/widgets/obscured_animated_image_test.dart @@ -13,7 +13,7 @@ import '../painting/fake_codec.dart'; import '../painting/fake_image_provider.dart'; import '../painting/image_data.dart'; -Future main() async { +Future main() async { final FakeCodec fakeCodec = await FakeCodec.fromData(Uint8List.fromList(kAnimatedGif)); final FakeImageProvider fakeImageProvider = FakeImageProvider(fakeCodec); diff --git a/packages/flutter/test/widgets/overscroll_indicator_test.dart b/packages/flutter/test/widgets/overscroll_indicator_test.dart index ba60a9c26..0857b6e7e 100644 --- a/packages/flutter/test/widgets/overscroll_indicator_test.dart +++ b/packages/flutter/test/widgets/overscroll_indicator_test.dart @@ -12,7 +12,7 @@ import '../rendering/mock_canvas.dart'; final Matcher doesNotOverscroll = isNot(paints..circle()); -Future slowDrag(WidgetTester tester, Offset start, Offset offset) async { +Future slowDrag(WidgetTester tester, Offset start, Offset offset) async { final TestGesture gesture = await tester.startGesture(start); for (int index = 0; index < 10; index += 1) { await gesture.moveBy(offset); diff --git a/packages/flutter/test/widgets/page_forward_transitions_test.dart b/packages/flutter/test/widgets/page_forward_transitions_test.dart index 89a8590c9..91d0d0125 100644 --- a/packages/flutter/test/widgets/page_forward_transitions_test.dart +++ b/packages/flutter/test/widgets/page_forward_transitions_test.dart @@ -81,7 +81,7 @@ void main() { onGenerateRoute: (RouteSettings settings) { switch (settings.name) { case '/': - return TestRoute( + return TestRoute( settings: settings, child: Builder( key: insideKey, @@ -104,9 +104,9 @@ void main() { } ) ); - case '/2': return TestRoute(settings: settings, child: const Text('E')); - case '/3': return TestRoute(settings: settings, child: const Text('F')); - case '/4': return TestRoute(settings: settings, child: const Text('G')); + case '/2': return TestRoute(settings: settings, child: const Text('E')); + case '/3': return TestRoute(settings: settings, child: const Text('F')); + case '/4': return TestRoute(settings: settings, child: const Text('G')); } return null; } @@ -190,8 +190,8 @@ void main() { MaterialApp( onGenerateRoute: (RouteSettings settings) { switch (settings.name) { - case '/': return TestRoute(settings: settings, child: const Text('A')); - case '/1': return TestRoute(settings: settings, barrierColor: const Color(0xFFFFFF00), child: const Text('B')); + case '/': return TestRoute(settings: settings, child: const Text('A')); + case '/1': return TestRoute(settings: settings, barrierColor: const Color(0xFFFFFF00), child: const Text('B')); } return null; } diff --git a/packages/flutter/test/widgets/page_transitions_test.dart b/packages/flutter/test/widgets/page_transitions_test.dart index 23abe7649..a910bd90c 100644 --- a/packages/flutter/test/widgets/page_transitions_test.dart +++ b/packages/flutter/test/widgets/page_transitions_test.dart @@ -27,7 +27,7 @@ class PersistentBottomSheetTestState extends State { bool setStateCalled = false; void showBottomSheet() { - _scaffoldKey.currentState.showBottomSheet((BuildContext context) { + _scaffoldKey.currentState.showBottomSheet((BuildContext context) { return const Text('bottomSheet'); }) .closed.whenComplete(() { diff --git a/packages/flutter/test/widgets/pageable_list_test.dart b/packages/flutter/test/widgets/pageable_list_test.dart index 79f2dda8a..c966b5b47 100644 --- a/packages/flutter/test/widgets/pageable_list_test.dart +++ b/packages/flutter/test/widgets/pageable_list_test.dart @@ -45,7 +45,7 @@ Widget buildFrame({ ); } -Future page(WidgetTester tester, Offset offset) { +Future page(WidgetTester tester, Offset offset) { return TestAsyncUtils.guard(() async { final String itemText = currentPage != null ? currentPage.toString() : '0'; await tester.drag(find.text(itemText), offset); @@ -53,11 +53,11 @@ Future page(WidgetTester tester, Offset offset) { }); } -Future pageLeft(WidgetTester tester) { +Future pageLeft(WidgetTester tester) { return page(tester, Offset(-pageSize.width, 0.0)); } -Future pageRight(WidgetTester tester) { +Future pageRight(WidgetTester tester) { return page(tester, Offset(pageSize.width, 0.0)); } diff --git a/packages/flutter/test/widgets/positioned_test.dart b/packages/flutter/test/widgets/positioned_test.dart index a73dfa9bb..371a828b4 100644 --- a/packages/flutter/test/widgets/positioned_test.dart +++ b/packages/flutter/test/widgets/positioned_test.dart @@ -104,7 +104,7 @@ void main() { ), ); // t=0 recordMetrics(); - final Completer completer = Completer(); + final Completer completer = Completer(); controller.forward().whenComplete(completer.complete); expect(completer.isCompleted, isFalse); await tester.pump(); // t=0 again diff --git a/packages/flutter/test/widgets/remember_scroll_position_test.dart b/packages/flutter/test/widgets/remember_scroll_position_test.dart index 8796a1d08..36c0aaffb 100644 --- a/packages/flutter/test/widgets/remember_scroll_position_test.dart +++ b/packages/flutter/test/widgets/remember_scroll_position_test.dart @@ -28,7 +28,7 @@ class ThePositiveNumbers extends StatelessWidget { } } -Future performTest(WidgetTester tester, bool maintainState) async { +Future performTest(WidgetTester tester, bool maintainState) async { final GlobalKey navigatorKey = GlobalKey(); await tester.pumpWidget( Directionality( diff --git a/packages/flutter/test/widgets/routes_test.dart b/packages/flutter/test/widgets/routes_test.dart index c28c10d7a..14d3e11ee 100644 --- a/packages/flutter/test/widgets/routes_test.dart +++ b/packages/flutter/test/widgets/routes_test.dart @@ -89,7 +89,7 @@ class TestRoute extends LocalHistoryRoute { } -Future runNavigatorTest( +Future runNavigatorTest( WidgetTester tester, NavigatorState host, VoidCallback test, diff --git a/packages/flutter/test/widgets/rtl_test.dart b/packages/flutter/test/widgets/rtl_test.dart index b96776143..6cdcb5c71 100644 --- a/packages/flutter/test/widgets/rtl_test.dart +++ b/packages/flutter/test/widgets/rtl_test.dart @@ -24,20 +24,20 @@ void main() { await tester.pumpWidget( const Padding( - key: GlobalObjectKey(null), + key: GlobalObjectKey>(null), padding: EdgeInsets.only(left: 1.0), ), ); await tester.pumpWidget(const Directionality( textDirection: TextDirection.rtl, child: Padding( - key: GlobalObjectKey(null), + key: GlobalObjectKey>(null), padding: EdgeInsetsDirectional.only(start: 1.0), ), )); await tester.pumpWidget( const Padding( - key: GlobalObjectKey(null), + key: GlobalObjectKey>(null), padding: EdgeInsets.only(left: 1.0), ), ); diff --git a/packages/flutter/test/widgets/scroll_events_test.dart b/packages/flutter/test/widgets/scroll_events_test.dart index 83ba68082..5f5bf67e4 100644 --- a/packages/flutter/test/widgets/scroll_events_test.dart +++ b/packages/flutter/test/widgets/scroll_events_test.dart @@ -27,8 +27,8 @@ Widget _buildScroller({ List log }) { } void main() { - Completer animateTo(WidgetTester tester, double newScrollOffset, { @required Duration duration }) { - final Completer completer = Completer(); + Completer animateTo(WidgetTester tester, double newScrollOffset, { @required Duration duration }) { + final Completer completer = Completer(); final ScrollableState scrollable = tester.state(find.byType(Scrollable)); scrollable.position.animateTo(newScrollOffset, duration: duration, curve: Curves.linear).whenComplete(completer.complete); return completer; @@ -63,7 +63,7 @@ void main() { await tester.pumpWidget(_buildScroller(log: log)); expect(log, equals([])); - final Completer completer = animateTo(tester, 100.0, duration: const Duration(seconds: 1)); + final Completer completer = animateTo(tester, 100.0, duration: const Duration(seconds: 1)); expect(completer.isCompleted, isFalse); expect(log, equals(['scroll-start'])); await tester.pump(const Duration(milliseconds: 100)); @@ -91,7 +91,7 @@ void main() { await tester.pumpWidget(_buildScroller(log: log)); expect(log, equals([])); - final Completer completer = animateTo(tester, 100.0, duration: const Duration(seconds: 1)); + final Completer completer = animateTo(tester, 100.0, duration: const Duration(seconds: 1)); expect(completer.isCompleted, isFalse); expect(log, equals(['scroll-start'])); await tester.pump(const Duration(milliseconds: 100)); @@ -116,7 +116,7 @@ void main() { await tester.pumpWidget(_buildScroller(log: log)); expect(log, equals([])); - Completer completer = animateTo(tester, 100.0, duration: const Duration(seconds: 1)); + Completer completer = animateTo(tester, 100.0, duration: const Duration(seconds: 1)); expect(completer.isCompleted, isFalse); expect(log, equals(['scroll-start'])); await tester.pump(const Duration(milliseconds: 100)); diff --git a/packages/flutter/test/widgets/scrollable_fling_test.dart b/packages/flutter/test/widgets/scrollable_fling_test.dart index e35bab894..2dd30a041 100644 --- a/packages/flutter/test/widgets/scrollable_fling_test.dart +++ b/packages/flutter/test/widgets/scrollable_fling_test.dart @@ -10,7 +10,7 @@ const TextStyle testFont = TextStyle( fontFamily: 'Ahem', ); -Future pumpTest(WidgetTester tester, TargetPlatform platform) async { +Future pumpTest(WidgetTester tester, TargetPlatform platform) async { await tester.pumpWidget(Container()); await tester.pumpWidget(MaterialApp( theme: ThemeData( @@ -25,7 +25,6 @@ Future pumpTest(WidgetTester tester, TargetPlatform platform) async { ), ), )); - return null; } const double dragOffset = 213.82; diff --git a/packages/flutter/test/widgets/scrollable_semantics_test.dart b/packages/flutter/test/widgets/scrollable_semantics_test.dart index b1892b608..2dcf7e6c2 100644 --- a/packages/flutter/test/widgets/scrollable_semantics_test.dart +++ b/packages/flutter/test/widgets/scrollable_semantics_test.dart @@ -600,15 +600,15 @@ void main() { } -Future flingUp(WidgetTester tester, { int repetitions = 1 }) => fling(tester, const Offset(0.0, -200.0), repetitions); +Future flingUp(WidgetTester tester, { int repetitions = 1 }) => fling(tester, const Offset(0.0, -200.0), repetitions); -Future flingDown(WidgetTester tester, { int repetitions = 1 }) => fling(tester, const Offset(0.0, 200.0), repetitions); +Future flingDown(WidgetTester tester, { int repetitions = 1 }) => fling(tester, const Offset(0.0, 200.0), repetitions); -Future flingRight(WidgetTester tester, { int repetitions = 1 }) => fling(tester, const Offset(200.0, 0.0), repetitions); +Future flingRight(WidgetTester tester, { int repetitions = 1 }) => fling(tester, const Offset(200.0, 0.0), repetitions); -Future flingLeft(WidgetTester tester, { int repetitions = 1 }) => fling(tester, const Offset(-200.0, 0.0), repetitions); +Future flingLeft(WidgetTester tester, { int repetitions = 1 }) => fling(tester, const Offset(-200.0, 0.0), repetitions); -Future fling(WidgetTester tester, Offset offset, int repetitions) async { +Future fling(WidgetTester tester, Offset offset, int repetitions) async { while (repetitions-- > 0) { await tester.fling(find.byType(ListView), offset, 1000.0); await tester.pump(); diff --git a/packages/flutter/test/widgets/scrollable_test.dart b/packages/flutter/test/widgets/scrollable_test.dart index 7370a2910..36fce7ce6 100644 --- a/packages/flutter/test/widgets/scrollable_test.dart +++ b/packages/flutter/test/widgets/scrollable_test.dart @@ -6,7 +6,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; -Future pumpTest(WidgetTester tester, TargetPlatform platform) async { +Future pumpTest(WidgetTester tester, TargetPlatform platform) async { await tester.pumpWidget(MaterialApp( theme: ThemeData( platform: platform, @@ -18,7 +18,6 @@ Future pumpTest(WidgetTester tester, TargetPlatform platform) async { ), )); await tester.pump(const Duration(seconds: 5)); // to let the theme animate - return null; } const double dragOffset = 200.0; diff --git a/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart b/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart index 730d8307a..16202740c 100644 --- a/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart +++ b/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart @@ -22,7 +22,7 @@ void _tests() { debugResetSemanticsIdCounter(); }); - Future pumpTestWidget(WidgetTester tester) async { + Future pumpTestWidget(WidgetTester tester) async { await tester.pumpWidget(MaterialApp( home: ListView( children: [ diff --git a/packages/flutter/test/widgets/semantics_traversal_test.dart b/packages/flutter/test/widgets/semantics_traversal_test.dart index 5a6801c86..0c198499a 100644 --- a/packages/flutter/test/widgets/semantics_traversal_test.dart +++ b/packages/flutter/test/widgets/semantics_traversal_test.dart @@ -14,7 +14,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'semantics_tester.dart'; -typedef TraversalTestFunction = Future Function(TraversalTester tester); +typedef TraversalTestFunction = Future Function(TraversalTester tester); const Size tenByTen = Size(10.0, 10.0); void main() { @@ -287,7 +287,7 @@ class TraversalTester { final WidgetTester tester; final SemanticsTester semantics; - Future test({ + Future test({ TextDirection textDirection, Map children, String expectedTraversal, diff --git a/packages/flutter/test/widgets/shape_decoration_test.dart b/packages/flutter/test/widgets/shape_decoration_test.dart index 08dc3a1a8..1e34c967f 100644 --- a/packages/flutter/test/widgets/shape_decoration_test.dart +++ b/packages/flutter/test/widgets/shape_decoration_test.dart @@ -12,7 +12,7 @@ import '../painting/image_data.dart'; import '../painting/mocks_for_image_cache.dart'; import '../rendering/mock_canvas.dart'; -Future main() async { +Future main() async { final ui.Image rawImage = await decodeImageFromList(Uint8List.fromList(kTransparentImage)); final ImageProvider image = TestImageProvider(0, 0, image: rawImage); testWidgets('ShapeDecoration.image', (WidgetTester tester) async { diff --git a/packages/flutter/test/widgets/table_test.dart b/packages/flutter/test/widgets/table_test.dart index 3a5554152..62d3fb7b1 100644 --- a/packages/flutter/test/widgets/table_test.dart +++ b/packages/flutter/test/widgets/table_test.dart @@ -28,7 +28,7 @@ void main() { ); }); testWidgets('Table widget - control test', (WidgetTester tester) async { - Future run(TextDirection textDirection) async { + Future run(TextDirection textDirection) async { await tester.pumpWidget( Directionality( textDirection: textDirection, @@ -208,7 +208,7 @@ void main() { }); testWidgets('Table border - smoke test', (WidgetTester tester) async { - Future run(TextDirection textDirection) async { + Future run(TextDirection textDirection) async { await tester.pumpWidget( Directionality( textDirection: textDirection, diff --git a/packages/flutter/test/widgets/widget_inspector_test.dart b/packages/flutter/test/widgets/widget_inspector_test.dart index e695a1675..1f4853814 100644 --- a/packages/flutter/test/widgets/widget_inspector_test.dart +++ b/packages/flutter/test/widgets/widget_inspector_test.dart @@ -121,9 +121,8 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService { int rebuildCount = 0; @override - Future forceRebuild() async { + Future forceRebuild() async { rebuildCount++; - return null; } diff --git a/packages/flutter_driver/lib/src/common/fuchsia_compat.dart b/packages/flutter_driver/lib/src/common/fuchsia_compat.dart index 37a3b1b15..f84cb5a73 100644 --- a/packages/flutter_driver/lib/src/common/fuchsia_compat.dart +++ b/packages/flutter_driver/lib/src/common/fuchsia_compat.dart @@ -29,7 +29,7 @@ class _DummyPortForwarder implements PortForwarder { int get remotePort => _remotePort; @override - Future stop() async {} + Future stop() async {} } class _DummySshCommandRunner implements SshCommandRunner { diff --git a/packages/flutter_driver/lib/src/driver/driver.dart b/packages/flutter_driver/lib/src/driver/driver.dart index 75b3fc1d9..4037a1a6d 100644 --- a/packages/flutter_driver/lib/src/driver/driver.dart +++ b/packages/flutter_driver/lib/src/driver/driver.dart @@ -242,7 +242,7 @@ class FlutterDriver { isolate.pauseEvent is! VMPauseExceptionEvent && isolate.pauseEvent is! VMPauseInterruptedEvent && isolate.pauseEvent is! VMResumeEvent) { - await Future.delayed(_kShortTimeout ~/ 10); + await Future.delayed(_kShortTimeout ~/ 10); isolate = await isolateRef.loadRunnable(); } @@ -288,7 +288,7 @@ class FlutterDriver { /// results in lost events. /// /// Details: https://github.com/dart-lang/vm_service_client/issues/17 - Future enableIsolateStreams() async { + Future enableIsolateStreams() async { await connection.peer.sendRequest('streamListen', { 'streamId': 'Isolate', }); @@ -427,30 +427,26 @@ class FlutterDriver { } /// Taps at the center of the widget located by [finder]. - Future tap(SerializableFinder finder, {Duration timeout}) async { + Future tap(SerializableFinder finder, {Duration timeout}) async { await _sendCommand(Tap(finder, timeout: timeout)); - return null; } /// Waits until [finder] locates the target. - Future waitFor(SerializableFinder finder, {Duration timeout}) async { + Future waitFor(SerializableFinder finder, {Duration timeout}) async { await _sendCommand(WaitFor(finder, timeout: timeout)); - return null; } /// Waits until [finder] can no longer locate the target. - Future waitForAbsent(SerializableFinder finder, {Duration timeout}) async { + Future waitForAbsent(SerializableFinder finder, {Duration timeout}) async { await _sendCommand(WaitForAbsent(finder, timeout: timeout)); - return null; } /// Waits until there are no more transient callbacks in the queue. /// /// Use this method when you need to wait for the moment when the application /// becomes "stable", for example, prior to taking a [screenshot]. - Future waitUntilNoTransientCallbacks({Duration timeout}) async { + Future waitUntilNoTransientCallbacks({Duration timeout}) async { await _sendCommand(WaitUntilNoTransientCallbacks(timeout: timeout)); - return null; } /// Tell the driver to perform a scrolling action. @@ -466,8 +462,8 @@ class FlutterDriver { /// /// The move events are generated at a given [frequency] in Hz (or events per /// second). It defaults to 60Hz. - Future scroll(SerializableFinder finder, double dx, double dy, Duration duration, { int frequency = 60, Duration timeout }) async { - return await _sendCommand(Scroll(finder, dx, dy, duration, frequency, timeout: timeout)).then((Map _) => null); + Future scroll(SerializableFinder finder, double dx, double dy, Duration duration, { int frequency = 60, Duration timeout }) async { + await _sendCommand(Scroll(finder, dx, dy, duration, frequency, timeout: timeout)); } /// Scrolls the Scrollable ancestor of the widget located by [finder] @@ -477,8 +473,8 @@ class FlutterDriver { /// that lazily creates its children, like [ListView] or [CustomScrollView], /// then this method may fail because [finder] doesn't actually exist. /// The [scrollUntilVisible] method can be used in this case. - Future scrollIntoView(SerializableFinder finder, { double alignment = 0.0, Duration timeout }) async { - return await _sendCommand(ScrollIntoView(finder, alignment: alignment, timeout: timeout)).then((Map _) => null); + Future scrollIntoView(SerializableFinder finder, { double alignment = 0.0, Duration timeout }) async { + await _sendCommand(ScrollIntoView(finder, alignment: alignment, timeout: timeout)); } /// Repeatedly [scroll] the widget located by [scrollable] by [dxScroll] and @@ -503,7 +499,7 @@ class FlutterDriver { /// /// The [timeout] value should be long enough to accommodate as many scrolls /// as needed to bring an item into view. The default is 10 seconds. - Future scrollUntilVisible(SerializableFinder scrollable, SerializableFinder item, { + Future scrollUntilVisible(SerializableFinder scrollable, SerializableFinder item, { double alignment = 0.0, double dxScroll = 0.0, double dyScroll = 0.0, @@ -522,11 +518,11 @@ class FlutterDriver { // the chance to complete if the item is already onscreen; if not, scroll // repeatedly until we either find the item or time out. bool isVisible = false; - waitFor(item, timeout: timeout).then((Null value) { isVisible = true; }); - await Future.delayed(const Duration(milliseconds: 500)); + waitFor(item, timeout: timeout).then((_) { isVisible = true; }); + await Future.delayed(const Duration(milliseconds: 500)); while (!isVisible) { await scroll(scrollable, dxScroll, dyScroll, const Duration(milliseconds: 100)); - await Future.delayed(const Duration(milliseconds: 500)); + await Future.delayed(const Duration(milliseconds: 500)); } return scrollIntoView(item, alignment: alignment); @@ -569,7 +565,7 @@ class FlutterDriver { /// await driver.waitFor(find.text('World!')); // verify new text appears /// }); /// ``` - Future enterText(String text, { Duration timeout }) async { + Future enterText(String text, { Duration timeout }) async { await _sendCommand(EnterText(text, timeout: timeout)); } @@ -586,7 +582,7 @@ class FlutterDriver { /// When enabled, the operating system's configured keyboard will not be /// invoked when the widget is focused, as the [SystemChannels.textInput] /// channel will be mocked out. - Future setTextEntryEmulation({ @required bool enabled, Duration timeout }) async { + Future setTextEntryEmulation({ @required bool enabled, Duration timeout }) async { assert(enabled != null); await _sendCommand(SetTextEntryEmulation(enabled, timeout: timeout)); } @@ -661,7 +657,7 @@ class FlutterDriver { // The two-second gap should be long enough for the GPU thread to // finish rasterizing the frame, but not longer than necessary to keep // driver tests as fast a possible. - await Future.delayed(const Duration(seconds: 2)); + await Future.delayed(const Duration(seconds: 2)); final Map result = await _peer.sendRequest('_flutter.screenshot').timeout(timeout); return base64.decode(result['screenshot']); @@ -692,7 +688,7 @@ class FlutterDriver { } /// Starts recording performance traces. - Future startTracing({ + Future startTracing({ List streams = _defaultStreams, Duration timeout = _kShortTimeout, }) async { @@ -701,7 +697,6 @@ class FlutterDriver { await _peer.sendRequest(_setVMTimelineFlagsMethodName, { 'recordedStreams': _timelineStreamsToString(streams) }).timeout(timeout); - return null; } catch (error, stackTrace) { throw DriverError( 'Failed to start tracing due to remote error', @@ -755,7 +750,7 @@ class FlutterDriver { } /// Clears all timeline events recorded up until now. - Future clearTimeline({ Duration timeout = _kShortTimeout }) async { + Future clearTimeline({ Duration timeout = _kShortTimeout }) async { try { await _peer .sendRequest(_clearVMTimelineMethodName, {}) @@ -799,7 +794,7 @@ class FlutterDriver { /// Closes the underlying connection to the VM service. /// /// Returns a [Future] that fires once the connection has been closed. - Future close() async { + Future close() async { // Don't leak vm_service_client-specific objects, if any await _serviceClient.close(); await _peer.close(); @@ -863,7 +858,7 @@ Future _waitAndConnect(String url) async { if (timer.elapsed < _kLongTimeout * 2) { _log.info('Waiting for application to start'); - await Future.delayed(_kPauseBetweenReconnectAttempts); + await Future.delayed(_kPauseBetweenReconnectAttempts); return attemptConnection(); } else { _log.critical( diff --git a/packages/flutter_driver/lib/src/driver/timeline_summary.dart b/packages/flutter_driver/lib/src/driver/timeline_summary.dart index 85322c2fd..5a4bd8d36 100644 --- a/packages/flutter_driver/lib/src/driver/timeline_summary.dart +++ b/packages/flutter_driver/lib/src/driver/timeline_summary.dart @@ -107,7 +107,7 @@ class TimelineSummary { } /// Writes all of the recorded timeline data to a file. - Future writeTimelineToFile( + Future writeTimelineToFile( String traceName, { String destinationDirectory, bool pretty = false, @@ -119,7 +119,7 @@ class TimelineSummary { } /// Writes [summaryJson] to a file. - Future writeSummaryToFile( + Future writeSummaryToFile( String traceName, { String destinationDirectory, bool pretty = false, diff --git a/packages/flutter_driver/lib/src/extension/extension.dart b/packages/flutter_driver/lib/src/extension/extension.dart index cc3f0a869..98afd4ede 100644 --- a/packages/flutter_driver/lib/src/extension/extension.dart +++ b/packages/flutter_driver/lib/src/extension/extension.dart @@ -205,8 +205,8 @@ class FlutterDriverExtension { } // Waits until at the end of a frame the provided [condition] is [true]. - Future _waitUntilFrame(bool condition(), [Completer completer]) { - completer ??= Completer(); + Future _waitUntilFrame(bool condition(), [Completer completer]) { + completer ??= Completer(); if (!condition()) { SchedulerBinding.instance.addPostFrameCallback((Duration timestamp) { _waitUntilFrame(condition, completer); @@ -317,9 +317,10 @@ class FlutterDriverExtension { return WaitForAbsentResult(); } - Future _waitUntilNoTransientCallbacks(Command command) async { + Future _waitUntilNoTransientCallbacks(Command command) async { if (SchedulerBinding.instance.transientCallbackCount != 0) await _waitUntilFrame(() => SchedulerBinding.instance.transientCallbackCount == 0); + return null; } Future _getSemanticsId(Command command) async { @@ -350,11 +351,11 @@ class FlutterDriverExtension { _prober.binding.hitTest(hitTest, startLocation); _prober.binding.dispatchEvent(pointer.down(startLocation), hitTest); - await Future.value(); // so that down and move don't happen in the same microtask + await Future.value(); // so that down and move don't happen in the same microtask for (int moves = 0; moves < totalMoves; moves += 1) { currentLocation = currentLocation + delta; _prober.binding.dispatchEvent(pointer.move(currentLocation), hitTest); - await Future.delayed(pause); + await Future.delayed(pause); } _prober.binding.dispatchEvent(pointer.up(), hitTest); @@ -417,7 +418,7 @@ class FlutterDriverExtension { _semantics = RendererBinding.instance.pipelineOwner.ensureSemantics(); if (!semanticsWasEnabled) { // wait for the first frame where semantics is enabled. - final Completer completer = Completer(); + final Completer completer = Completer(); SchedulerBinding.instance.addPostFrameCallback((Duration d) { completer.complete(); }); diff --git a/packages/flutter_driver/test/flutter_driver_test.dart b/packages/flutter_driver/test/flutter_driver_test.dart index eed263a2a..fb0318aec 100644 --- a/packages/flutter_driver/test/flutter_driver_test.dart +++ b/packages/flutter_driver/test/flutter_driver_test.dart @@ -64,7 +64,7 @@ void main() { when(mockIsolate.pauseEvent).thenReturn(MockVMPauseStartEvent()); when(mockIsolate.resume()).thenAnswer((Invocation invocation) { connectionLog.add('resume'); - return Future.value(); + return Future.value(null); }); when(mockIsolate.onExtensionAdded).thenAnswer((Invocation invocation) { connectionLog.add('onExtensionAdded'); @@ -79,7 +79,7 @@ void main() { test('connects to isolate paused mid-flight', () async { when(mockIsolate.pauseEvent).thenReturn(MockVMPauseBreakpointEvent()); - when(mockIsolate.resume()).thenAnswer((Invocation invocation) => Future.value()); + when(mockIsolate.resume()).thenAnswer((Invocation invocation) => Future.value(null)); final FlutterDriver driver = await FlutterDriver.connect(dartVmServiceUrl: ''); expect(driver, isNotNull); @@ -95,7 +95,7 @@ void main() { when(mockIsolate.resume()).thenAnswer((Invocation invocation) { // This needs to be wrapped in a closure to not be considered uncaught // by package:test - return Future.error(rpc.RpcException(101, '')); + return Future.error(rpc.RpcException(101, '')); }); final FlutterDriver driver = await FlutterDriver.connect(dartVmServiceUrl: ''); @@ -132,7 +132,7 @@ void main() { }); test('closes connection', () async { - when(mockClient.close()).thenAnswer((Invocation invocation) => Future.value()); + when(mockClient.close()).thenAnswer((Invocation invocation) => Future.value(null)); await driver.close(); }); diff --git a/packages/flutter_driver/test/src/extension_test.dart b/packages/flutter_driver/test/src/extension_test.dart index 10871b16e..58979e33f 100644 --- a/packages/flutter_driver/test/src/extension_test.dart +++ b/packages/flutter_driver/test/src/extension_test.dart @@ -24,7 +24,7 @@ void main() { testWidgets('returns immediately when transient callback queue is empty', (WidgetTester tester) async { extension.call(WaitUntilNoTransientCallbacks().serialize()) - .then(expectAsync1((Map r) { + .then(expectAsync1((Map r) { result = r; })); @@ -44,7 +44,7 @@ void main() { }); extension.call(WaitUntilNoTransientCallbacks().serialize()) - .then(expectAsync1((Map r) { + .then(expectAsync1((Map r) { result = r; })); diff --git a/packages/flutter_test/lib/src/widget_tester.dart b/packages/flutter_test/lib/src/widget_tester.dart index eff3f82da..7b88e08f8 100644 --- a/packages/flutter_test/lib/src/widget_tester.dart +++ b/packages/flutter_test/lib/src/widget_tester.dart @@ -300,7 +300,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker await binding.pump(duration, phase); count += 1; } while (binding.hasScheduledFrame); - }).then((void _) => count); + }).then((_) => count); } /// Runs a [callback] that performs real asynchronous work. diff --git a/packages/flutter_test/test/widget_tester_test.dart b/packages/flutter_test/test/widget_tester_test.dart index e37ef4730..da81a0865 100644 --- a/packages/flutter_test/test/widget_tester_test.dart +++ b/packages/flutter_test/test/widget_tester_test.dart @@ -23,23 +23,23 @@ void main() { testWidgets('completes when matcher completes', (WidgetTester tester) async { final Completer completer = Completer(); final Future future = expectLater(null, FakeMatcher(completer)); - String value; - future.then((void _) { - value = '123'; + String result; + future.then((void value) { + result = '123'; }); - test_package.expect(value, isNull); + test_package.expect(result, isNull); completer.complete(); - test_package.expect(value, isNull); + test_package.expect(result, isNull); await future; await tester.pump(); - test_package.expect(value, '123'); + test_package.expect(result, '123'); }); testWidgets('respects the skip flag', (WidgetTester tester) async { final Completer completer = Completer(); final Future future = expectLater(null, FakeMatcher(completer), skip: 'testing skip'); bool completed = false; - future.then((void _) { + future.then((_) { completed = true; }); test_package.expect(completed, isFalse); @@ -625,7 +625,7 @@ class FakeMatcher extends AsyncMatcher { @override Future matchAsync(dynamic object) { - return completer.future.then((void _) { + return completer.future.then((void value) { return object?.toString(); }); } diff --git a/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart b/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart index d40dcd62f..9b63d598d 100644 --- a/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart +++ b/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart @@ -42,7 +42,7 @@ class MakeHostAppEditableCommand extends FlutterCommand { } @override - Future runCommand() async { + Future runCommand() async { await _project.ensureReadyForPlatformSpecificTooling(); final bool isAndroidRequested = argResults['android']; @@ -58,5 +58,7 @@ class MakeHostAppEditableCommand extends FlutterCommand { } else if (isIOSRequested) { await _project.ios.makeHostAppEditable(); } + + return null; } }