Skip to content

[ Tool ] Enable omit_obvious_*_types and specify_nonobvious_*_types lints #172018

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

Merged
merged 5 commits into from
Jul 11, 2025

Conversation

bkonyi
Copy link
Contributor

@bkonyi bkonyi commented Jul 11, 2025

Sources under packages/flutter_tools/ aren't accessible to the average Flutter user by navigating through sources from their projects, so it doesn't need to be as explicitly verbose with types for readability purposes. The always_specify_types lint results in extremely verbose code within the tool which adds little value.

This change disables always_specify_types in favor of a new set of lints that aim to reduce verbosity by removing obvious types while also maintaining readability in cases where variable types otherwise wouldn't be obvious:

  • omit_obvious_local_variable_types
  • omit_obvious_property_types
  • specify_nonobvious_local_variable_types
  • specify_nonobvious_property_types

…s` lints

Sources under `packages/flutter_tools/` aren't accessible to the average Flutter user by navigating through sources from their projects, so it doesn't need to be as explicitly verbose with types for readability purposes. The `always_specify_types` lint results in extremely verbose code within the tool which adds little value.

This change disables `always_specify_types` in favor of a new set of lints that aim to reduce verbosity by removing obvious types while also maintaining readability in cases where variable types otherwise wouldn't be obvious:

  - `omit_obvious_local_variable_types`
  - `omit_obvious_property_types`
  - `specify_nonobvious_local_variable_types`
  - `specify_nonobvious_property_types`
@bkonyi bkonyi requested a review from matanlurey July 11, 2025 17:02
@bkonyi bkonyi requested review from a team as code owners July 11, 2025 17:02
@github-actions github-actions bot added platform-ios iOS applications specifically tool Affects the "flutter" command-line tool. See also t: labels. a: desktop Running on desktop team-android Owned by Android platform team team-ios Owned by iOS platform team labels Jul 11, 2025
@bkonyi bkonyi added the autosubmit Merge PR when tree becomes green via auto submit App label Jul 11, 2025
Copy link
Member

@jtmcdole jtmcdole left a comment

Choose a reason for hiding this comment

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

lgtm-seinfeld

Copy link
Contributor

auto-submit bot commented Jul 11, 2025

autosubmit label was removed for flutter/flutter/172018, because - The status or check suite Linux analyzer_benchmark has failed. Please fix the issues identified (or deflake) before re-applying this label.

@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jul 11, 2025
@bkonyi bkonyi added the autosubmit Merge PR when tree becomes green via auto submit App label Jul 11, 2025
Copy link
Contributor

auto-submit bot commented Jul 11, 2025

autosubmit label was removed for flutter/flutter/172018, because - The status or check suite ci.yaml validation has failed. Please fix the issues identified (or deflake) before re-applying this label.

@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jul 11, 2025
@matanlurey
Copy link
Contributor

matanlurey commented Jul 11, 2025

Oof, we got into a bad state due to a duplicate commit being pushed :(

We can either push a blank commit, or if you're feeling good, force submit this.

@bkonyi
Copy link
Contributor Author

bkonyi commented Jul 11, 2025

Oof, we got into a bad state due to a duplicate commit being pushed :(

We can either push a blank commit, or if you're feeling good, force submit this.

Assuming everything else passes...

image

@bkonyi
Copy link
Contributor Author

bkonyi commented Jul 11, 2025

Didn't realize the checks weren't actually running 🤦. I've done a merge to kick off a new run.

@bkonyi bkonyi added the autosubmit Merge PR when tree becomes green via auto submit App label Jul 11, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Jul 11, 2025
Merged via the queue into master with commit 1709c88 Jul 11, 2025
154 checks passed
@auto-submit auto-submit bot deleted the flutter_tools_no_always_specify_types_real branch July 11, 2025 20:00
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jul 11, 2025
justinmc pushed a commit to justinmc/flutter that referenced this pull request Jul 11, 2025
…s` lints (flutter#172018)

Sources under `packages/flutter_tools/` aren't accessible to the average
Flutter user by navigating through sources from their projects, so it
doesn't need to be as explicitly verbose with types for readability
purposes. The `always_specify_types` lint results in extremely verbose
code within the tool which adds little value.

This change disables `always_specify_types` in favor of a new set of
lints that aim to reduce verbosity by removing obvious types while also
maintaining readability in cases where variable types otherwise wouldn't
be obvious:

  - `omit_obvious_local_variable_types`
  - `omit_obvious_property_types`
  - `specify_nonobvious_local_variable_types`
  - `specify_nonobvious_property_types`
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 12, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jul 12, 2025
Roll Flutter from 43657f3baa17 to 35f197f1e5f5 (39 revisions)

flutter/flutter@43657f3...35f197f

2025-07-12 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 8aoEy1hp2a9HI1pt-... to xQlbHCUI33kDvkew8... (flutter/flutter#172060)
2025-07-12 dkwingsmt@users.noreply.github.com Add RSuperellipse support to Web (global cache) (flutter/flutter#171489)
2025-07-12 87506348+jingshao-code@users.noreply.github.com Fix grammar: Change 'A' to 'An' before IOSSystemContextMenuItemData (flutter/flutter#172019)
2025-07-11 jason-simmons@users.noreply.github.com Manual roll Dart to b21dca1b89ff (flutter/flutter#172038)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from 2ea2ba09ef85 to 92354f64e37f (1 revision) (flutter/flutter#172039)
2025-07-11 zhongliu88889@gmail.com Fix CheckedPopupMenuItem semantics to use menuItemCheckbox role with checked state (flutter/flutter#171749)
2025-07-11 30870216+gaaclarke@users.noreply.github.com adds gemini.md to `engine` and `licenses_cpp` (flutter/flutter#172022)
2025-07-11 737941+loic-sharma@users.noreply.github.com [Web] Implement disabling interactive selection (flutter/flutter#171935)
2025-07-11 737941+loic-sharma@users.noreply.github.com [tool] Make google3 have to override feature flags (flutter/flutter#171933)
2025-07-11 30870216+gaaclarke@users.noreply.github.com License cpp 710 (flutter/flutter#171989)
2025-07-11 muhatashim@google.com add content description to tooltip-only nodes for android (flutter/flutter#171541)
2025-07-11 jhy03261997@gmail.com [Web a11y]Update table cell to use LabelRepresentation.sizedSpan  (flutter/flutter#172013)
2025-07-11 bkonyi@google.com [ Tool ] Enable `omit_obvious_*_types` and `specify_nonobvious_*_types` lints (flutter/flutter#172018)
2025-07-11 zhongliu88889@gmail.com Add SemanticsLabelBuilder for Accessible Label Concatenation (flutter/flutter#171683)
2025-07-11 15619084+vashworth@users.noreply.github.com Run tests on either macOS 14 or 15 (flutter/flutter#171076)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from db1a5550c848 to 2ea2ba09ef85 (1 revision) (flutter/flutter#172017)
2025-07-11 dkwingsmt@users.noreply.github.com [Cupertino] Make some widgets no longer use RSuperellipse (flutter/flutter#171830)
2025-07-11 jason-simmons@users.noreply.github.com Detach the resource context from the IO thread only if the shell's IO manager is no longer being used by any other spawned shells (flutter/flutter#171554)
2025-07-11 30870216+gaaclarke@users.noreply.github.com Started querying the app state for the gpu disabled sync switch (flutter/flutter#171785)
2025-07-11 30870216+gaaclarke@users.noreply.github.com License_cpp 7/02 (flutter/flutter#171558)
2025-07-11 sokolovskyi.konstantin@gmail.com [web] Refactor clipboard. (flutter/flutter#171427)
2025-07-11 matanlurey@users.noreply.github.com Require 64-bit Windows (flutter/flutter#171925)
2025-07-11 mdebbar@google.com Run hot_reload_with_asset_web_test.dart on Mac/Windows (flutter/flutter#171280)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from da7e3eae7c2b to db1a5550c848 (2 revisions) (flutter/flutter#171999)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from 26571c3b1771 to da7e3eae7c2b (2 revisions) (flutter/flutter#171997)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from 34a40032ff0a to 26571c3b1771 (1 revision) (flutter/flutter#171995)
2025-07-11 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from lO64ePNEGrGzs-MFC... to 8aoEy1hp2a9HI1pt-... (flutter/flutter#171993)
2025-07-10 pranav072bex@ioepc.edu.np Remove redundant ThemeData(useMaterial3: true) from tests (flutter/flutter#171569)
2025-07-10 jessiewong401@gmail.com [Android 16] Updated linux_android_emu to a 36 AVD in framework CI (flutter/flutter#169121)
2025-07-10 87506348+jingshao-code@users.noreply.github.com [iOS] Add Live Text option to system context menu (flutter/flutter#170969)
2025-07-10 engine-flutter-autoroll@skia.org Roll Skia from dc3da09ca905 to 34a40032ff0a (1 revision) (flutter/flutter#171982)
2025-07-10 pedromassango.developer@gmail.com feat: Expose FocusNode of FocusTraversalGroup (flutter/flutter#171979)
2025-07-10 alex.medinsh@gmail.com `CupertinoDatePicker` and `CupertinoTimerPicker` new onChanged behavior (flutter/flutter#170793)
2025-07-10 jason-simmons@users.noreply.github.com Manual roll Dart SDK from 8d69b07b9d9d to 07ea3aaaadf0 (32 revisions) (flutter/flutter#171969)
2025-07-10 34465683+rkishan516@users.noreply.github.com Style: Rename pageBuilder with builder in showCupertinoSheet (flutter/flutter#170625)
2025-07-10 engine-flutter-autoroll@skia.org Roll Skia from bdb8bfcde7f3 to dc3da09ca905 (3 revisions) (flutter/flutter#171971)
2025-07-10 34465683+rkishan516@users.noreply.github.com Feat: Add foreground color for cupertino button (flutter/flutter#170898)
2025-07-10 engine-flutter-autoroll@skia.org Roll Skia from 0fef076beec3 to bdb8bfcde7f3 (34 revisions) (flutter/flutter#171964)
2025-07-10 mdebbar@google.com Run stateless_stateful_hot_reload_web_test.dart on Mac/Windows (flutter/flutter#171283)

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 louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

...
azatech pushed a commit to azatech/flutter that referenced this pull request Jul 28, 2025
…s` lints (flutter#172018)

Sources under `packages/flutter_tools/` aren't accessible to the average
Flutter user by navigating through sources from their projects, so it
doesn't need to be as explicitly verbose with types for readability
purposes. The `always_specify_types` lint results in extremely verbose
code within the tool which adds little value.

This change disables `always_specify_types` in favor of a new set of
lints that aim to reduce verbosity by removing obvious types while also
maintaining readability in cases where variable types otherwise wouldn't
be obvious:

  - `omit_obvious_local_variable_types`
  - `omit_obvious_property_types`
  - `specify_nonobvious_local_variable_types`
  - `specify_nonobvious_property_types`
vashworth pushed a commit to vashworth/packages that referenced this pull request Jul 30, 2025
…r#9602)

Roll Flutter from 43657f3baa17 to 35f197f1e5f5 (39 revisions)

flutter/flutter@43657f3...35f197f

2025-07-12 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 8aoEy1hp2a9HI1pt-... to xQlbHCUI33kDvkew8... (flutter/flutter#172060)
2025-07-12 dkwingsmt@users.noreply.github.com Add RSuperellipse support to Web (global cache) (flutter/flutter#171489)
2025-07-12 87506348+jingshao-code@users.noreply.github.com Fix grammar: Change 'A' to 'An' before IOSSystemContextMenuItemData (flutter/flutter#172019)
2025-07-11 jason-simmons@users.noreply.github.com Manual roll Dart to b21dca1b89ff (flutter/flutter#172038)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from 2ea2ba09ef85 to 92354f64e37f (1 revision) (flutter/flutter#172039)
2025-07-11 zhongliu88889@gmail.com Fix CheckedPopupMenuItem semantics to use menuItemCheckbox role with checked state (flutter/flutter#171749)
2025-07-11 30870216+gaaclarke@users.noreply.github.com adds gemini.md to `engine` and `licenses_cpp` (flutter/flutter#172022)
2025-07-11 737941+loic-sharma@users.noreply.github.com [Web] Implement disabling interactive selection (flutter/flutter#171935)
2025-07-11 737941+loic-sharma@users.noreply.github.com [tool] Make google3 have to override feature flags (flutter/flutter#171933)
2025-07-11 30870216+gaaclarke@users.noreply.github.com License cpp 710 (flutter/flutter#171989)
2025-07-11 muhatashim@google.com add content description to tooltip-only nodes for android (flutter/flutter#171541)
2025-07-11 jhy03261997@gmail.com [Web a11y]Update table cell to use LabelRepresentation.sizedSpan  (flutter/flutter#172013)
2025-07-11 bkonyi@google.com [ Tool ] Enable `omit_obvious_*_types` and `specify_nonobvious_*_types` lints (flutter/flutter#172018)
2025-07-11 zhongliu88889@gmail.com Add SemanticsLabelBuilder for Accessible Label Concatenation (flutter/flutter#171683)
2025-07-11 15619084+vashworth@users.noreply.github.com Run tests on either macOS 14 or 15 (flutter/flutter#171076)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from db1a5550c848 to 2ea2ba09ef85 (1 revision) (flutter/flutter#172017)
2025-07-11 dkwingsmt@users.noreply.github.com [Cupertino] Make some widgets no longer use RSuperellipse (flutter/flutter#171830)
2025-07-11 jason-simmons@users.noreply.github.com Detach the resource context from the IO thread only if the shell's IO manager is no longer being used by any other spawned shells (flutter/flutter#171554)
2025-07-11 30870216+gaaclarke@users.noreply.github.com Started querying the app state for the gpu disabled sync switch (flutter/flutter#171785)
2025-07-11 30870216+gaaclarke@users.noreply.github.com License_cpp 7/02 (flutter/flutter#171558)
2025-07-11 sokolovskyi.konstantin@gmail.com [web] Refactor clipboard. (flutter/flutter#171427)
2025-07-11 matanlurey@users.noreply.github.com Require 64-bit Windows (flutter/flutter#171925)
2025-07-11 mdebbar@google.com Run hot_reload_with_asset_web_test.dart on Mac/Windows (flutter/flutter#171280)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from da7e3eae7c2b to db1a5550c848 (2 revisions) (flutter/flutter#171999)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from 26571c3b1771 to da7e3eae7c2b (2 revisions) (flutter/flutter#171997)
2025-07-11 engine-flutter-autoroll@skia.org Roll Skia from 34a40032ff0a to 26571c3b1771 (1 revision) (flutter/flutter#171995)
2025-07-11 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from lO64ePNEGrGzs-MFC... to 8aoEy1hp2a9HI1pt-... (flutter/flutter#171993)
2025-07-10 pranav072bex@ioepc.edu.np Remove redundant ThemeData(useMaterial3: true) from tests (flutter/flutter#171569)
2025-07-10 jessiewong401@gmail.com [Android 16] Updated linux_android_emu to a 36 AVD in framework CI (flutter/flutter#169121)
2025-07-10 87506348+jingshao-code@users.noreply.github.com [iOS] Add Live Text option to system context menu (flutter/flutter#170969)
2025-07-10 engine-flutter-autoroll@skia.org Roll Skia from dc3da09ca905 to 34a40032ff0a (1 revision) (flutter/flutter#171982)
2025-07-10 pedromassango.developer@gmail.com feat: Expose FocusNode of FocusTraversalGroup (flutter/flutter#171979)
2025-07-10 alex.medinsh@gmail.com `CupertinoDatePicker` and `CupertinoTimerPicker` new onChanged behavior (flutter/flutter#170793)
2025-07-10 jason-simmons@users.noreply.github.com Manual roll Dart SDK from 8d69b07b9d9d to 07ea3aaaadf0 (32 revisions) (flutter/flutter#171969)
2025-07-10 34465683+rkishan516@users.noreply.github.com Style: Rename pageBuilder with builder in showCupertinoSheet (flutter/flutter#170625)
2025-07-10 engine-flutter-autoroll@skia.org Roll Skia from bdb8bfcde7f3 to dc3da09ca905 (3 revisions) (flutter/flutter#171971)
2025-07-10 34465683+rkishan516@users.noreply.github.com Feat: Add foreground color for cupertino button (flutter/flutter#170898)
2025-07-10 engine-flutter-autoroll@skia.org Roll Skia from 0fef076beec3 to bdb8bfcde7f3 (34 revisions) (flutter/flutter#171964)
2025-07-10 mdebbar@google.com Run stateless_stateful_hot_reload_web_test.dart on Mac/Windows (flutter/flutter#171283)

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 louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 16, 2025
ksokolovskyi pushed a commit to ksokolovskyi/flutter that referenced this pull request Aug 19, 2025
…s` lints (flutter#172018)

Sources under `packages/flutter_tools/` aren't accessible to the average
Flutter user by navigating through sources from their projects, so it
doesn't need to be as explicitly verbose with types for readability
purposes. The `always_specify_types` lint results in extremely verbose
code within the tool which adds little value.

This change disables `always_specify_types` in favor of a new set of
lints that aim to reduce verbosity by removing obvious types while also
maintaining readability in cases where variable types otherwise wouldn't
be obvious:

  - `omit_obvious_local_variable_types`
  - `omit_obvious_property_types`
  - `specify_nonobvious_local_variable_types`
  - `specify_nonobvious_property_types`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: desktop Running on desktop platform-ios iOS applications specifically team-android Owned by Android platform team team-ios Owned by iOS 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