-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Implementing null-aware operators throughout the repository #143804
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
Implementing null-aware operators throughout the repository #143804
Conversation
justinmc
left a comment
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 👍. 200+ lines saved! Thanks for all of these code migrations. Out of curiosity are you using scripts or regexes or something to help do this?
| return box.size.width; | ||
| } | ||
| return _kWidth; // drawer not being shown currently | ||
| // set to _kWidth if drawer not being shown currently |
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: "Return _kWidth if drawer not being shown currently."
|
|
||
| return rootProject.android.getEmbeddingVersion().toString().split('.').last; | ||
| })(); | ||
| late final String? _androidEmbeddingVersion = _rootProject?.android.getEmbeddingVersion().toString().split('.').last; |
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 really wonder why this was done in a self calling function in the first place... Maybe just to limit the scope of the variables?
Thanks very much! I've just been using VS Code's built-in regex search to look for potential stuff to improve. |
|
Ah got it. Maybe at some point we can add analyzer/lint rules for stuff like this. |
goderbauer
left a comment
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
|
BEAUTIFUL |
flutter/flutter@39585e6...f6c1082 2024-02-24 [email protected] Roll Flutter Engine from 81035b7d56ef to 1d7d5e613d7e (1 revision) (flutter/flutter#144085) 2024-02-24 [email protected] Roll Flutter Engine from a148bdb63740 to 81035b7d56ef (2 revisions) (flutter/flutter#144083) 2024-02-24 [email protected] Roll Flutter Engine from 3c036c081534 to a148bdb63740 (1 revision) (flutter/flutter#144077) 2024-02-24 [email protected] Roll Flutter Engine from 738042295f97 to 3c036c081534 (2 revisions) (flutter/flutter#144073) 2024-02-24 [email protected] Roll Flutter Engine from ca2452074a49 to 738042295f97 (4 revisions) (flutter/flutter#144071) 2024-02-24 [email protected] Roll Flutter Engine from 9409b75e8f35 to ca2452074a49 (2 revisions) (flutter/flutter#144068) 2024-02-24 [email protected] Adding support for DDC modules when running Flutter Web in debug mode (flutter/flutter#141423) 2024-02-24 [email protected] Roll Flutter Engine from 733163c4e5d7 to 9409b75e8f35 (1 revision) (flutter/flutter#144061) 2024-02-23 [email protected] allow optional direct injection of Config instance into DevFS (flutter/flutter#144002) 2024-02-23 [email protected] Enable asset transformation for `flutter build` for iOS, Android, Windows, MacOS, Linux, and web (also `flutter run` without hot reload support) (flutter/flutter#143815) 2024-02-23 [email protected] Roll Flutter Engine from 5d1c0d4dc327 to 733163c4e5d7 (1 revision) (flutter/flutter#144058) 2024-02-23 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.24.4 to 3.24.5 (flutter/flutter#144059) 2024-02-23 49699333+dependabot[bot]@users.noreply.github.com Bump codecov/codecov-action from 4.0.1 to 4.0.2 (flutter/flutter#144060) 2024-02-23 [email protected] Render the warm up frame in a proper rendering process (flutter/flutter#143290) 2024-02-23 [email protected] Roll Flutter Engine from fbc9b889aee9 to 5d1c0d4dc327 (2 revisions) (flutter/flutter#144049) 2024-02-23 [email protected] Roll Flutter Engine from b5bebfe43d29 to fbc9b889aee9 (3 revisions) (flutter/flutter#144041) 2024-02-23 [email protected] disable debug banner in m3 page test apps. (flutter/flutter#143857) 2024-02-23 [email protected] Relands "Changing `TextPainter.getOffsetForCaret` implementation to remove the logarithmic search (#143281)" (reverted in #143801) (flutter/flutter#143954) 2024-02-23 [email protected] Roll Flutter Engine from 5f99a6c3289e to b5bebfe43d29 (1 revision) (flutter/flutter#144035) 2024-02-23 [email protected] Implementing null-aware operators throughout the repository (flutter/flutter#143804) 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@39585e6...f6c1082 2024-02-24 [email protected] Roll Flutter Engine from 81035b7d56ef to 1d7d5e613d7e (1 revision) (flutter/flutter#144085) 2024-02-24 [email protected] Roll Flutter Engine from a148bdb63740 to 81035b7d56ef (2 revisions) (flutter/flutter#144083) 2024-02-24 [email protected] Roll Flutter Engine from 3c036c081534 to a148bdb63740 (1 revision) (flutter/flutter#144077) 2024-02-24 [email protected] Roll Flutter Engine from 738042295f97 to 3c036c081534 (2 revisions) (flutter/flutter#144073) 2024-02-24 [email protected] Roll Flutter Engine from ca2452074a49 to 738042295f97 (4 revisions) (flutter/flutter#144071) 2024-02-24 [email protected] Roll Flutter Engine from 9409b75e8f35 to ca2452074a49 (2 revisions) (flutter/flutter#144068) 2024-02-24 [email protected] Adding support for DDC modules when running Flutter Web in debug mode (flutter/flutter#141423) 2024-02-24 [email protected] Roll Flutter Engine from 733163c4e5d7 to 9409b75e8f35 (1 revision) (flutter/flutter#144061) 2024-02-23 [email protected] allow optional direct injection of Config instance into DevFS (flutter/flutter#144002) 2024-02-23 [email protected] Enable asset transformation for `flutter build` for iOS, Android, Windows, MacOS, Linux, and web (also `flutter run` without hot reload support) (flutter/flutter#143815) 2024-02-23 [email protected] Roll Flutter Engine from 5d1c0d4dc327 to 733163c4e5d7 (1 revision) (flutter/flutter#144058) 2024-02-23 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.24.4 to 3.24.5 (flutter/flutter#144059) 2024-02-23 49699333+dependabot[bot]@users.noreply.github.com Bump codecov/codecov-action from 4.0.1 to 4.0.2 (flutter/flutter#144060) 2024-02-23 [email protected] Render the warm up frame in a proper rendering process (flutter/flutter#143290) 2024-02-23 [email protected] Roll Flutter Engine from fbc9b889aee9 to 5d1c0d4dc327 (2 revisions) (flutter/flutter#144049) 2024-02-23 [email protected] Roll Flutter Engine from b5bebfe43d29 to fbc9b889aee9 (3 revisions) (flutter/flutter#144041) 2024-02-23 [email protected] disable debug banner in m3 page test apps. (flutter/flutter#143857) 2024-02-23 [email protected] Relands "Changing `TextPainter.getOffsetForCaret` implementation to remove the logarithmic search (#143281)" (reverted in #143801) (flutter/flutter#143954) 2024-02-23 [email protected] Roll Flutter Engine from 5f99a6c3289e to b5bebfe43d29 (1 revision) (flutter/flutter#144035) 2024-02-23 [email protected] Implementing null-aware operators throughout the repository (flutter/flutter#143804) 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
Hopefully soon, [flutter.dev/go/dart-patterns](https://flutter.dev/go/dart-patterns) will have lots of good feedback; in the meantime, I'll focus refactoring efforts on uncontroversial things :) Previously, I was under the impression that I could solve issue #143803 with [just 1 PR](#143804). It turns out that I had overlooked quite a bit! <br> ```dart // before if (chunkEvents != null) { chunkEvents.listen((ImageChunkEvent event) { reportImageChunkEvent(event); }, ); } // after chunkEvents?.listen(reportImageChunkEvent); ```
Hopefully soon, [flutter.dev/go/dart-patterns](https://flutter.dev/go/dart-patterns) will have lots of good feedback; in the meantime, I'll focus refactoring efforts on uncontroversial things :) Previously, I was under the impression that I could solve issue flutter#143803 with [just 1 PR](flutter#143804). It turns out that I had overlooked quite a bit! <br> ```dart // before if (chunkEvents != null) { chunkEvents.listen((ImageChunkEvent event) { reportImageChunkEvent(event); }, ); } // after chunkEvents?.listen(reportImageChunkEvent); ```
Hopefully soon, [flutter.dev/go/dart-patterns](https://flutter.dev/go/dart-patterns) will have lots of good feedback; in the meantime, I'll focus refactoring efforts on uncontroversial things :) Previously, I was under the impression that I could solve issue flutter#143803 with [just 1 PR](flutter#143804). It turns out that I had overlooked quite a bit! <br> ```dart // before if (chunkEvents != null) { chunkEvents.listen((ImageChunkEvent event) { reportImageChunkEvent(event); }, ); } // after chunkEvents?.listen(reportImageChunkEvent); ```
This pull request fixes #143803 by taking advantage of Dart's null-aware operators.
And unlike
switchexpressions (9 PRs and counting), the Flutter codebase is already fantastic when it comes to null-aware coding. After refactoring the entire repo, all the changes involving?.and??can fit into a single pull request.Pre-launch Checklist
///).