-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[various] Update Swift plugins for non-nullable generics #7742
[various] Update Swift plugins for non-nullable generics #7742
Conversation
required this.allowsMultipleSelection, | ||
required this.canChooseDirectories, | ||
required this.canChooseFiles, | ||
required this.baseOptions, |
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.
Since this change is non-obvious: Pigeon used to basically discard the constructor, so none of this mattered. With the update:
- some code failed analysis because it was passing default values, and I decided I preferred having the call site across the Pigeon boundary be very explicit about the settings in each method, and
- the
const SavePanelOptions()
didn't compile because const-ness isn't preserved into the Pigeon-generated Dart code.
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 const-ness something we'd like?
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.
Could be worth considering, since having data classes be unmodifiable is often useful. It would add some complexity to native generators though since we'd need to make setters conditionally generated.
I can split this into three PRs if folks prefer, I just figured since we get more compiler support for the change with Swift, there aren't too many, and they are relatively small, I'd try batching them. |
2ccc25f
to
2e01a36
Compare
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.
Looks good! Did you run into any issues?
required this.allowsMultipleSelection, | ||
required this.canChooseDirectories, | ||
required this.canChooseFiles, | ||
required this.baseOptions, |
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 const-ness something we'd like?
I'll let you know once I see whether any regression issues are filed 😅 But it was easy to update. With strongly typed generic enforcement on both sides, the compilers did most of the work for me. |
flutter/packages@429650f...05bf1d4 2024-10-04 [email protected] [various] Update Swift plugins for non-nullable generics (flutter/packages#7742) 2024-10-04 [email protected] [url_launcher] Update Android Pigeon (flutter/packages#7744) 2024-10-04 [email protected] [xdg_directories] Add `stateHome` property (flutter/packages#7766) 2024-10-03 [email protected] [file_selector] Update Android Pigeon for non-nullable generics (flutter/packages#7781) 2024-10-03 [email protected] [go_router] Relax subroute path requirements (allow root and child routes to have the same path forms ) (flutter/packages#7647) 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-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: 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
Updates Swift-based plugins to the current version of Pigeon:
These are done as a batch since the Swift plugins are unusual among our plugins in having strong typing changes on the native side, making them easier to do mechanically.
Part of flutter/flutter#155891
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style, or this PR is exempt from CHANGELOG changes.///
).