Skip to content

[CP-beta] Enable the avoid_final_parameters lint. (#185216)#186199

Merged
auto-submit[bot] merged 2 commits into
flutter:flutter-3.44-candidate.0from
walley892:dart-lint
May 7, 2026
Merged

[CP-beta] Enable the avoid_final_parameters lint. (#185216)#186199
auto-submit[bot] merged 2 commits into
flutter:flutter-3.44-candidate.0from
walley892:dart-lint

Conversation

@walley892

@walley892 walley892 commented May 7, 2026

Copy link
Copy Markdown
Contributor

Manual cherry pick of #185216 so we can update the dart deps to https://dart.googlesource.com/sdk/+/refs/heads/lkgr-beta

`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
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label May 7, 2026
@flutter-dashboard

Copy link
Copy Markdown

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.

@github-actions github-actions Bot added a: text input Entering text in a text field or keyboard related problems tool Affects the "flutter" command-line tool. See also t: labels. framework flutter/packages/flutter repository. See also f: labels. engine flutter/engine related. See also e: labels. a: animation Animation APIs f: material design flutter/packages/flutter/material repository. f: scrolling Viewports, list views, slivers, etc. platform-windows Building on or for Windows specifically d: examples Sample code and demos platform-web Web applications specifically a: desktop Running on desktop team-windows Owned by the Windows platform team labels May 7, 2026
@walley892 walley892 marked this pull request as ready for review May 7, 2026 17:35
@walley892 walley892 requested a review from a team as a code owner May 7, 2026 17:35

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

LongCatIsLooong
LongCatIsLooong previously approved these changes May 7, 2026
@walley892 walley892 added the autosubmit Merge PR when tree becomes green via auto submit App label May 7, 2026
@auto-submit auto-submit Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label May 7, 2026
@auto-submit

auto-submit Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

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.

@walley892 walley892 added CICD Run CI/CD autosubmit Merge PR when tree becomes green via auto submit App labels May 7, 2026
@auto-submit auto-submit Bot merged commit 009ba9e into flutter:flutter-3.44-candidate.0 May 7, 2026
175 checks passed
@walley892 walley892 added the revert Autorevert PR (with "Reason for revert:" comment) label May 8, 2026
@auto-submit

auto-submit Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

A reason for requesting a revert of flutter/flutter/186199 could
not be found or the reason was not properly formatted. Begin a comment with 'Reason for revert:' to tell the bot why
this issue is being reverted.

@auto-submit auto-submit Bot removed the revert Autorevert PR (with "Reason for revert:" comment) label May 8, 2026
@walley892

Copy link
Copy Markdown
Contributor Author

Reason for revert: change not ncessary for correct dart version roll

@walley892 walley892 added the revert Autorevert PR (with "Reason for revert:" comment) label May 8, 2026
@auto-submit

auto-submit Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

Unable to create the revert pull request due to ProcessException: Standard out
Auto-merging analysis_options.yaml
Auto-merging engine/src/flutter/lib/web_ui/test/ui/scene_builder_test.dart
Auto-merging examples/multiple_windows/lib/app/popup_button.dart
CONFLICT (content): Merge conflict in examples/multiple_windows/lib/app/popup_button.dart
Auto-merging examples/multiple_windows/lib/app/tooltip_button.dart
CONFLICT (content): Merge conflict in examples/multiple_windows/lib/app/tooltip_button.dart
Auto-merging packages/flutter/lib/src/animation/animation_style.dart
Auto-merging packages/flutter/lib/src/widgets/editable_text.dart
Auto-merging packages/flutter/lib/src/widgets/selectable_region.dart
Auto-merging packages/flutter/test/material/text_field_test.dart
Standard error
error: could not revert 009ba9e... [CP-beta] Enable the avoid_final_parameters lint. (#185216) (#186199)
hint: After resolving the conflicts, mark them with
hint: "git add/rm ", then run
hint: "git revert --continue".
hint: You can instead skip this commit with "git revert --skip".
hint: To abort and get back to the state before "git revert",
hint: run "git revert --abort".
hint: Disable this message with "git config advice.mergeConflict false"
Command: git revert --no-edit -m 1 009ba9e

@auto-submit auto-submit Bot removed the revert Autorevert PR (with "Reason for revert:" comment) label May 8, 2026
auto-submit Bot pushed a commit that referenced this pull request May 8, 2026
#186270)

Reverts #186199. These lint changes aren't necessary for the intended dart version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: animation Animation APIs a: desktop Running on desktop a: text input Entering text in a text field or keyboard related problems autosubmit Merge PR when tree becomes green via auto submit App CICD Run CI/CD d: examples Sample code and demos engine flutter/engine related. See also e: labels. f: material design flutter/packages/flutter/material repository. f: scrolling Viewports, list views, slivers, etc. framework flutter/packages/flutter repository. See also f: labels. platform-web Web applications specifically platform-windows Building on or for Windows specifically team-windows Owned by the Windows platform team tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants