From 7b01346c5c2e4cc427c6d1c20e4004d8155a3335 Mon Sep 17 00:00:00 2001 From: Ian Hickson Date: Mon, 11 Oct 2021 10:23:04 -0700 Subject: [PATCH] Enable no_default_cases lint (#91530) --- analysis_options.yaml | 2 +- .../lib/src/filtered_child_animation.dart | 2 +- .../lib/src/web/bench_text_layout.dart | 4 +- dev/devicelab/lib/framework/devices.dart | 2 - .../channels/lib/src/test_step.dart | 2 +- .../lib/demo/calculator/logic.dart | 2 - .../cupertino/cupertino_navigation_demo.dart | 2 +- .../lib/demo/material/list_demo.dart | 2 +- .../demo/material/reorderable_list_demo.dart | 2 +- .../demo/material/scrollable_tabs_demo.dart | 2 - .../lib/demo/material/slider_demo.dart | 6 +- .../supplemental/cut_corners_border.dart | 2 +- .../flutter_gallery/lib/gallery/options.dart | 11 +-- .../lib/src/test_step.dart | 2 +- dev/manual_tests/lib/card_collection.dart | 10 ++- examples/layers/services/isolate.dart | 1 - .../lib/src/cupertino/context_menu.dart | 3 +- packages/flutter/lib/src/material/about.dart | 4 +- .../flutter/lib/src/material/button_bar.dart | 10 ++- .../flutter/lib/src/material/date_picker.dart | 5 +- packages/flutter/lib/src/material/drawer.dart | 3 +- .../flutter/lib/src/material/material.dart | 4 +- .../src/material/material_localizations.dart | 7 +- .../lib/src/material/refresh_indicator.dart | 13 +++- .../lib/src/material/text_selection.dart | 2 +- .../flutter/lib/src/material/tooltip.dart | 12 ++- .../flutter/lib/src/rendering/editable.dart | 6 +- .../flutter/lib/src/rendering/paragraph.dart | 6 +- .../flutter/lib/src/rendering/proxy_box.dart | 21 ++++- .../lib/src/widgets/focus_manager.dart | 2 +- .../flutter/test/material/snack_bar_test.dart | 3 +- .../test/widgets/custom_painter_test.dart | 18 ++++- .../flutter/test/widgets/semantics_test.dart | 20 ++++- .../lib/src/driver/vmservice_driver.dart | 2 - .../lib/src/android/android_device.dart | 25 +++++- packages/flutter_tools/lib/src/artifacts.dart | 76 +++++++++++++++++-- .../flutter_tools/lib/src/build_info.dart | 26 ++++++- .../lib/src/build_system/targets/common.dart | 14 +++- .../lib/src/commands/build_bundle.dart | 13 +++- .../lib/src/commands/create_base.dart | 6 +- .../lib/src/commands/ide_config.dart | 7 +- .../lib/src/commands/update_packages.dart | 5 +- .../lib/src/doctor_validator.dart | 2 - .../lib/src/drive/web_driver_service.dart | 5 +- .../lib/src/flutter_plugins.dart | 2 - packages/flutter_tools/lib/src/ios/mac.dart | 2 - .../flutter_tools/lib/src/mdns_discovery.dart | 15 +++- .../lib/src/resident_runner.dart | 12 ++- .../lib/src/runner/flutter_command.dart | 4 +- .../flutter_tools/lib/src/sksl_writer.dart | 12 ++- .../test/general.shard/plugins_test.dart | 4 +- .../integration_test/lib/_callback_web.dart | 2 +- 52 files changed, 337 insertions(+), 90 deletions(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index cd428eba05..3d1d0a4bf3 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -127,7 +127,7 @@ linter: # - literal_only_boolean_expressions # too many false positives: https://github.com/dart-lang/linter/issues/453 - missing_whitespace_between_adjacent_strings - no_adjacent_strings_in_list - # - no_default_cases # too many false positives + - no_default_cases - no_duplicate_case_values - no_logic_in_create_state # - no_runtimeType_toString # ok in tests; we enable this only in packages/ diff --git a/dev/benchmarks/macrobenchmarks/lib/src/filtered_child_animation.dart b/dev/benchmarks/macrobenchmarks/lib/src/filtered_child_animation.dart index 7d84f85c63..4271bf4b5a 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/filtered_child_animation.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/filtered_child_animation.dart @@ -64,7 +64,7 @@ class _FilteredChildAnimationPageState extends State case FilterType.opacity: return 'Fading Child Animation'; case FilterType.rotateTransform: return 'Transformed Child Animation'; case FilterType.rotateFilter: return 'Matrix Filtered Child Animation'; - default: return 'Static Child'; + case null: return 'Static Child'; } } diff --git a/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart b/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart index a233f26b1a..ecfa4935b5 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart @@ -70,8 +70,10 @@ void _setTestMode(_TestMode? mode) { case _TestMode.useCanvasTextLayout: useCanvasText = true; break; - default: + case _TestMode.useCanvasKit: + case null: // Keep as null. + break; } js_util.callMethod( html.window, diff --git a/dev/devicelab/lib/framework/devices.dart b/dev/devicelab/lib/framework/devices.dart index 70ed680917..d0975a8070 100644 --- a/dev/devicelab/lib/framework/devices.dart +++ b/dev/devicelab/lib/framework/devices.dart @@ -74,8 +74,6 @@ abstract class DeviceDiscovery { case DeviceOperatingSystem.fake: print('Looking for fake devices! You should not see this in release builds.'); return FakeDeviceDiscovery(); - default: - throw DeviceException('Unsupported device operating system: $deviceOperatingSystem'); } } diff --git a/dev/integration_tests/channels/lib/src/test_step.dart b/dev/integration_tests/channels/lib/src/test_step.dart index a354e74f3a..19e848f705 100644 --- a/dev/integration_tests/channels/lib/src/test_step.dart +++ b/dev/integration_tests/channels/lib/src/test_step.dart @@ -47,7 +47,7 @@ class TestStepResult { return snapshot.data!; } return snapshot.error! as TestStepResult; - default: + case ConnectionState.active: throw 'Unsupported state ${snapshot.connectionState}'; } } diff --git a/dev/integration_tests/flutter_gallery/lib/demo/calculator/logic.dart b/dev/integration_tests/flutter_gallery/lib/demo/calculator/logic.dart index 407eec101d..8cb999c6af 100644 --- a/dev/integration_tests/flutter_gallery/lib/demo/calculator/logic.dart +++ b/dev/integration_tests/flutter_gallery/lib/demo/calculator/logic.dart @@ -257,8 +257,6 @@ class CalcExpression { case ExpressionState.NumberWithPoint: case ExpressionState.Result: return appendOperation(Operation.Subtraction); - default: - return null; } } diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart index 14559903a9..e10e30769d 100644 --- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart +++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart @@ -608,7 +608,7 @@ class Tab2ConversationBubble extends StatelessWidget { backgroundColor = CupertinoTheme.of(context).primaryColor; foregroundColor = CupertinoColors.white; break; - default: + case null: break; } diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/list_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/list_demo.dart index 0b4336dd6d..dce2bd4540 100644 --- a/dev/integration_tests/flutter_gallery/lib/demo/material/list_demo.dart +++ b/dev/integration_tests/flutter_gallery/lib/demo/material/list_demo.dart @@ -219,7 +219,7 @@ class _ListDemoState extends State { case _MaterialListType.threeLine: itemTypeText = 'Three-line'; break; - default: + case null: break; } diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/reorderable_list_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/reorderable_list_demo.dart index 3808516d58..7d5ac169af 100644 --- a/dev/integration_tests/flutter_gallery/lib/demo/material/reorderable_list_demo.dart +++ b/dev/integration_tests/flutter_gallery/lib/demo/material/reorderable_list_demo.dart @@ -156,7 +156,7 @@ class _ListDemoState extends State { ), ); break; - default: + case null: listTile = Container( key: Key(item.value), ); diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart index a1e66fc01d..ce30e86c35 100644 --- a/dev/integration_tests/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart +++ b/dev/integration_tests/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart @@ -169,8 +169,6 @@ class ScrollableTabsDemoState extends State with SingleTicke return Tab(icon: Icon(page.icon)); case TabsDemoStyle.textOnly: return Tab(text: page.text); - default: - return Tab(); } }).toList() ), diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/slider_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/slider_demo.dart index 30b5477b68..42be8e2944 100644 --- a/dev/integration_tests/flutter_gallery/lib/demo/material/slider_demo.dart +++ b/dev/integration_tests/flutter_gallery/lib/demo/material/slider_demo.dart @@ -90,7 +90,7 @@ class _CustomRangeThumbShape extends RangeSliderThumbShape { case Thumb.end: thumbPath = _leftTriangle(size, center); break; - default: + case null: break; } break; @@ -102,11 +102,11 @@ class _CustomRangeThumbShape extends RangeSliderThumbShape { case Thumb.end: thumbPath = _rightTriangle(size, center); break; - default: + case null: break; } break; - default: + case null: break; } canvas.drawPath(thumbPath, Paint()..color = colorTween.evaluate(enableAnimation)!); diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/cut_corners_border.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/cut_corners_border.dart index 6d66d8a636..be3bac72fc 100644 --- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/cut_corners_border.dart +++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/cut_corners_border.dart @@ -116,7 +116,7 @@ class CutCornersBorder extends OutlineInputBorder { canvas.drawPath(path, paint); break; } - default: + case null: break; } } diff --git a/dev/integration_tests/flutter_gallery/lib/gallery/options.dart b/dev/integration_tests/flutter_gallery/lib/gallery/options.dart index e921f9c397..389caeb004 100644 --- a/dev/integration_tests/flutter_gallery/lib/gallery/options.dart +++ b/dev/integration_tests/flutter_gallery/lib/gallery/options.dart @@ -408,8 +408,8 @@ class _PlatformItem extends StatelessWidget { final GalleryOptions? options; final ValueChanged? onOptionsChanged; - String? _platformLabel(TargetPlatform? platform) { - switch(platform) { + String _platformLabel(TargetPlatform platform) { + switch (platform) { case TargetPlatform.android: return 'Mountain View'; case TargetPlatform.fuchsia: @@ -422,9 +422,6 @@ class _PlatformItem extends StatelessWidget { return 'Material Desktop (macOS)'; case TargetPlatform.windows: return 'Material Desktop (Windows)'; - default: - assert(false); - return null; } } @@ -439,7 +436,7 @@ class _PlatformItem extends StatelessWidget { children: [ const Text('Platform mechanics'), Text( - _platformLabel(options!.platform)!, + _platformLabel(options!.platform!), style: Theme.of(context).primaryTextTheme.bodyText2, ), ], @@ -452,7 +449,7 @@ class _PlatformItem extends StatelessWidget { return TargetPlatform.values.map((TargetPlatform platform) { return PopupMenuItem( value: platform, - child: Text(_platformLabel(platform)!), + child: Text(_platformLabel(platform)), ); }).toList(); }, diff --git a/dev/integration_tests/platform_interaction/lib/src/test_step.dart b/dev/integration_tests/platform_interaction/lib/src/test_step.dart index f83a190cd8..a75fd70197 100644 --- a/dev/integration_tests/platform_interaction/lib/src/test_step.dart +++ b/dev/integration_tests/platform_interaction/lib/src/test_step.dart @@ -28,7 +28,7 @@ class TestStepResult { final Object? result = snapshot.error; return result! as TestStepResult; } - default: + case ConnectionState.active: throw 'Unsupported state ${snapshot.connectionState}'; } } diff --git a/dev/manual_tests/lib/card_collection.dart b/dev/manual_tests/lib/card_collection.dart index eaca4ad0b7..b397af3a31 100644 --- a/dev/manual_tests/lib/card_collection.dart +++ b/dev/manual_tests/lib/card_collection.dart @@ -291,16 +291,20 @@ class CardCollectionState extends State { case DismissDirection.startToEnd: backgroundMessage = 'Swipe right to dismiss'; break; - default: + case DismissDirection.vertical: + case DismissDirection.up: + case DismissDirection.down: + case DismissDirection.none: backgroundMessage = 'Unsupported dismissDirection'; + break; } - // TODO(abarth): This icon is wrong in RTL. + // This icon is wrong in RTL. Widget leftArrowIcon = const Icon(Icons.arrow_back, size: 36.0); if (_dismissDirection == DismissDirection.startToEnd) leftArrowIcon = Opacity(opacity: 0.1, child: leftArrowIcon); - // TODO(abarth): This icon is wrong in RTL. + // This icon is wrong in RTL. Widget rightArrowIcon = const Icon(Icons.arrow_forward, size: 36.0); if (_dismissDirection == DismissDirection.endToStart) rightArrowIcon = Opacity(opacity: 0.1, child: rightArrowIcon); diff --git a/examples/layers/services/isolate.dart b/examples/layers/services/isolate.dart index 9aa3234c97..c9d9112e38 100644 --- a/examples/layers/services/isolate.dart +++ b/examples/layers/services/isolate.dart @@ -281,7 +281,6 @@ class IsolateExampleState extends State with SingleTickerProvide case CalculationState.calculating: return 'In Progress'; case CalculationState.idle: - default: return 'Idle'; } } diff --git a/packages/flutter/lib/src/cupertino/context_menu.dart b/packages/flutter/lib/src/cupertino/context_menu.dart index 788a928b2f..caf0e82c94 100644 --- a/packages/flutter/lib/src/cupertino/context_menu.dart +++ b/packages/flutter/lib/src/cupertino/context_menu.dart @@ -287,7 +287,8 @@ class _CupertinoContextMenuState extends State with Ticker }); break; - default: + case AnimationStatus.forward: + case AnimationStatus.reverse: return; } } diff --git a/packages/flutter/lib/src/material/about.dart b/packages/flutter/lib/src/material/about.dart index ef9de75d14..6bb081fa98 100644 --- a/packages/flutter/lib/src/material/about.dart +++ b/packages/flutter/lib/src/material/about.dart @@ -566,7 +566,9 @@ class _PackagesViewState extends State<_PackagesView> { ); }, ); - default: + case ConnectionState.none: + case ConnectionState.active: + case ConnectionState.waiting: return Material( color: Theme.of(context).cardColor, child: Column( diff --git a/packages/flutter/lib/src/material/button_bar.dart b/packages/flutter/lib/src/material/button_bar.dart index 2e3b839040..9720668dda 100644 --- a/packages/flutter/lib/src/material/button_bar.dart +++ b/packages/flutter/lib/src/material/button_bar.dart @@ -406,7 +406,10 @@ class _RenderButtonBarRow extends RenderFlex { case MainAxisAlignment.end: childParentData.offset = Offset(constraints.maxWidth - child.size.width, currentHeight); break; - default: + case MainAxisAlignment.spaceAround: + case MainAxisAlignment.spaceBetween: + case MainAxisAlignment.spaceEvenly: + case MainAxisAlignment.start: childParentData.offset = Offset(0, currentHeight); break; } @@ -420,7 +423,10 @@ class _RenderButtonBarRow extends RenderFlex { case MainAxisAlignment.end: childParentData.offset = Offset(0, currentHeight); break; - default: + case MainAxisAlignment.spaceAround: + case MainAxisAlignment.spaceBetween: + case MainAxisAlignment.spaceEvenly: + case MainAxisAlignment.start: childParentData.offset = Offset(constraints.maxWidth - child.size.width, currentHeight); break; } diff --git a/packages/flutter/lib/src/material/date_picker.dart b/packages/flutter/lib/src/material/date_picker.dart index c219437ced..d51b8030cc 100644 --- a/packages/flutter/lib/src/material/date_picker.dart +++ b/packages/flutter/lib/src/material/date_picker.dart @@ -1654,7 +1654,10 @@ class _CalendarDateRangePickerState extends State<_CalendarDateRangePicker> { case TargetPlatform.fuchsia: HapticFeedback.vibrate(); break; - default: + case TargetPlatform.iOS: + case TargetPlatform.linux: + case TargetPlatform.macOS: + case TargetPlatform.windows: break; } } diff --git a/packages/flutter/lib/src/material/drawer.dart b/packages/flutter/lib/src/material/drawer.dart index 98f7bea15c..9a54848b97 100644 --- a/packages/flutter/lib/src/material/drawer.dart +++ b/packages/flutter/lib/src/material/drawer.dart @@ -374,7 +374,8 @@ class DrawerControllerState extends State with SingleTickerPro case AnimationStatus.dismissed: _controller.value = widget.isDrawerOpen ? 1.0 : 0.0; break; - default: + case AnimationStatus.forward: + case AnimationStatus.reverse: break; } } diff --git a/packages/flutter/lib/src/material/material.dart b/packages/flutter/lib/src/material/material.dart index 2054e2630f..2af28f7ae6 100644 --- a/packages/flutter/lib/src/material/material.dart +++ b/packages/flutter/lib/src/material/material.dart @@ -350,7 +350,9 @@ class _MaterialState extends State with TickerProviderStateMixin { case MaterialType.card: color = theme.cardColor; break; - default: + case MaterialType.button: + case MaterialType.circle: + case MaterialType.transparency: break; } } diff --git a/packages/flutter/lib/src/material/material_localizations.dart b/packages/flutter/lib/src/material/material_localizations.dart index 7bba6618f5..5900a3dfae 100644 --- a/packages/flutter/lib/src/material/material_localizations.dart +++ b/packages/flutter/lib/src/material/material_localizations.dart @@ -636,8 +636,11 @@ class DefaultMaterialLocalizations implements MaterialLocalizations { return formatDecimal(timeOfDay.hourOfPeriod == 0 ? 12 : timeOfDay.hourOfPeriod); case TimeOfDayFormat.HH_colon_mm: return _formatTwoDigitZeroPad(timeOfDay.hour); - default: - throw AssertionError('$runtimeType does not support $format.'); + case TimeOfDayFormat.a_space_h_colon_mm: + case TimeOfDayFormat.frenchCanadian: + case TimeOfDayFormat.H_colon_mm: + case TimeOfDayFormat.HH_dot_mm: + throw AssertionError('$runtimeType does not support $format.'); } } diff --git a/packages/flutter/lib/src/material/refresh_indicator.dart b/packages/flutter/lib/src/material/refresh_indicator.dart index f9a285c6d3..70e0795599 100644 --- a/packages/flutter/lib/src/material/refresh_indicator.dart +++ b/packages/flutter/lib/src/material/refresh_indicator.dart @@ -346,7 +346,11 @@ class RefreshIndicatorState extends State with TickerProviderS case _RefreshIndicatorMode.drag: _dismiss(_RefreshIndicatorMode.canceled); break; - default: + case _RefreshIndicatorMode.canceled: + case _RefreshIndicatorMode.done: + case _RefreshIndicatorMode.refresh: + case _RefreshIndicatorMode.snap: + case null: // do nothing break; } @@ -407,14 +411,17 @@ class RefreshIndicatorState extends State with TickerProviderS setState(() { _mode = newMode; }); - switch (_mode) { + switch (_mode!) { case _RefreshIndicatorMode.done: await _scaleController.animateTo(1.0, duration: _kIndicatorScaleDuration); break; case _RefreshIndicatorMode.canceled: await _positionController.animateTo(0.0, duration: _kIndicatorScaleDuration); break; - default: + case _RefreshIndicatorMode.armed: + case _RefreshIndicatorMode.drag: + case _RefreshIndicatorMode.refresh: + case _RefreshIndicatorMode.snap: assert(false); } if (mounted && _mode == newMode) { diff --git a/packages/flutter/lib/src/material/text_selection.dart b/packages/flutter/lib/src/material/text_selection.dart index 574e682cd5..f1def2a5dc 100644 --- a/packages/flutter/lib/src/material/text_selection.dart +++ b/packages/flutter/lib/src/material/text_selection.dart @@ -100,7 +100,7 @@ class MaterialTextSelectionControls extends TextSelectionControls { return const Offset(_kHandleSize, 0); case TextSelectionHandleType.right: return Offset.zero; - default: + case TextSelectionHandleType.collapsed: return const Offset(_kHandleSize / 2, -4); } } diff --git a/packages/flutter/lib/src/material/tooltip.dart b/packages/flutter/lib/src/material/tooltip.dart index a7839c0cac..40ee3e1104 100644 --- a/packages/flutter/lib/src/material/tooltip.dart +++ b/packages/flutter/lib/src/material/tooltip.dart @@ -360,7 +360,9 @@ class _TooltipState extends State with SingleTickerProviderStateMixin { case TargetPlatform.linux: case TargetPlatform.windows: return 24.0; - default: + case TargetPlatform.android: + case TargetPlatform.fuchsia: + case TargetPlatform.iOS: return 32.0; } } @@ -372,7 +374,9 @@ class _TooltipState extends State with SingleTickerProviderStateMixin { case TargetPlatform.linux: case TargetPlatform.windows: return const EdgeInsets.symmetric(horizontal: 8.0); - default: + case TargetPlatform.android: + case TargetPlatform.fuchsia: + case TargetPlatform.iOS: return const EdgeInsets.symmetric(horizontal: 16.0); } } @@ -384,7 +388,9 @@ class _TooltipState extends State with SingleTickerProviderStateMixin { case TargetPlatform.linux: case TargetPlatform.windows: return 10.0; - default: + case TargetPlatform.android: + case TargetPlatform.fuchsia: + case TargetPlatform.iOS: return 14.0; } } diff --git a/packages/flutter/lib/src/rendering/editable.dart b/packages/flutter/lib/src/rendering/editable.dart index 17d7414894..bf17a26b66 100644 --- a/packages/flutter/lib/src/rendering/editable.dart +++ b/packages/flutter/lib/src/rendering/editable.dart @@ -1990,7 +1990,11 @@ class RenderEditable extends RenderBox with RelayoutWhenSystemFontsChangeMixin, _placeholderSpans[childIndex].baseline!, ); break; - default: + case ui.PlaceholderAlignment.aboveBaseline: + case ui.PlaceholderAlignment.belowBaseline: + case ui.PlaceholderAlignment.bottom: + case ui.PlaceholderAlignment.middle: + case ui.PlaceholderAlignment.top: baselineOffset = null; break; } diff --git a/packages/flutter/lib/src/rendering/paragraph.dart b/packages/flutter/lib/src/rendering/paragraph.dart index 493b397630..01e8ec02ce 100644 --- a/packages/flutter/lib/src/rendering/paragraph.dart +++ b/packages/flutter/lib/src/rendering/paragraph.dart @@ -554,7 +554,11 @@ class RenderParagraph extends RenderBox _placeholderSpans[childIndex].baseline!, ); break; - default: + case ui.PlaceholderAlignment.aboveBaseline: + case ui.PlaceholderAlignment.belowBaseline: + case ui.PlaceholderAlignment.bottom: + case ui.PlaceholderAlignment.middle: + case ui.PlaceholderAlignment.top: baselineOffset = null; break; } diff --git a/packages/flutter/lib/src/rendering/proxy_box.dart b/packages/flutter/lib/src/rendering/proxy_box.dart index 8df38b0cac..c215f6527e 100644 --- a/packages/flutter/lib/src/rendering/proxy_box.dart +++ b/packages/flutter/lib/src/rendering/proxy_box.dart @@ -2466,7 +2466,12 @@ class RenderFittedBox extends RenderProxyBox { switch (fit) { case BoxFit.scaleDown: return true; - default: + case BoxFit.contain: + case BoxFit.cover: + case BoxFit.fill: + case BoxFit.fitHeight: + case BoxFit.fitWidth: + case BoxFit.none: return false; } } @@ -2551,7 +2556,12 @@ class RenderFittedBox extends RenderProxyBox { final BoxConstraints sizeConstraints = constraints.loosen(); final Size unconstrainedSize = sizeConstraints.constrainSizeAndAttemptToPreserveAspectRatio(childSize); return constraints.constrain(unconstrainedSize); - default: + case BoxFit.contain: + case BoxFit.cover: + case BoxFit.fill: + case BoxFit.fitHeight: + case BoxFit.fitWidth: + case BoxFit.none: return constraints.constrainSizeAndAttemptToPreserveAspectRatio(childSize); } } else { @@ -2569,7 +2579,12 @@ class RenderFittedBox extends RenderProxyBox { final Size unconstrainedSize = sizeConstraints.constrainSizeAndAttemptToPreserveAspectRatio(child!.size); size = constraints.constrain(unconstrainedSize); break; - default: + case BoxFit.contain: + case BoxFit.cover: + case BoxFit.fill: + case BoxFit.fitHeight: + case BoxFit.fitWidth: + case BoxFit.none: size = constraints.constrainSizeAndAttemptToPreserveAspectRatio(child!.size); break; } diff --git a/packages/flutter/lib/src/widgets/focus_manager.dart b/packages/flutter/lib/src/widgets/focus_manager.dart index c13ec28fe2..c1ca4d4d21 100644 --- a/packages/flutter/lib/src/widgets/focus_manager.dart +++ b/packages/flutter/lib/src/widgets/focus_manager.dart @@ -69,7 +69,7 @@ KeyEventResult combineKeyEventResults(Iterable results) { case KeyEventResult.skipRemainingHandlers: hasSkipRemainingHandlers = true; break; - default: + case KeyEventResult.ignored: break; } } diff --git a/packages/flutter/test/material/snack_bar_test.dart b/packages/flutter/test/material/snack_bar_test.dart index 2d4901d6f8..330511f29c 100644 --- a/packages/flutter/test/material/snack_bar_test.dart +++ b/packages/flutter/test/material/snack_bar_test.dart @@ -2593,7 +2593,8 @@ Map> _getDragGesturesOfDismissDirections(double s Offset(-scaffoldWidth, 0.0), // drag to left gesture ]; break; - default: + case DismissDirection.none: + break; } } diff --git a/packages/flutter/test/widgets/custom_painter_test.dart b/packages/flutter/test/widgets/custom_painter_test.dart index c2978e936b..46074f4da5 100644 --- a/packages/flutter/test/widgets/custom_painter_test.dart +++ b/packages/flutter/test/widgets/custom_painter_test.dart @@ -389,8 +389,24 @@ void _defineTests() { case SemanticsAction.setText: semanticsOwner.performAction(expectedId, action, 'text'); break; - default: + case SemanticsAction.copy: + case SemanticsAction.customAction: + case SemanticsAction.cut: + case SemanticsAction.decrease: + case SemanticsAction.didGainAccessibilityFocus: + case SemanticsAction.didLoseAccessibilityFocus: + case SemanticsAction.dismiss: + case SemanticsAction.increase: + case SemanticsAction.longPress: + case SemanticsAction.paste: + case SemanticsAction.scrollDown: + case SemanticsAction.scrollLeft: + case SemanticsAction.scrollRight: + case SemanticsAction.scrollUp: + case SemanticsAction.showOnScreen: + case SemanticsAction.tap: semanticsOwner.performAction(expectedId, action); + break; } expect(performedActions.length, expectedLength); expect(performedActions.last, action); diff --git a/packages/flutter/test/widgets/semantics_test.dart b/packages/flutter/test/widgets/semantics_test.dart index 99faf6b901..5eb247f59c 100644 --- a/packages/flutter/test/widgets/semantics_test.dart +++ b/packages/flutter/test/widgets/semantics_test.dart @@ -493,8 +493,26 @@ void main() { case SemanticsAction.setText: semanticsOwner.performAction(expectedId, action, 'text'); break; - default: + case SemanticsAction.copy: + case SemanticsAction.customAction: + case SemanticsAction.cut: + case SemanticsAction.decrease: + case SemanticsAction.didGainAccessibilityFocus: + case SemanticsAction.didLoseAccessibilityFocus: + case SemanticsAction.dismiss: + case SemanticsAction.increase: + case SemanticsAction.longPress: + case SemanticsAction.moveCursorBackwardByWord: + case SemanticsAction.moveCursorForwardByWord: + case SemanticsAction.paste: + case SemanticsAction.scrollDown: + case SemanticsAction.scrollLeft: + case SemanticsAction.scrollRight: + case SemanticsAction.scrollUp: + case SemanticsAction.showOnScreen: + case SemanticsAction.tap: semanticsOwner.performAction(expectedId, action); + break; } expect(performedActions.length, expectedLength); expect(performedActions.last, action); diff --git a/packages/flutter_driver/lib/src/driver/vmservice_driver.dart b/packages/flutter_driver/lib/src/driver/vmservice_driver.dart index a11bfd4b81..64b9ad7849 100644 --- a/packages/flutter_driver/lib/src/driver/vmservice_driver.dart +++ b/packages/flutter_driver/lib/src/driver/vmservice_driver.dart @@ -593,8 +593,6 @@ List _timelineStreamsToString(List streams) { case TimelineStream.gc: return 'GC'; case TimelineStream.isolate: return 'Isolate'; case TimelineStream.vm: return 'VM'; - default: - throw 'Unknown timeline stream $stream'; } }).toList(); } diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 08355b3758..7bdd848316 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -236,9 +236,20 @@ class AndroidDevice extends Device { return buildMode != BuildMode.jitRelease; case TargetPlatform.android_x86: return buildMode == BuildMode.debug; - default: + case TargetPlatform.android: + case TargetPlatform.darwin: + case TargetPlatform.fuchsia_arm64: + case TargetPlatform.fuchsia_x64: + case TargetPlatform.ios: + case TargetPlatform.linux_arm64: + case TargetPlatform.linux_x64: + case TargetPlatform.tester: + case TargetPlatform.web_javascript: + case TargetPlatform.windows_uwp_x64: + case TargetPlatform.windows_x64: throw UnsupportedError('Invalid target platform for Android'); } + throw null; // dead code, remove after null migration } @override @@ -560,7 +571,17 @@ class AndroidDevice extends Device { case TargetPlatform.android_x86: androidArch = AndroidArch.x86; break; - default: + case TargetPlatform.android: + case TargetPlatform.darwin: + case TargetPlatform.fuchsia_arm64: + case TargetPlatform.fuchsia_x64: + case TargetPlatform.ios: + case TargetPlatform.linux_arm64: + case TargetPlatform.linux_x64: + case TargetPlatform.tester: + case TargetPlatform.web_javascript: + case TargetPlatform.windows_uwp_x64: + case TargetPlatform.windows_x64: _logger.printError('Android platforms are only supported.'); return LaunchResult.failed(); } diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart index 85c0ff51e6..af99b1f63f 100644 --- a/packages/flutter_tools/lib/src/artifacts.dart +++ b/packages/flutter_tools/lib/src/artifacts.dart @@ -420,10 +420,12 @@ class CachedArtifacts implements Artifacts { }) { platform = _mapTargetPlatform(platform); switch (platform) { + case TargetPlatform.android: case TargetPlatform.android_arm: case TargetPlatform.android_arm64: case TargetPlatform.android_x64: case TargetPlatform.android_x86: + assert(platform != TargetPlatform.android); return _getAndroidArtifactPath(artifact, platform!, mode!); case TargetPlatform.ios: return _getIosArtifactPath(artifact, platform!, mode, environmentType); @@ -438,7 +440,7 @@ class CachedArtifacts implements Artifacts { return _getFuchsiaArtifactPath(artifact, platform!, mode!); case TargetPlatform.tester: case TargetPlatform.web_javascript: - default: // could be null, but that can't be specified as a case. + case null: return _getHostArtifactPath(artifact, platform ?? _currentHostPlatform(_platform, _operatingSystemUtils), mode); } } @@ -468,7 +470,29 @@ class CachedArtifacts implements Artifacts { assert(mode != BuildMode.debug, 'Artifact $artifact only available in non-debug mode.'); final String hostPlatform = getNameForHostPlatform(getCurrentHostPlatform()); return _fileSystem.path.join(engineDir, hostPlatform, _artifactToFileName(artifact)); - default: + case Artifact.constFinder: + case Artifact.flutterFramework: + case Artifact.flutterMacOSFramework: + case Artifact.flutterMacOSPodspec: + case Artifact.flutterPatchedSdkPath: + case Artifact.flutterTester: + case Artifact.flutterXcframework: + case Artifact.fontSubset: + case Artifact.fuchsiaFlutterRunner: + case Artifact.fuchsiaKernelCompiler: + case Artifact.icuData: + case Artifact.isolateSnapshotData: + case Artifact.linuxDesktopPath: + case Artifact.linuxHeaders: + case Artifact.platformKernelDill: + case Artifact.platformLibrariesJson: + case Artifact.skyEnginePath: + case Artifact.uwptool: + case Artifact.vmSnapshotData: + case Artifact.windowsCppClientWrapper: + case Artifact.windowsDesktopPath: + case Artifact.windowsUwpCppClientWrapper: + case Artifact.windowsUwpDesktopPath: return _getHostArtifactPath(artifact, platform, mode); } } @@ -484,7 +508,27 @@ class CachedArtifacts implements Artifacts { case Artifact.flutterFramework: final String engineDir = _getEngineArtifactsPath(platform, mode)!; return _getIosEngineArtifactPath(engineDir, environmentType, _fileSystem); - default: + case Artifact.constFinder: + case Artifact.flutterMacOSFramework: + case Artifact.flutterMacOSPodspec: + case Artifact.flutterPatchedSdkPath: + case Artifact.flutterTester: + case Artifact.fontSubset: + case Artifact.fuchsiaFlutterRunner: + case Artifact.fuchsiaKernelCompiler: + case Artifact.icuData: + case Artifact.isolateSnapshotData: + case Artifact.linuxDesktopPath: + case Artifact.linuxHeaders: + case Artifact.platformKernelDill: + case Artifact.platformLibrariesJson: + case Artifact.skyEnginePath: + case Artifact.uwptool: + case Artifact.vmSnapshotData: + case Artifact.windowsCppClientWrapper: + case Artifact.windowsDesktopPath: + case Artifact.windowsUwpCppClientWrapper: + case Artifact.windowsUwpDesktopPath: return _getHostArtifactPath(artifact, platform, mode); } } @@ -513,7 +557,26 @@ class CachedArtifacts implements Artifacts { case Artifact.fuchsiaFlutterRunner: final String artifactFileName = _artifactToFileName(artifact, platform, mode)!; return _fileSystem.path.join(root, runtime, artifactFileName); - default: + case Artifact.constFinder: + case Artifact.flutterFramework: + case Artifact.flutterMacOSFramework: + case Artifact.flutterMacOSPodspec: + case Artifact.flutterTester: + case Artifact.flutterXcframework: + case Artifact.fontSubset: + case Artifact.frontendServerSnapshotForEngineDartSdk: + case Artifact.icuData: + case Artifact.isolateSnapshotData: + case Artifact.linuxDesktopPath: + case Artifact.linuxHeaders: + case Artifact.platformLibrariesJson: + case Artifact.skyEnginePath: + case Artifact.uwptool: + case Artifact.vmSnapshotData: + case Artifact.windowsCppClientWrapper: + case Artifact.windowsDesktopPath: + case Artifact.windowsUwpCppClientWrapper: + case Artifact.windowsUwpDesktopPath: return _getHostArtifactPath(artifact, platform, mode); } } @@ -586,7 +649,10 @@ class CachedArtifacts implements Artifacts { .childDirectory('windows-uwp-x64-${getNameForBuildMode(mode ?? BuildMode.debug)}') .childFile(_artifactToFileName(artifact, platform, mode)!) .path; - default: + case Artifact.flutterFramework: + case Artifact.flutterXcframework: + case Artifact.fuchsiaFlutterRunner: + case Artifact.fuchsiaKernelCompiler: throw StateError('Artifact $artifact not available for platform $platform.'); } } diff --git a/packages/flutter_tools/lib/src/build_info.dart b/packages/flutter_tools/lib/src/build_info.dart index 3b45aeaeef..9f62ce4a8a 100644 --- a/packages/flutter_tools/lib/src/build_info.dart +++ b/packages/flutter_tools/lib/src/build_info.dart @@ -718,7 +718,19 @@ String fuchsiaArchForTargetPlatform(TargetPlatform targetPlatform) { return 'arm64'; case TargetPlatform.fuchsia_x64: return 'x64'; - default: + case TargetPlatform.android: + case TargetPlatform.android_arm: + case TargetPlatform.android_arm64: + case TargetPlatform.android_x64: + case TargetPlatform.android_x86: + case TargetPlatform.darwin: + case TargetPlatform.ios: + case TargetPlatform.linux_arm64: + case TargetPlatform.linux_x64: + case TargetPlatform.tester: + case TargetPlatform.web_javascript: + case TargetPlatform.windows_uwp_x64: + case TargetPlatform.windows_x64: throw UnsupportedError('Unexpected Fuchsia platform $targetPlatform'); } } @@ -963,7 +975,17 @@ String getNameForTargetPlatformArch(TargetPlatform platform) { return 'x64'; case TargetPlatform.linux_arm64: return 'arm64'; - default: + case TargetPlatform.android: + case TargetPlatform.android_arm: + case TargetPlatform.android_arm64: + case TargetPlatform.android_x64: + case TargetPlatform.android_x86: + case TargetPlatform.fuchsia_arm64: + case TargetPlatform.fuchsia_x64: + case TargetPlatform.ios: + case TargetPlatform.tester: + case TargetPlatform.web_javascript: + case TargetPlatform.windows_uwp_x64: throw UnsupportedError('Unexpected target platform $platform'); } } diff --git a/packages/flutter_tools/lib/src/build_system/targets/common.dart b/packages/flutter_tools/lib/src/build_system/targets/common.dart index f3b6dd5e63..05a048ef4a 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/common.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/common.dart @@ -193,8 +193,20 @@ class KernelSnapshot extends Target { case TargetPlatform.linux_x64: forceLinkPlatform = true; break; - default: + case TargetPlatform.android: + case TargetPlatform.android_arm: + case TargetPlatform.android_arm64: + case TargetPlatform.android_x64: + case TargetPlatform.android_x86: + case TargetPlatform.fuchsia_arm64: + case TargetPlatform.fuchsia_x64: + case TargetPlatform.ios: + case TargetPlatform.linux_arm64: + case TargetPlatform.tester: + case TargetPlatform.web_javascript: + case TargetPlatform.windows_uwp_x64: forceLinkPlatform = false; + break; } final PackageConfig packageConfig = await loadPackageConfigWithLogging( diff --git a/packages/flutter_tools/lib/src/commands/build_bundle.dart b/packages/flutter_tools/lib/src/commands/build_bundle.dart index 52f67b52b0..3b48eecac9 100644 --- a/packages/flutter_tools/lib/src/commands/build_bundle.dart +++ b/packages/flutter_tools/lib/src/commands/build_bundle.dart @@ -111,16 +111,27 @@ class BuildBundleCommand extends BuildSubCommand { } break; case TargetPlatform.windows_x64: + case TargetPlatform.windows_uwp_x64: if (!featureFlags.isWindowsEnabled) { throwToolExit('Windows is not a supported target platform.'); } break; case TargetPlatform.linux_x64: + case TargetPlatform.linux_arm64: if (!featureFlags.isLinuxEnabled) { throwToolExit('Linux is not a supported target platform.'); } break; - default: + case TargetPlatform.android: + case TargetPlatform.android_arm: + case TargetPlatform.android_arm64: + case TargetPlatform.android_x64: + case TargetPlatform.android_x86: + case TargetPlatform.fuchsia_arm64: + case TargetPlatform.fuchsia_x64: + case TargetPlatform.ios: + case TargetPlatform.tester: + case TargetPlatform.web_javascript: break; } diff --git a/packages/flutter_tools/lib/src/commands/create_base.dart b/packages/flutter_tools/lib/src/commands/create_base.dart index 0c4309922f..599aa9b56e 100644 --- a/packages/flutter_tools/lib/src/commands/create_base.dart +++ b/packages/flutter_tools/lib/src/commands/create_base.dart @@ -287,7 +287,7 @@ abstract class CreateBase extends FlutterCommand { final FileSystemEntityType type = globals.fs.typeSync(projectDirPath); - switch (type) { + switch (type) { // ignore: exhaustive_cases, https://github.com/dart-lang/linter/issues/3017 case FileSystemEntityType.file: // Do not overwrite files. throwToolExit("Invalid project name: '$projectDirPath' - file exists.", @@ -298,7 +298,9 @@ abstract class CreateBase extends FlutterCommand { throwToolExit("Invalid project name: '$projectDirPath' - refers to a link.", exitCode: 2); break; - default: + case FileSystemEntityType.directory: + case FileSystemEntityType.notFound: + break; } } diff --git a/packages/flutter_tools/lib/src/commands/ide_config.dart b/packages/flutter_tools/lib/src/commands/ide_config.dart index 7d4f51f1ce..1caf1fcfa2 100644 --- a/packages/flutter_tools/lib/src/commands/ide_config.dart +++ b/packages/flutter_tools/lib/src/commands/ide_config.dart @@ -269,11 +269,14 @@ class IdeConfigCommand extends FlutterCommand { String _validateFlutterDir(String dirPath, { String flutterRoot }) { final FileSystemEntityType type = globals.fs.typeSync(dirPath); - switch (type) { + switch (type) { // ignore: exhaustive_cases, https://github.com/dart-lang/linter/issues/3017 case FileSystemEntityType.link: // Do not overwrite links. return "Invalid project root dir: '$dirPath' - refers to a link."; - default: + case FileSystemEntityType.file: + case FileSystemEntityType.directory: + case FileSystemEntityType.notFound: return null; } + return null; // dead code, remove after null safety migration } diff --git a/packages/flutter_tools/lib/src/commands/update_packages.dart b/packages/flutter_tools/lib/src/commands/update_packages.dart index 6f7f6ea4b0..7c88c80b0e 100644 --- a/packages/flutter_tools/lib/src/commands/update_packages.dart +++ b/packages/flutter_tools/lib/src/commands/update_packages.dart @@ -850,7 +850,10 @@ class PubspecYaml { } endOfDevDependencies = output.length; break; - default: + case Section.builders: + case Section.dependencyOverrides: + case Section.header: + case Section.other: // In other sections, pass everything through in its original form. output.add(data.line); if (data.lockLine != null) { diff --git a/packages/flutter_tools/lib/src/doctor_validator.dart b/packages/flutter_tools/lib/src/doctor_validator.dart index f8ddc250d0..634275800e 100644 --- a/packages/flutter_tools/lib/src/doctor_validator.dart +++ b/packages/flutter_tools/lib/src/doctor_validator.dart @@ -126,8 +126,6 @@ class GroupedValidator extends DoctorValidator { mergedType = ValidationType.partial; } break; - default: - throw 'Unrecognized validation type: ${result.type}'; } mergedMessages.addAll(result.messages); } diff --git a/packages/flutter_tools/lib/src/drive/web_driver_service.dart b/packages/flutter_tools/lib/src/drive/web_driver_service.dart index 4b3d12ac81..fb4cba4135 100644 --- a/packages/flutter_tools/lib/src/drive/web_driver_service.dart +++ b/packages/flutter_tools/lib/src/drive/web_driver_service.dart @@ -317,9 +317,8 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str 'args': ['--disable-fullscreen'] }, }; - default: - throw UnsupportedError('Browser $browser not supported.'); } + throw UnsupportedError('Browser $browser not supported.'); // dead code; remove with null safety migration } /// Converts [browserName] string to [Browser] @@ -332,5 +331,5 @@ Browser _browserNameToEnum(String browserName) { case 'ios-safari': return Browser.iosSafari; case 'safari': return Browser.safari; } - throw UnsupportedError('Browser $browserName not supported'); + throw UnsupportedError('Browser $browserName not supported'); // dead code; remove with null safety migration } diff --git a/packages/flutter_tools/lib/src/flutter_plugins.dart b/packages/flutter_tools/lib/src/flutter_plugins.dart index 9215167c90..ec9196d002 100644 --- a/packages/flutter_tools/lib/src/flutter_plugins.dart +++ b/packages/flutter_tools/lib/src/flutter_plugins.dart @@ -348,7 +348,6 @@ List> _extractPlatformMaps(List plugins, String typ /// [project] is using. AndroidEmbeddingVersion _getAndroidEmbeddingVersion(FlutterProject project) { assert(project.android != null); - return project.android.getEmbeddingVersion(); } @@ -415,7 +414,6 @@ Future _writeAndroidPluginRegistrant(FlutterProject project, List templateContent = _androidPluginRegistryTemplateNewEmbedding; break; case AndroidEmbeddingVersion.v1: - default: globals.printError( 'This app is using a deprecated version of the Android embedding.\n' 'To avoid unexpected runtime failures, or future build failures, try to migrate this ' diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index 61dd02ac0a..152b6c4935 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart @@ -598,8 +598,6 @@ String xcodeBuildActionToString(XcodeBuildAction action) { return 'build'; case XcodeBuildAction.archive: return 'archive'; - default: - throw UnsupportedError('Unknown Xcode build action'); } } diff --git a/packages/flutter_tools/lib/src/mdns_discovery.dart b/packages/flutter_tools/lib/src/mdns_discovery.dart index e152bcd95b..0cc3208756 100644 --- a/packages/flutter_tools/lib/src/mdns_discovery.dart +++ b/packages/flutter_tools/lib/src/mdns_discovery.dart @@ -204,7 +204,20 @@ class MDnsObservatoryDiscovery { 'See https://github.com/flutter/flutter/issues/46698 for details.' ); break; - default: + case TargetPlatform.android: + case TargetPlatform.android_arm: + case TargetPlatform.android_arm64: + case TargetPlatform.android_x64: + case TargetPlatform.android_x86: + case TargetPlatform.darwin: + case TargetPlatform.fuchsia_arm64: + case TargetPlatform.fuchsia_x64: + case TargetPlatform.linux_arm64: + case TargetPlatform.linux_x64: + case TargetPlatform.tester: + case TargetPlatform.web_javascript: + case TargetPlatform.windows_uwp_x64: + case TargetPlatform.windows_x64: _logger.printTrace('No interface with an ipv4 link local address was found.'); break; } diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index eef7a2ecf9..686cd92ce7 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -1467,9 +1467,19 @@ Future getMissingPackageHintForPlatform(TargetPlatform platform) async { return 'Is your project missing an $manifestPath?\nConsider running "flutter create ." to create one.'; case TargetPlatform.ios: return 'Is your project missing an ios/Runner/Info.plist?\nConsider running "flutter create ." to create one.'; - default: + case TargetPlatform.android: + case TargetPlatform.darwin: + case TargetPlatform.fuchsia_arm64: + case TargetPlatform.fuchsia_x64: + case TargetPlatform.linux_arm64: + case TargetPlatform.linux_x64: + case TargetPlatform.tester: + case TargetPlatform.web_javascript: + case TargetPlatform.windows_uwp_x64: + case TargetPlatform.windows_x64: return null; } + return null; // dead code, remove after null safety migration } /// Redirects terminal commands to the correct resident runner methods. diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index b642ee9519..f95dda393f 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -91,10 +91,8 @@ class FlutterCommandResult { return 'fail'; case ExitStatus.killed: return 'killed'; - default: - assert(false); - return null; } + return null; // dead code, remove with null safety migration } } diff --git a/packages/flutter_tools/lib/src/sksl_writer.dart b/packages/flutter_tools/lib/src/sksl_writer.dart index 470281cc47..138939cd09 100644 --- a/packages/flutter_tools/lib/src/sksl_writer.dart +++ b/packages/flutter_tools/lib/src/sksl_writer.dart @@ -47,7 +47,17 @@ Future sharedSkSlWriter(Device device, Map data, { case TargetPlatform.android_x86: targetPlatform = TargetPlatform.android; break; - default: + case TargetPlatform.android: + case TargetPlatform.darwin: + case TargetPlatform.ios: + case TargetPlatform.fuchsia_arm64: + case TargetPlatform.fuchsia_x64: + case TargetPlatform.linux_arm64: + case TargetPlatform.linux_x64: + case TargetPlatform.tester: + case TargetPlatform.web_javascript: + case TargetPlatform.windows_uwp_x64: + case TargetPlatform.windows_x64: break; } final Map manifest = { diff --git a/packages/flutter_tools/test/general.shard/plugins_test.dart b/packages/flutter_tools/test/general.shard/plugins_test.dart index 4e7a4fbd50..c710e6dbc0 100644 --- a/packages/flutter_tools/test/general.shard/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/plugins_test.dart @@ -84,7 +84,8 @@ void main() { androidProject ..pluginRegistrantHost = androidDirectory.childDirectory('app') ..hostAppGradleRoot = androidDirectory - ..exists = false; + ..exists = false + ..embeddingVersion = AndroidEmbeddingVersion.v2; webProject = FakeWebProject(); flutterProject.web = webProject; @@ -922,7 +923,6 @@ dependencies: testUsingContext('Does not throw when AndroidManifest.xml is not found', () async { final File manifest = fs.file('AndroidManifest.xml'); androidProject.appManifestFile = manifest; - await injectPlugins(flutterProject, androidPlatform: true); }, overrides: { FileSystem: () => fs, diff --git a/packages/integration_test/lib/_callback_web.dart b/packages/integration_test/lib/_callback_web.dart index 0d1f82f82f..ce5658ea71 100644 --- a/packages/integration_test/lib/_callback_web.dart +++ b/packages/integration_test/lib/_callback_web.dart @@ -125,7 +125,7 @@ class WebCallbackManager implements CallbackManager { 'message': Response.webDriverCommand(data: data).toJson(), }; break; - default: + case WebDriverCommandType.ack: throw UnimplementedError('${command.type} is not implemented'); } } else {