-
Notifications
You must be signed in to change notification settings - Fork 26.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Intensive if
chain refactoring
#145194
Intensive if
chain refactoring
#145194
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with nits 👍 Thanks as always for doing these migrations!
(TraversalDirection.right, Axis.vertical) => buttonIsFocused ? _moveToPreviousFocusableTopLevel : _moveToParent, | ||
}; | ||
if (!traversal(anchor)) { | ||
super.invoke(intent); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or maybe this one is the record haha.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reduction of 93 lines 😎
case _SliderAdjustmentType.down: | ||
renderSlider.decreaseAction(); | ||
} | ||
final bool rtl = switch (Directionality.of(_renderObjectKey.currentContext!)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: Maybe just assign the Directionality to a variable, then below do _SliderAdjustmentType.left => directionality == TextDirection.rtl,
etc.?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was set up as a switch expression since the style guide recommends not using ==
with enum values.
But in the case of TextDirection
, there's already an abundance of == TextDirection.rtl
in this repo. And the probability of this enum eventually being expanded into more than two values is pretty much zero.
I'm good with making this change 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!! with nits.
Thanks for this impressive work!
final OutlinedBorder targetBorder = switch (target) { | ||
LerpTarget.circle => const CircleBorder(side: lerpToBorder, eccentricity: 0.5), | ||
LerpTarget.rect => const RoundedRectangleBorder(side: lerpToBorder), | ||
LerpTarget.stadium => const StadiumBorder(side: lerpToBorder), | ||
LerpTarget.polygon => const StarBorder.polygon(side: lerpToBorder, sides: 4), | ||
LerpTarget.star => const StarBorder(side: lerpToBorder, innerRadiusRatio: .5), | ||
LerpTarget.roundedRect => RoundedRectangleBorder(side: lerpToBorder, borderRadius: BorderRadius.circular(10)), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Impressive change!
You know better than me, consider aligning the arrows (it is not always better but in this case It might be).
It was there before but maybe consider replacing .5
with 0.5
(for homogeneity).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good—and I totally missed the 0.5
, thanks for catching that!
(TraversalDirection.right, Axis.vertical) when !rtl => buttonIsFocused ? _moveToSubmenu : _moveToNextFocusableTopLevel, | ||
(TraversalDirection.left, Axis.vertical) when differentParent => _moveToPreviousFocusableTopLevel, | ||
(TraversalDirection.right, Axis.vertical) when differentParent => _moveToPreviousFocusableTopLevel, | ||
(TraversalDirection.left, Axis.vertical) => buttonIsFocused ? _moveToPreviousFocusableTopLevel : _moveToParent, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about how to make it clearer here. When comparing to the previous logic, I feel that having lines 2451/2453/2455 next to each others would be more readable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's actually how I had it a few days ago, and then I switched to this cause I thought it looked just a bit nicer.
Honestly not a huge deal, so I'll go ahead and revert.
flutter/flutter@18340ea...14774b9 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from eba6e31498b8 to 09dadce76828 (1 revision) (flutter/flutter#145603) 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from f9a34ae0b14f to eba6e31498b8 (1 revision) (flutter/flutter#145598) 2024-03-22 nate.w5687@gmail.com Intensive `if` chain refactoring (flutter/flutter#145194) 2024-03-22 leroux_bruno@yahoo.fr Adds numpad navigation shortcuts for Linux (flutter/flutter#145464) 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5a12de1beab7 to f9a34ae0b14f (1 revision) (flutter/flutter#145581) 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from e2f324beac3b to 5a12de1beab7 (1 revision) (flutter/flutter#145578) 2024-03-22 31859944+LongCatIsLooong@users.noreply.github.com Replace `RenderBox.compute*` with `RenderBox.get*` and add `@visibleForOverriding` (flutter/flutter#145503) 2024-03-22 gspencergoog@users.noreply.github.com Add some cross references in the docs, move an example to a dartpad example (flutter/flutter#145571) 2024-03-22 bernaferrari2@gmail.com Fix `BorderSide.none` requiring explicit transparent color for `UnderlineInputBorder` (flutter/flutter#145329) 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from a46a7b273a5b to e2f324beac3b (1 revision) (flutter/flutter#145576) 2024-03-21 goderbauer@google.com Fix nullability of getFullHeightForCaret (flutter/flutter#145554) 2024-03-21 34871572+gmackall@users.noreply.github.com Add a `--no-gradle-generation` mode to the `generate_gradle_lockfiles.dart` script (flutter/flutter#145568) 2024-03-21 engine-flutter-autoroll@skia.org Roll Flutter Engine from 1b842ae58b3d to a46a7b273a5b (2 revisions) (flutter/flutter#145569) 2024-03-21 chingjun@google.com Fixed race condition in PollingDeviceDiscovery. (flutter/flutter#145506) 2024-03-21 engine-flutter-autoroll@skia.org Roll Flutter Engine from a2ed373fa70f to 1b842ae58b3d (1 revision) (flutter/flutter#145565) 2024-03-21 ian@hixie.ch Clarify AutomaticKeepAliveClientMixin semantics in build method (flutter/flutter#145297) 2024-03-21 goderbauer@google.com Eliminate more window singleton usages (flutter/flutter#145560) 2024-03-21 jacksongardner@google.com `flutter test --wasm` support (flutter/flutter#145347) 2024-03-21 engine-flutter-autoroll@skia.org Roll Flutter Engine from eb262e9c34db to a2ed373fa70f (2 revisions) (flutter/flutter#145556) 2024-03-21 engine-flutter-autoroll@skia.org Roll Flutter Engine from bad4a30e1c75 to eb262e9c34db (1 revision) (flutter/flutter#145555) 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 camillesimon@google.com,rmistry@google.com,stuartmorgan@google.com 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
…r#6376) flutter/flutter@18340ea...14774b9 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from eba6e31498b8 to 09dadce76828 (1 revision) (flutter/flutter#145603) 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from f9a34ae0b14f to eba6e31498b8 (1 revision) (flutter/flutter#145598) 2024-03-22 nate.w5687@gmail.com Intensive `if` chain refactoring (flutter/flutter#145194) 2024-03-22 leroux_bruno@yahoo.fr Adds numpad navigation shortcuts for Linux (flutter/flutter#145464) 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5a12de1beab7 to f9a34ae0b14f (1 revision) (flutter/flutter#145581) 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from e2f324beac3b to 5a12de1beab7 (1 revision) (flutter/flutter#145578) 2024-03-22 31859944+LongCatIsLooong@users.noreply.github.com Replace `RenderBox.compute*` with `RenderBox.get*` and add `@visibleForOverriding` (flutter/flutter#145503) 2024-03-22 gspencergoog@users.noreply.github.com Add some cross references in the docs, move an example to a dartpad example (flutter/flutter#145571) 2024-03-22 bernaferrari2@gmail.com Fix `BorderSide.none` requiring explicit transparent color for `UnderlineInputBorder` (flutter/flutter#145329) 2024-03-22 engine-flutter-autoroll@skia.org Roll Flutter Engine from a46a7b273a5b to e2f324beac3b (1 revision) (flutter/flutter#145576) 2024-03-21 goderbauer@google.com Fix nullability of getFullHeightForCaret (flutter/flutter#145554) 2024-03-21 34871572+gmackall@users.noreply.github.com Add a `--no-gradle-generation` mode to the `generate_gradle_lockfiles.dart` script (flutter/flutter#145568) 2024-03-21 engine-flutter-autoroll@skia.org Roll Flutter Engine from 1b842ae58b3d to a46a7b273a5b (2 revisions) (flutter/flutter#145569) 2024-03-21 chingjun@google.com Fixed race condition in PollingDeviceDiscovery. (flutter/flutter#145506) 2024-03-21 engine-flutter-autoroll@skia.org Roll Flutter Engine from a2ed373fa70f to 1b842ae58b3d (1 revision) (flutter/flutter#145565) 2024-03-21 ian@hixie.ch Clarify AutomaticKeepAliveClientMixin semantics in build method (flutter/flutter#145297) 2024-03-21 goderbauer@google.com Eliminate more window singleton usages (flutter/flutter#145560) 2024-03-21 jacksongardner@google.com `flutter test --wasm` support (flutter/flutter#145347) 2024-03-21 engine-flutter-autoroll@skia.org Roll Flutter Engine from eb262e9c34db to a2ed373fa70f (2 revisions) (flutter/flutter#145556) 2024-03-21 engine-flutter-autoroll@skia.org Roll Flutter Engine from bad4a30e1c75 to eb262e9c34db (1 revision) (flutter/flutter#145555) 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 camillesimon@google.com,rmistry@google.com,stuartmorgan@google.com 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
This pull request refactors if-statements into switch expressions, as part of the effort to solve issue #144903.
Making changes beyond just swapping syntax is more difficult (and also more difficult to review, I apologize), but much more satisfying too.