This repository has been archived by the owner on Feb 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9.8k
[all] Switch to pedantic analysis rules #2300
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,138 +1,9 @@ | ||
# Specify analysis options. | ||
# | ||
# Until there are meta linter rules, each desired lint must be explicitly enabled. | ||
# See: https://github.com/dart-lang/linter/issues/288 | ||
# | ||
# For a list of lints, see: http://dart-lang.github.io/linter/lints/ | ||
# See the configuration guide for more | ||
# https://github.com/dart-lang/sdk/tree/master/pkg/analyzer#configuring-the-analyzer | ||
# | ||
# NOTE: Please keep this file in sync with | ||
# https://github.com/flutter/flutter/blob/master/analysis_options.yaml | ||
|
||
include: package:pedantic/analysis_options.yaml | ||
analyzer: | ||
language: | ||
strict-inference: true | ||
strict-raw-types: true | ||
strong-mode: | ||
implicit-dynamic: false | ||
errors: | ||
# treat missing required parameters as a warning (not a hint) | ||
missing_required_param: warning | ||
# treat missing returns as a warning (not a hint) | ||
missing_return: warning | ||
# allow having TODOs in the code | ||
todo: ignore | ||
exclude: | ||
- 'bin/cache/**' | ||
# the following two are relative to the stocks example and the flutter package respectively | ||
# see https://github.com/dart-lang/sdk/issues/28463 | ||
- 'lib/i18n/stock_messages_*.dart' | ||
- 'lib/src/http/**' | ||
|
||
# Ignore generated files | ||
- '**/*.g.dart' | ||
- 'lib/src/generated/*.dart' | ||
linter: | ||
rules: | ||
# these rules are documented on and in the same order as | ||
# the Dart Lint rules page to make maintenance easier | ||
# http://dart-lang.github.io/linter/lints/ | ||
|
||
# === error rules === | ||
- avoid_empty_else | ||
- avoid_slow_async_io | ||
- cancel_subscriptions | ||
# - close_sinks # https://github.com/flutter/flutter/issues/5789 | ||
# - comment_references # blocked on https://github.com/dart-lang/dartdoc/issues/1153 | ||
- control_flow_in_finally | ||
- empty_statements | ||
- hash_and_equals | ||
# - invariant_booleans # https://github.com/flutter/flutter/issues/5790 | ||
- iterable_contains_unrelated_type | ||
- list_remove_unrelated_type | ||
# - literal_only_boolean_expressions # https://github.com/flutter/flutter/issues/5791 | ||
- no_adjacent_strings_in_list | ||
- no_duplicate_case_values | ||
- test_types_in_equals | ||
- throw_in_finally | ||
- unrelated_type_equality_checks | ||
- valid_regexps | ||
|
||
# === style rules === | ||
- always_declare_return_types | ||
# - always_put_control_body_on_new_line | ||
- always_require_non_null_named_parameters | ||
- always_specify_types | ||
- annotate_overrides | ||
# - avoid_annotating_with_dynamic # not yet tested | ||
- avoid_as | ||
# - avoid_catches_without_on_clauses # not yet tested | ||
# - avoid_catching_errors # not yet tested | ||
# - avoid_classes_with_only_static_members # not yet tested | ||
# - avoid_function_literals_in_foreach_calls # not yet tested | ||
- avoid_init_to_null | ||
- avoid_null_checks_in_equality_operators | ||
# - avoid_positional_boolean_parameters # not yet tested | ||
- avoid_return_types_on_setters | ||
# - avoid_returning_null # not yet tested | ||
# - avoid_returning_this # not yet tested | ||
# - avoid_setters_without_getters # not yet tested | ||
# - avoid_types_on_closure_parameters # not yet tested | ||
- await_only_futures | ||
- camel_case_types | ||
# - cascade_invocations # not yet tested | ||
# - constant_identifier_names # https://github.com/dart-lang/linter/issues/204 | ||
- directives_ordering | ||
- empty_catches | ||
- empty_constructor_bodies | ||
- implementation_imports | ||
# - join_return_with_assignment # not yet tested | ||
- library_names | ||
- library_prefixes | ||
- non_constant_identifier_names | ||
# - omit_local_variable_types # opposite of always_specify_types | ||
# - one_member_abstracts # too many false positives | ||
# - only_throw_errors # https://github.com/flutter/flutter/issues/5792 | ||
- overridden_fields | ||
- package_api_docs | ||
- package_prefixed_library_names | ||
# - parameter_assignments # we do this commonly | ||
- prefer_adjacent_string_concatenation | ||
- prefer_collection_literals | ||
# - prefer_conditional_assignment # not yet tested | ||
- prefer_const_constructors | ||
# - prefer_constructors_over_static_methods # not yet tested | ||
- prefer_contains | ||
- prefer_equal_for_default_values | ||
# - prefer_expression_function_bodies # conflicts with https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#consider-using--for-short-functions-and-methods | ||
# - prefer_final_fields # https://github.com/dart-lang/linter/issues/506 | ||
- prefer_final_locals | ||
# - prefer_foreach # not yet tested | ||
# - prefer_function_declarations_over_variables # not yet tested | ||
- prefer_initializing_formals | ||
# - prefer_interpolation_to_compose_strings # not yet tested | ||
- prefer_is_empty | ||
- prefer_is_not_empty | ||
- prefer_void_to_null | ||
# - recursive_getters # https://github.com/dart-lang/linter/issues/452 | ||
- slash_for_doc_comments | ||
- sort_constructors_first | ||
- sort_unnamed_constructors_first | ||
# - type_annotate_public_apis # subset of always_specify_types | ||
- type_init_formals | ||
# - unawaited_futures # https://github.com/flutter/flutter/issues/5793 | ||
- unnecessary_brace_in_string_interps | ||
- unnecessary_const | ||
- unnecessary_getters_setters | ||
# - unnecessary_lambdas # https://github.com/dart-lang/linter/issues/498 | ||
- unnecessary_new | ||
- unnecessary_null_aware_assignments | ||
- unnecessary_null_in_if_null_operators | ||
# - unnecessary_overrides # https://github.com/dart-lang/linter/issues/626 and https://github.com/dart-lang/linter/issues/627 | ||
- unnecessary_statements | ||
- unnecessary_this | ||
- use_rethrow_when_possible | ||
# - use_setters_to_change_properties # not yet tested | ||
# - use_string_buffers # https://github.com/dart-lang/linter/pull/664 | ||
# - use_to_and_as_if_applicable # has false positives, so we prefer to catch this by code-review | ||
|
||
# === pub rules === | ||
- package_names | ||
- public_member_api_docs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
analyzer: | ||
errors: | ||
public_member_api_docs: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,11 @@ | ||
# This exists to add a lint for missing API docs just on this specific package, | ||
# since not all packages have coverage for all their public members yet and | ||
# adding it in would be non-trivial. `public_member_api_docs` should be applied | ||
# to new packages going forward, and ideally the main `analysis_options.yaml` | ||
# file as soon as possible. | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
linter: | ||
rules: | ||
- public_member_api_docs | ||
analyzer: | ||
errors: | ||
avoid_relative_lib_imports: ignore | ||
unawaited_futures: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
analyzer: | ||
errors: | ||
public_member_api_docs: ignore | ||
unawaited_futures: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
analyzer: | ||
errors: | ||
public_member_api_docs: ignore | ||
unawaited_futures: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,10 @@ | ||
# This exists to add a lint for missing API docs just on this specific package, | ||
# since not all packages have coverage for all their public members yet and | ||
# adding it in would be non-trivial. `public_member_api_docs` should be applied | ||
# to new packages going forward, and ideally the main `analysis_options.yaml` | ||
# file as soon as possible. | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
linter: | ||
rules: | ||
- public_member_api_docs | ||
analyzer: | ||
errors: | ||
unawaited_futures: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
analyzer: | ||
errors: | ||
public_member_api_docs: ignore | ||
unawaited_futures: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
analyzer: | ||
errors: | ||
public_member_api_docs: ignore | ||
unawaited_futures: ignore |
2 changes: 2 additions & 0 deletions
2
packages/flutter_plugin_android_lifecycle/example/lib/main.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
analyzer: | ||
errors: | ||
public_member_api_docs: ignore | ||
unawaited_futures: ignore |
11 changes: 11 additions & 0 deletions
11
packages/google_sign_in/google_sign_in/analysis_options.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../../analysis_options.yaml | ||
|
||
analyzer: | ||
errors: | ||
public_member_api_docs: ignore | ||
unawaited_futures: ignore |
10 changes: 10 additions & 0 deletions
10
packages/google_sign_in/google_sign_in_platform_interface/analysis_options.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../../analysis_options.yaml | ||
|
||
analyzer: | ||
errors: | ||
public_member_api_docs: ignore |
15 changes: 11 additions & 4 deletions
15
packages/google_sign_in/google_sign_in_web/analysis_options.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,12 @@ | ||
# Exclude auto-generated files from analysis/linting | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../../analysis_options.yaml | ||
|
||
analyzer: | ||
exclude: | ||
- "lib/src/generated/**" | ||
|
||
errors: | ||
public_member_api_docs: ignore | ||
unused_element: ignore | ||
unawaited_futures: ignore |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,16 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
analyzer: | ||
exclude: | ||
- lib/**/*.g.dart # Ignore generated files | ||
errors: | ||
avoid_init_to_null: ignore | ||
prefer_is_empty: ignore | ||
prefer_is_not_empty: ignore | ||
public_member_api_docs: ignore | ||
type_init_formals: ignore | ||
unnecessary_new: ignore | ||
unawaited_futures: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# This is a temporary file to allow us to land a new set of linter rules in a | ||
# series of manageable patches instead of one gigantic PR. It disables some of | ||
# the new lints that are already failing on this plugin, for this plugin. It | ||
# should be deleted and the failing lints addressed as soon as possible. | ||
|
||
include: ../../analysis_options.yaml | ||
|
||
analyzer: | ||
errors: | ||
public_member_api_docs: ignore | ||
unawaited_futures: ignore |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Originally I tried putting in an
analysis_options.yaml
for this plugin like everywhere else, but for some reason this particular plugin was having issues importing thepedantic
package transitively when runningpub global tuneup
. No idea why as the package was showing as included in thepubspec.lock
and nothing looked different from any of the other packages. Seems like some kind of bug to me in pub or the linter to me. I'm just working around it by putting the ignores in the source code directly instead. It's not ideal, but it shouldn't matter since in the long term this should be fixed anyway.