-
Notifications
You must be signed in to change notification settings - Fork 27.5k
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
switch
statement cleanup
#148382
switch
statement cleanup
#148382
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.
Hi @nate-thegrate! I've left a couple comments, and once addressed I will go ahead and approve. Thanks for the work!
} | ||
return null; | ||
return switch (this) { | ||
study => null, |
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.
I am confused as to how GalleryDemoCategory.study
becomes just study
(same for the other values of GalleryDemoCategory
. I can't find where these variables were assigned.
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.
When you're inside a class
declaration, you can use its static members without needing to type out the class name:
class MyClass {
static const value = 42;
void foo() {
print(MyClass.value); // you can use the class name, but it's not necessary
print(value); // it works!
}
}
void foo() {
print(MyClass.value); // name is required outside the class
}
An enum
declaration works the same way:
enum MyEnum {
a,
b,
c;
void foo() {
print('$a $b $c');
}
}
void foo() {
print('${MyEnum.a} ${MyEnum.b} ${MyEnum.c}');
}
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.
Ah, I did not know this was possible. Thanks for enlightening me.
} | ||
throw SerializationException( | ||
'Unsupported wait condition $conditionName in ${waitCondition.serialize()}'); | ||
return switch (conditionName) { |
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.
Is the variable conditionName
still necessary?
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.
Nope! I just have it here because of the line length guideline:
WaitCondition deserializeCondition(SerializableWaitCondition waitCondition) {
return switch (waitCondition.conditionName) {
// ...
final String conditionName => throw SerializationException('Unsupported wait condition $conditionName in ${waitCondition.serialize()}'),
};
Defining the variable beforehand lets us use a _
instead.
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.
+301 -529
is a lot of diffs to go through—thanks for the review and for your attention to detail!
} | ||
return null; | ||
return switch (this) { | ||
study => null, |
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.
When you're inside a class
declaration, you can use its static members without needing to type out the class name:
class MyClass {
static const value = 42;
void foo() {
print(MyClass.value); // you can use the class name, but it's not necessary
print(value); // it works!
}
}
void foo() {
print(MyClass.value); // name is required outside the class
}
An enum
declaration works the same way:
enum MyEnum {
a,
b,
c;
void foo() {
print('$a $b $c');
}
}
void foo() {
print('${MyEnum.a} ${MyEnum.b} ${MyEnum.c}');
}
} | ||
throw SerializationException( | ||
'Unsupported wait condition $conditionName in ${waitCondition.serialize()}'); | ||
return switch (conditionName) { |
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.
Nope! I just have it here because of the line length guideline:
WaitCondition deserializeCondition(SerializableWaitCondition waitCondition) {
return switch (waitCondition.conditionName) {
// ...
final String conditionName => throw SerializationException('Unsupported wait condition $conditionName in ${waitCondition.serialize()}'),
};
Defining the variable beforehand lets us use a _
instead.
flutter/flutter@0d22d91...00425ef 2024-05-17 engine-flutter-autoroll@skia.org Roll Flutter Engine from d575e511f9e5 to a19d3722922d (2 revisions) (flutter/flutter#148534) 2024-05-17 engine-flutter-autoroll@skia.org Roll Flutter Engine from 8d1a1d8d7b48 to d575e511f9e5 (5 revisions) (flutter/flutter#148529) 2024-05-17 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from 6fa734d68688 to 8d1a1d8d7b48 (8 revisions) (flutter/flutter#148528) 2024-05-17 32538273+ValentinVignal@users.noreply.github.com Add test for material_banner.0.dart and material_banner.1.dart (flutter/flutter#148452) 2024-05-17 nate.w5687@gmail.com `switch` statement cleanup (flutter/flutter#148382) 2024-05-16 goderbauer@google.com const vs. non-const widget build benchmark (flutter/flutter#148261) 2024-05-16 49699333+dependabot[bot]@users.noreply.github.com Bump actions/checkout from 4.1.5 to 4.1.6 (flutter/flutter#148516) 2024-05-16 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Flutter Engine from 6fa734d68688 to 1850def2ccff (1 revision) (#148507)" (flutter/flutter#148517) 2024-05-16 stuartmorgan@google.com Add PrivacyInfo.xcprivacy to plugin template (flutter/flutter#148485) 2024-05-16 stuartmorgan@google.com Fix iOS reference in macOS Cocoapods error (flutter/flutter#148506) 2024-05-16 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6fa734d68688 to 1850def2ccff (1 revision) (flutter/flutter#148507) 2024-05-16 engine-flutter-autoroll@skia.org Roll Flutter Engine from 460df6caef0e to 6fa734d68688 (4 revisions) (flutter/flutter#148500) 2024-05-16 nate.w5687@gmail.com Enhanced enum features for `AnimationStatus` (flutter/flutter#147801) 2024-05-16 matej.knopp@gmail.com [macOS] codesign native assets during embed (flutter/flutter#148310) 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 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
flutter/flutter@0d22d91...00425ef 2024-05-17 engine-flutter-autoroll@skia.org Roll Flutter Engine from d575e511f9e5 to a19d3722922d (2 revisions) (flutter/flutter#148534) 2024-05-17 engine-flutter-autoroll@skia.org Roll Flutter Engine from 8d1a1d8d7b48 to d575e511f9e5 (5 revisions) (flutter/flutter#148529) 2024-05-17 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from 6fa734d68688 to 8d1a1d8d7b48 (8 revisions) (flutter/flutter#148528) 2024-05-17 32538273+ValentinVignal@users.noreply.github.com Add test for material_banner.0.dart and material_banner.1.dart (flutter/flutter#148452) 2024-05-17 nate.w5687@gmail.com `switch` statement cleanup (flutter/flutter#148382) 2024-05-16 goderbauer@google.com const vs. non-const widget build benchmark (flutter/flutter#148261) 2024-05-16 49699333+dependabot[bot]@users.noreply.github.com Bump actions/checkout from 4.1.5 to 4.1.6 (flutter/flutter#148516) 2024-05-16 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Flutter Engine from 6fa734d68688 to 1850def2ccff (1 revision) (#148507)" (flutter/flutter#148517) 2024-05-16 stuartmorgan@google.com Add PrivacyInfo.xcprivacy to plugin template (flutter/flutter#148485) 2024-05-16 stuartmorgan@google.com Fix iOS reference in macOS Cocoapods error (flutter/flutter#148506) 2024-05-16 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6fa734d68688 to 1850def2ccff (1 revision) (flutter/flutter#148507) 2024-05-16 engine-flutter-autoroll@skia.org Roll Flutter Engine from 460df6caef0e to 6fa734d68688 (4 revisions) (flutter/flutter#148500) 2024-05-16 nate.w5687@gmail.com Enhanced enum features for `AnimationStatus` (flutter/flutter#147801) 2024-05-16 matej.knopp@gmail.com [macOS] codesign native assets during embed (flutter/flutter#148310) 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 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
flutter/flutter@0d22d91...00425ef 2024-05-17 engine-flutter-autoroll@skia.org Roll Flutter Engine from d575e511f9e5 to a19d3722922d (2 revisions) (flutter/flutter#148534) 2024-05-17 engine-flutter-autoroll@skia.org Roll Flutter Engine from 8d1a1d8d7b48 to d575e511f9e5 (5 revisions) (flutter/flutter#148529) 2024-05-17 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from 6fa734d68688 to 8d1a1d8d7b48 (8 revisions) (flutter/flutter#148528) 2024-05-17 32538273+ValentinVignal@users.noreply.github.com Add test for material_banner.0.dart and material_banner.1.dart (flutter/flutter#148452) 2024-05-17 nate.w5687@gmail.com `switch` statement cleanup (flutter/flutter#148382) 2024-05-16 goderbauer@google.com const vs. non-const widget build benchmark (flutter/flutter#148261) 2024-05-16 49699333+dependabot[bot]@users.noreply.github.com Bump actions/checkout from 4.1.5 to 4.1.6 (flutter/flutter#148516) 2024-05-16 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Flutter Engine from 6fa734d68688 to 1850def2ccff (1 revision) (#148507)" (flutter/flutter#148517) 2024-05-16 stuartmorgan@google.com Add PrivacyInfo.xcprivacy to plugin template (flutter/flutter#148485) 2024-05-16 stuartmorgan@google.com Fix iOS reference in macOS Cocoapods error (flutter/flutter#148506) 2024-05-16 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6fa734d68688 to 1850def2ccff (1 revision) (flutter/flutter#148507) 2024-05-16 engine-flutter-autoroll@skia.org Roll Flutter Engine from 460df6caef0e to 6fa734d68688 (4 revisions) (flutter/flutter#148500) 2024-05-16 nate.w5687@gmail.com Enhanced enum features for `AnimationStatus` (flutter/flutter#147801) 2024-05-16 matej.knopp@gmail.com [macOS] codesign native assets during embed (flutter/flutter#148310) 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 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 PR is step 12 in the journey to solve issue #136139 and make the entire Flutter repo more readable.
Most of it involves implementing switch expressions, and there's also a few other random things that I wanted to clean up a bit.