-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Make constraints a covariant argument in RenderBox.computeDryLayout() #136432
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
Make constraints a covariant argument in RenderBox.computeDryLayout() #136432
Conversation
f11b154 to
d7bf11e
Compare
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.
Looks like the analyzer is unhappy with something.
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.
Here and elsewhere: Did you mean to add @protected to all the overrides? We usually don't do that...
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 like we maybe should, though, since to my surprise the override doesn't seem to inherit it...
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.
Yeah to my surprise I discovered the same a couple months ago -- when you override a protected method and don't re-add the annotation, you inadvertently make the method public. So I figured while I was in here... 🙂
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 filed dart-lang/sdk#53745 to track this
Some render box subclasses have a specific layout contract that is tightly coupled with other render box subclasses (e.g. two private classes in a local project file). In these cases, it is also possible that they use a constraints object that is a subclass of `BoxConstraints`. To allow for this, this change makes the `constraints` argument to `RenderBox.computeDryLayout()` a covariant argument. For completeness' sake, this updates the other render objects in the rendering package to also use the covariant keyword for this argument.
3645ffd to
35928e9
Compare
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
Roll Flutter from 83134ac to 3865e49 (80 revisions) flutter/flutter@83134ac...3865e49 2023-10-13 [email protected] Roll Flutter Engine from e94f191d0ba4 to f9aed0267352 (2 revisions) (flutter/flutter#136537) 2023-10-13 [email protected] Roll Flutter Engine from 40ddc30b9d6c to e94f191d0ba4 (1 revision) (flutter/flutter#136532) 2023-10-13 [email protected] Roll Flutter Engine from 5acdac549034 to 40ddc30b9d6c (1 revision) (flutter/flutter#136526) 2023-10-13 [email protected] Roll Flutter Engine from b59d779d4f7f to 5acdac549034 (2 revisions) (flutter/flutter#136523) 2023-10-13 [email protected] Roll Flutter Engine from dc30b4cd0239 to b59d779d4f7f (2 revisions) (flutter/flutter#136521) 2023-10-13 [email protected] Roll Flutter Engine from 31ec5e31a914 to dc30b4cd0239 (1 revision) (flutter/flutter#136518) 2023-10-13 [email protected] Roll Flutter Engine from 7a6172e9d34c to 31ec5e31a914 (1 revision) (flutter/flutter#136516) 2023-10-13 [email protected] Roll Flutter Engine from ffb3b5b67f61 to 7a6172e9d34c (1 revision) (flutter/flutter#136515) 2023-10-13 [email protected] SearchAnchor should dispose created FocusNode and SearchController. (flutter/flutter#136120) 2023-10-13 [email protected] Roll Flutter Engine from dee90f16aacd to ffb3b5b67f61 (2 revisions) (flutter/flutter#136506) 2023-10-13 [email protected] Make constraints a covariant argument in RenderBox.computeDryLayout() (flutter/flutter#136432) 2023-10-12 [email protected] [web] remove loading indicator in -d web-server builds (flutter/flutter#136482) 2023-10-12 [email protected] Roll Flutter Engine from cb37ebc81939 to dee90f16aacd (3 revisions) (flutter/flutter#136502) 2023-10-12 [email protected] Roll Flutter Engine from 7eb20a09073e to cb37ebc81939 (2 revisions) (flutter/flutter#136492) 2023-10-12 [email protected] [SingleChildScrollView] Correct the offset pixels if it is out of range during layout (flutter/flutter#136239) 2023-10-12 [email protected] Allow `TapRegion` to consume tap events (flutter/flutter#136305) 2023-10-12 [email protected] Fix doc TODO (flutter/flutter#136485) 2023-10-12 [email protected] Roll Flutter Engine from f02006736390 to 7eb20a09073e (4 revisions) (flutter/flutter#136478) 2023-10-12 [email protected] Bump file,process,process_runner (flutter/flutter#136418) 2023-10-12 [email protected] Roll Flutter Engine from 664657d32992 to f02006736390 (3 revisions) (flutter/flutter#136467) 2023-10-12 [email protected] Fix PageView API doc sample fails on Desktop and Web (flutter/flutter#135910) 2023-10-12 [email protected] Add `--trace-to-file` option to `flutter run` (flutter/flutter#135713) 2023-10-12 [email protected] [flutter_tools] handle ERROR_INVALID_FUNCTION when trying to symlink across drives (flutter/flutter#136424) 2023-10-12 [email protected] Updates references to `finders.dart` in `controller.dart` to use a namespace. (flutter/flutter#136423) 2023-10-12 [email protected] Change some tests to run on macs without iOS devices attached (flutter/flutter#136463) 2023-10-12 [email protected] Roll Packages from 4b483f2 to 93c3f69 (9 revisions) (flutter/flutter#136461) 2023-10-12 [email protected] Fix typo in function name (flutter/flutter#136273) 2023-10-12 [email protected] Fix chip widgets don't the apply provided `iconTheme` (flutter/flutter#135751) 2023-10-12 [email protected] Roll Flutter Engine from 33a6d21b3364 to 664657d32992 (2 revisions) (flutter/flutter#136450) 2023-10-12 [email protected] Roll Flutter Engine from d00fabf0b919 to 33a6d21b3364 (5 revisions) (flutter/flutter#136442) 2023-10-12 [email protected] Roll Flutter Engine from 05e26c1b2c79 to d00fabf0b919 (5 revisions) (flutter/flutter#136431) 2023-10-12 [email protected] Floating `SnackBar` should always float above the bottom widgets (flutter/flutter#136411) 2023-10-12 [email protected] SearchBar should listen to changes to the SearchController and update suggestions on change (flutter/flutter#134337) 2023-10-11 [email protected] Allow latest pkg:material_color_utilities (flutter/flutter#132445) 2023-10-11 [email protected] Roll Flutter Engine from 8bf1460892c6 to 05e26c1b2c79 (3 revisions) (flutter/flutter#136422) 2023-10-11 [email protected] Create template for umbrella issues (flutter/flutter#134235) 2023-10-11 [email protected] [Windows Arm64] Add the 'platform_channel_sample_test_windows' Devicelab test (flutter/flutter#136401) 2023-10-11 [email protected] Roll Flutter Engine from 2b1b4b97f787 to 8bf1460892c6 (4 revisions) (flutter/flutter#136414) 2023-10-11 [email protected] Stop recommending android sdk root (flutter/flutter#136296) 2023-10-11 [email protected] Roll Flutter Engine from 5fcc16772cdd to 2b1b4b97f787 (1 revision) (flutter/flutter#136404) 2023-10-11 [email protected] Switch to Chrome for Testing instead of vanilla Chromium. (flutter/flutter#136214) 2023-10-11 [email protected] Reland "Switch flutter_tools to run frontend server from AOT snapshot" (flutter/flutter#136282) 2023-10-11 [email protected] Roll Flutter Engine from 4b02631b59bf to 5fcc16772cdd (2 revisions) (flutter/flutter#136397) 2023-10-11 [email protected] Fix some deprecation details (flutter/flutter#136385) 2023-10-11 [email protected] Roll Flutter Engine from ed67e8aa9aba to 4b02631b59bf (1 revision) (flutter/flutter#136392) 2023-10-11 [email protected] [leak-tracking] Add leak tracking in test/rendering - 1 (flutter/flutter#136275) ...
Some render box subclasses have a specific layout contract that is tightly coupled with other render box subclasses (e.g. two private classes in a local project file). In these cases, it is also possible that they use a constraints object that is a subclass of
BoxConstraints. To allow for this, this change makes theconstraintsargument toRenderBox.computeDryLayout()a covariant argument.For completeness' sake, this updates the other render objects in the rendering package to also use the covariant keyword for this argument.
Pre-launch Checklist
///).