if chains → switch expressions#147793
Conversation
victorsanni
left a comment
There was a problem hiding this comment.
Overall LGTM! I just some small questions that I wasn't too sure about.
| next = Brightness.light; | ||
| } | ||
| final Brightness next = switch (current) { | ||
| Brightness.light || null => Brightness.dark, |
There was a problem hiding this comment.
My understanding of the if statement is that if and only if current == Brightness.light should next = Brightness.dark, otherwise (including the null case) next = Brightness.light. Is this change intended?
There was a problem hiding this comment.
Good catch, thank you!
The || null should go next to Brightness.dark.
| return switch (filter?.deviceConnectionInterface) { | ||
| DeviceConnectionInterface.attached => attachedDevices, | ||
| DeviceConnectionInterface.wireless => wirelessDevices, | ||
| null => attachedDevices + wirelessDevices, |
There was a problem hiding this comment.
I'm a little curious here as to why null is used instead of an arbitrary _ as in (almost) everywhere else.
There was a problem hiding this comment.
Enum, bool, and sealed classes are exhaustive—Dart is able to understand when all cases have been covered.
A wildcard pattern _ in an enum switch expression (or default in a switch statement) goes against the style guideline that this pull request was named after.
I made this mistake during my first switch expressions pull request, but never again. 🙂
|
Merging manually, since |
flutter/flutter@2bfb1b0...2aa05c1 2024-05-11 [email protected] Roll Flutter Engine from fad88cb16d03 to 558a81dd8b08 (3 revisions) (flutter/flutter#148163) 2024-05-11 [email protected] Roll Flutter Engine from ba8e0d3e2f23 to fad88cb16d03 (9 revisions) (flutter/flutter#148156) 2024-05-11 [email protected] Add test for scaffold.1.dart (flutter/flutter#147966) 2024-05-10 [email protected] Fix `MaterialStateBorderSide` lerp in the `Checkbox` and chips (flutter/flutter#148124) 2024-05-10 [email protected] Docs on TextField disposed by a scrollable (flutter/flutter#148149) 2024-05-10 [email protected] Roll Flutter Engine from d4f705ccb695 to ba8e0d3e2f23 (8 revisions) (flutter/flutter#148147) 2024-05-10 [email protected] Roll pub packages (flutter/flutter#148148) 2024-05-10 [email protected] Add `clipBehavior` to `DialogTheme` (flutter/flutter#147635) 2024-05-10 [email protected] bump cupertino_icons to 1.08 (flutter/flutter#146806) 2024-05-10 [email protected] Add test for animated_size.0.dart API example. (flutter/flutter#147828) 2024-05-10 [email protected] Fix `DropdownMenu` keyboard navigation (flutter/flutter#147294) 2024-05-10 [email protected] Add test for draggable.0.dart API example. (flutter/flutter#147941) 2024-05-10 [email protected] Update TESTOWNERS (flutter/flutter#148108) 2024-05-10 [email protected] Add tests for stream_builder.0.dart API example. (flutter/flutter#147832) 2024-05-10 [email protected] Roll Flutter Engine from 1ccd0c308b3a to d4f705ccb695 (2 revisions) (flutter/flutter#148142) 2024-05-10 [email protected] Roll Packages from 8de142d to 6c4482a (8 revisions) (flutter/flutter#148079) 2024-05-10 [email protected] Roll Flutter Engine from c0917b14fc36 to 1ccd0c308b3a (10 revisions) (flutter/flutter#148137) 2024-05-10 [email protected] `if` chains � `switch` expressions (flutter/flutter#147793) 2024-05-10 49699333+dependabot[bot]@users.noreply.github.com Bump ossf/scorecard-action from 2.3.1 to 2.3.3 (flutter/flutter#148091) 2024-05-10 [email protected] Reland "Implement computeDryBaseline for `RenderWrap` (#146260)" (flutter/flutter#148086) 2024-05-10 [email protected] Update dependabot reviewers (flutter/flutter#148101) 2024-05-10 [email protected] Roll Flutter Engine from 6e722ae213bd to c0917b14fc36 (1 revision) (flutter/flutter#148084) 2024-05-09 [email protected] Don't pin package:macros (flutter/flutter#148087) 2024-05-09 [email protected] Remove hidden dependencies on the default LocalPlatform (flutter/flutter#147342) 2024-05-09 [email protected] Getting rid of containers (flutter/flutter#147432) 2024-05-09 [email protected] Roll Flutter Engine from c0fd3386d018 to 6e722ae213bd (2 revisions) (flutter/flutter#148070) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
I did a goof a while back:  Now that [the bug is fixed](e9d4035), I think we're good to re-implement the if-chains cleanup! Related: - #147793 - #148556 - #148548
flutter/flutter@2bfb1b0...2aa05c1 2024-05-11 [email protected] Roll Flutter Engine from fad88cb16d03 to 558a81dd8b08 (3 revisions) (flutter/flutter#148163) 2024-05-11 [email protected] Roll Flutter Engine from ba8e0d3e2f23 to fad88cb16d03 (9 revisions) (flutter/flutter#148156) 2024-05-11 [email protected] Add test for scaffold.1.dart (flutter/flutter#147966) 2024-05-10 [email protected] Fix `MaterialStateBorderSide` lerp in the `Checkbox` and chips (flutter/flutter#148124) 2024-05-10 [email protected] Docs on TextField disposed by a scrollable (flutter/flutter#148149) 2024-05-10 [email protected] Roll Flutter Engine from d4f705ccb695 to ba8e0d3e2f23 (8 revisions) (flutter/flutter#148147) 2024-05-10 [email protected] Roll pub packages (flutter/flutter#148148) 2024-05-10 [email protected] Add `clipBehavior` to `DialogTheme` (flutter/flutter#147635) 2024-05-10 [email protected] bump cupertino_icons to 1.08 (flutter/flutter#146806) 2024-05-10 [email protected] Add test for animated_size.0.dart API example. (flutter/flutter#147828) 2024-05-10 [email protected] Fix `DropdownMenu` keyboard navigation (flutter/flutter#147294) 2024-05-10 [email protected] Add test for draggable.0.dart API example. (flutter/flutter#147941) 2024-05-10 [email protected] Update TESTOWNERS (flutter/flutter#148108) 2024-05-10 [email protected] Add tests for stream_builder.0.dart API example. (flutter/flutter#147832) 2024-05-10 [email protected] Roll Flutter Engine from 1ccd0c308b3a to d4f705ccb695 (2 revisions) (flutter/flutter#148142) 2024-05-10 [email protected] Roll Packages from 8de142d to 6c4482a (8 revisions) (flutter/flutter#148079) 2024-05-10 [email protected] Roll Flutter Engine from c0917b14fc36 to 1ccd0c308b3a (10 revisions) (flutter/flutter#148137) 2024-05-10 [email protected] `if` chains � `switch` expressions (flutter/flutter#147793) 2024-05-10 49699333+dependabot[bot]@users.noreply.github.com Bump ossf/scorecard-action from 2.3.1 to 2.3.3 (flutter/flutter#148091) 2024-05-10 [email protected] Reland "Implement computeDryBaseline for `RenderWrap` (#146260)" (flutter/flutter#148086) 2024-05-10 [email protected] Update dependabot reviewers (flutter/flutter#148101) 2024-05-10 [email protected] Roll Flutter Engine from 6e722ae213bd to c0917b14fc36 (1 revision) (flutter/flutter#148084) 2024-05-09 [email protected] Don't pin package:macros (flutter/flutter#148087) 2024-05-09 [email protected] Remove hidden dependencies on the default LocalPlatform (flutter/flutter#147342) 2024-05-09 [email protected] Getting rid of containers (flutter/flutter#147432) 2024-05-09 [email protected] Roll Flutter Engine from c0fd3386d018 to 6e722ae213bd (2 revisions) (flutter/flutter#148070) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Previous "if-chains" pull requests:
ifchains intoswitchstatements #144905ifchains into shorterswitchstatements #144977ifchain refactoring #145194flutter/lib/src/: refactoring if-chains into switch expressions #146293flutter/lib/src/: refactoring if-chains into switch expressions #147472I think this one should be enough to wrap things up!
fixes #144903