Implementing switch expressions in rendering/#143812
Implementing switch expressions in rendering/#143812auto-submit[bot] merged 5 commits intoflutter:masterfrom
switch expressions in rendering/#143812Conversation
|
@Piinks can you take a look at this one since it is mostly slivers and scrolling? |
For sure! |
| @@ -792,19 +780,15 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl | |||
| } else { | |||
| final BoxConstraints innerConstraints; | |||
| if (crossAxisAlignment == CrossAxisAlignment.stretch) { | |||
There was a problem hiding this comment.
Hmm, this caught my eye. It is an enum without an exhaustive switch statement!
Do you think crossAxisAlignment and _direction can be used together?
I think there is one other if (crossAxisAlignment == CrossAxisAlignment.stretch) { in this file too if it seems feasible to alter the loci to be exhaustive.
What do you think?
There was a problem hiding this comment.
I think that sounds great 🙂👍
I updated _computeSizes() to get rid of every == enum comparison. Really happy with how it looks now!
| final Size childSize; | ||
| final Offset scrollOffset; |
There was a problem hiding this comment.
Could these be combined into a record for one switch statement? I noticed that in packages/flutter/lib/src/rendering/paragraph.dart in this PR. :)
There was a problem hiding this comment.
Yes they could! I had them combined originally but the line length was a bit much.
But after looking over it again, I think we could make it work by inverting the if-statement, so it returns early instead of indenting the whole function.
While I'm at it, I'll refactor position into an exhaustive switch statement too :)
flutter/flutter@b77560e...c30f998 2024-02-27 [email protected] [flutter_tools] Fix missing stack trace from daemon (flutter/flutter#144113) 2024-02-27 [email protected] Roll Flutter Engine from 04ff2868ce80 to 0bc21ea7bc92 (21 revisions) (flutter/flutter#144208) 2024-02-26 [email protected] Move debugShowWidgetInspectorOverride (flutter/flutter#144029) 2024-02-26 [email protected] Allow `Listenable.merge()` to use any iterable (flutter/flutter#143675) 2024-02-26 [email protected] Mark firebase_release_smoke_test as `bringup: true` (flutter/flutter#144186) 2024-02-26 [email protected] refactor: Differentiate pubspec and resolution errors for plugins (flutter/flutter#142035) 2024-02-26 [email protected] Roll Flutter Engine from 34a8b9bdaaac to 04ff2868ce80 (1 revision) (flutter/flutter#144159) 2024-02-26 [email protected] Implementing `switch` expressions in `rendering/` (flutter/flutter#143812) 2024-02-26 [email protected] Roll Flutter Engine from 7a573c21a4ad to 34a8b9bdaaac (1 revision) (flutter/flutter#144147) 2024-02-26 [email protected] Roll Flutter Engine from a15326b2c439 to 7a573c21a4ad (1 revision) (flutter/flutter#144145) 2024-02-26 [email protected] Update copyDirectory to allow links to not be followed (flutter/flutter#144040) 2024-02-26 [email protected] Roll Packages from 7df2085 to 353086c (7 revisions) (flutter/flutter#144144) 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
flutter/flutter@b77560e...c30f998 2024-02-27 [email protected] [flutter_tools] Fix missing stack trace from daemon (flutter/flutter#144113) 2024-02-27 [email protected] Roll Flutter Engine from 04ff2868ce80 to 0bc21ea7bc92 (21 revisions) (flutter/flutter#144208) 2024-02-26 [email protected] Move debugShowWidgetInspectorOverride (flutter/flutter#144029) 2024-02-26 [email protected] Allow `Listenable.merge()` to use any iterable (flutter/flutter#143675) 2024-02-26 [email protected] Mark firebase_release_smoke_test as `bringup: true` (flutter/flutter#144186) 2024-02-26 [email protected] refactor: Differentiate pubspec and resolution errors for plugins (flutter/flutter#142035) 2024-02-26 [email protected] Roll Flutter Engine from 34a8b9bdaaac to 04ff2868ce80 (1 revision) (flutter/flutter#144159) 2024-02-26 [email protected] Implementing `switch` expressions in `rendering/` (flutter/flutter#143812) 2024-02-26 [email protected] Roll Flutter Engine from 7a573c21a4ad to 34a8b9bdaaac (1 revision) (flutter/flutter#144147) 2024-02-26 [email protected] Roll Flutter Engine from a15326b2c439 to 7a573c21a4ad (1 revision) (flutter/flutter#144145) 2024-02-26 [email protected] Update copyDirectory to allow links to not be followed (flutter/flutter#144040) 2024-02-26 [email protected] Roll Packages from 7df2085 to 353086c (7 revisions) (flutter/flutter#144144) 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
This pull request is part of the effort to solve issue #136139.
The previous
switchexpressions PR was comprised of many simple changes throughoutflutter/lib/src/, but due to some more in-depth refactoring influtter/lib/src/rendering/, I decided to submit the changes to this directory as a separate pull request.There was really just one function that I changed significantly; I'll add a comment for explanation.
Pre-launch Checklist
///).