[CP-beta] Enable the avoid_final_parameters lint. (#185216)#186199
Conversation
`avoid_final_parameters` lint fires when using a `final` modifier in any parameter list. This is a preparatory lint that helps us migrate to Dart 3.13. All violations from this lint will become compile-time errors in Dart 3.13 when the primary constructors feature ships. Fixes: dart-lang/sdk#62590 **Related to breaking changes:** There should be nothing that breaks from adding this lint. Function types with `final` are already a compile-time error and any customers overriding a method with a `final` parameter won't break their code. ``` // Framework code class C { void m(int x) { ... } // Removed var here. } ``` ``` // ... // User code class B implements C { void m(final int x) { ... } // Will still work. } ``` This change should be test exempt. - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
|
This pull request was opened from and to a release candidate branch. This should only be done as part of the official Flutter release process. If you are attempting to make a regular contribution to the Flutter project, please close this PR and follow the instructions at Tree Hygiene for detailed instructions on contributing to Flutter. Reviewers: Use caution before merging pull requests to release branches. Ensure the proper procedure has been followed. |
There was a problem hiding this comment.
Code Review
This pull request re-enables the avoid_final_parameters lint in analysis_options.yaml and removes the final keyword from function and method parameters across the repository to ensure consistency with the updated linting rules. I have no feedback to provide.
|
autosubmit label was removed for flutter/flutter/186199, because - The status or check suite Linux analyze has failed. Please fix the issues identified (or deflake) before re-applying this label. |
009ba9e
into
flutter:flutter-3.44-candidate.0
|
A reason for requesting a revert of flutter/flutter/186199 could |
|
Reason for revert: change not ncessary for correct dart version roll |
|
Unable to create the revert pull request due to ProcessException: Standard out |
Manual cherry pick of #185216 so we can update the dart deps to https://dart.googlesource.com/sdk/+/refs/heads/lkgr-beta