-
Notifications
You must be signed in to change notification settings - Fork 6k
Sync analysis_options.yaml with flutter/flutter #34986
Changes from all commits
5b9b140
cced9e7
cdbc79a
65eb531
a892e4e
eb115bf
e5d1363
89dc6c0
bf6db94
7279f2b
8e03c63
0ae0242
9bbdb8c
47bb337
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,77 +1,75 @@ | ||
| # Specify analysis options. | ||
| # | ||
| # This file is a copy of analysis_options.yaml from flutter repo | ||
| # as of 2021-03-19, but with: | ||
| # - "always_require_non_null_named_parameters" disabled (because we | ||
| # can't import the meta package from the SDK), | ||
| # - "avoid_equals_and_hash_code_on_mutable_classes" disabled (same reason), | ||
| # - "missing_whitespace_between_adjacent_strings" disabled (too many false | ||
| # positives), | ||
| # - "sort_constructors_first" disabled (because we have private fake | ||
| # constructors), | ||
| # - "prefer_final_fields" disabled (because we do weird things with | ||
| # private fields, especially on the PlatformDispatcher object), | ||
| # - "public_member_api_docs" enabled. | ||
| # as of 2022-07-27, but with some modifications marked with | ||
| # "DIFFERENT FROM FLUTTER/FLUTTER" below. | ||
|
|
||
| analyzer: | ||
| exclude: | ||
| # Fixture depends on dart:ui and raises false positives. | ||
| - flutter_frontend_server/test/fixtures/lib/main.dart | ||
| language: | ||
| strict-casts: true | ||
| strict-raw-types: true | ||
| 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 | ||
| native_function_body_in_non_sdk_code: ignore | ||
| # allow having TODOs in the code | ||
| native_function_body_in_non_sdk_code: ignore # DIFFERENT FROM FLUTTER/FLUTTER | ||
| # allow having TODO comments in the code | ||
| todo: ignore | ||
| # allow dart:ui to import dart:_internal | ||
| import_internal_library: ignore | ||
| import_internal_library: ignore # DIFFERENT FROM FLUTTER/FLUTTER | ||
| # allow self-reference to deprecated members (we do this because otherwise we have | ||
| # to annotate every member in every test, assert, etc, when we deprecate something) | ||
| deprecated_member_use_from_same_package: ignore | ||
| # Turned off until null-safe rollout is complete. | ||
| unnecessary_null_comparison: ignore | ||
| # TODO(goderbauer): remove when https://github.com/dart-lang/sdk/issues/49563 is fixed. | ||
| ffi_native_unexpected_number_of_parameters: ignore | ||
| ffi_native_unexpected_number_of_parameters: ignore # DIFFERENT FROM FLUTTER/FLUTTER | ||
|
|
||
| linter: | ||
| rules: | ||
| # these rules are documented on and in the same order as | ||
| # the Dart Lint rules page to make maintenance easier | ||
| # This list is derived from the list of all available lints located at | ||
| # https://github.com/dart-lang/linter/blob/master/example/all.yaml | ||
| - always_declare_return_types | ||
| - always_put_control_body_on_new_line | ||
| # - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219 | ||
| # - always_require_non_null_named_parameters # DIFFERENT FROM FLUTTER/FLUTTER | ||
| - always_require_non_null_named_parameters | ||
| - always_specify_types | ||
| # - always_use_package_imports # we do this commonly | ||
| - annotate_overrides | ||
| # - avoid_annotating_with_dynamic # conflicts with always_specify_types | ||
| - avoid_bool_literals_in_conditional_expressions | ||
| # - avoid_catches_without_on_clauses # we do this commonly | ||
| # - avoid_catching_errors # we do this commonly | ||
| - avoid_classes_with_only_static_members # We want to avoid classes that can be instantiated but only have statics | ||
| # - avoid_double_and_int_checks # only useful when targeting JS runtime | ||
| # - avoid_dynamic_calls # not yet tested | ||
| # - avoid_catches_without_on_clauses # blocked on https://github.com/dart-lang/linter/issues/3023 | ||
| # - avoid_catching_errors # blocked on https://github.com/dart-lang/linter/issues/3023 | ||
| - avoid_classes_with_only_static_members | ||
| - avoid_double_and_int_checks | ||
| - avoid_dynamic_calls | ||
| - avoid_empty_else | ||
| # - avoid_equals_and_hash_code_on_mutable_classes # DIFFERENT FROM FLUTTER/FLUTTER | ||
| # - avoid_escaping_inner_quotes # not yet tested | ||
| # - avoid_equals_and_hash_code_on_mutable_classes # DIFFERENT FROM FLUTTER/FLUTTER (can't import the meta package here) | ||
| - avoid_escaping_inner_quotes | ||
| - avoid_field_initializers_in_const_classes | ||
| # - avoid_final_parameters # incompatible with prefer_final_parameters | ||
| - avoid_function_literals_in_foreach_calls | ||
| # - avoid_implementing_value_types # not yet tested | ||
| - avoid_implementing_value_types | ||
| - avoid_init_to_null | ||
| # - avoid_js_rounded_ints # only useful when targeting JS runtime | ||
| - avoid_js_rounded_ints | ||
| # - avoid_multiple_declarations_per_line # seems to be a stylistic choice we don't subscribe to | ||
| - avoid_null_checks_in_equality_operators | ||
| # - avoid_positional_boolean_parameters # not yet tested | ||
| # - avoid_print # not yet tested | ||
| # - avoid_positional_boolean_parameters # would have been nice to enable this but by now there's too many places that break it | ||
| - avoid_print | ||
| # - avoid_private_typedef_functions # we prefer having typedef (discussion in https://github.com/flutter/flutter/pull/16356) | ||
| # - avoid_redundant_argument_values # not yet tested | ||
| - avoid_redundant_argument_values | ||
| - avoid_relative_lib_imports | ||
| - avoid_renaming_method_parameters | ||
| - avoid_return_types_on_setters | ||
| # - avoid_returning_null # there are plenty of valid reasons to return null | ||
| # - avoid_returning_null_for_future # not yet tested | ||
| # - avoid_returning_null # still violated by some pre-nnbd code that we haven't yet migrated | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What code have we not migrated? Can we make sure an issue is filed for this?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is just syncing over from flutter/flutter and that's what we have there. Happy to take another look at this particular lint in a follow-up.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. SGTM, we should be fully NNBD in this repo (except for flutter_frontend_server and a couple stray files in fuchsia embedding.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Trying to turn this on in #35015 to see what (if anything) breaks. |
||
| - avoid_returning_null_for_future | ||
| - avoid_returning_null_for_void | ||
| # - avoid_returning_this # there are plenty of valid reasons to return this | ||
| # - avoid_setters_without_getters # not yet tested | ||
| # - avoid_returning_this # there are enough valid reasons to return `this` that this lint ends up with too many false positives | ||
| - avoid_setters_without_getters | ||
| - avoid_shadowing_type_parameters | ||
| - avoid_single_cascade_in_expression_statements | ||
| - avoid_slow_async_io | ||
|
|
@@ -81,51 +79,59 @@ linter: | |
| - avoid_unnecessary_containers | ||
| - avoid_unused_constructor_parameters | ||
| - avoid_void_async | ||
| # - avoid_web_libraries_in_flutter # not yet tested | ||
| # - avoid_web_libraries_in_flutter # we use web libraries in web-specific code, and our tests prevent us from using them elsewhere | ||
| - await_only_futures | ||
| - camel_case_extensions | ||
| - camel_case_types | ||
| - cancel_subscriptions | ||
| # - cascade_invocations # not yet tested | ||
| # - cascade_invocations # doesn't match the typical style of this repo | ||
| - cast_nullable_to_non_nullable | ||
| # - close_sinks # not reliable enough | ||
| - combinators_ordering | ||
| # - comment_references # blocked on https://github.com/dart-lang/linter/issues/1142 | ||
| # - conditional_uri_does_not_exist # not yet tested | ||
| # - constant_identifier_names # needs an opt-out https://github.com/dart-lang/linter/issues/204 | ||
| - control_flow_in_finally | ||
| # - curly_braces_in_flow_control_structures # not required by flutter style | ||
| - curly_braces_in_flow_control_structures | ||
| - depend_on_referenced_packages | ||
| - deprecated_consistency | ||
| # - diagnostic_describe_all_properties # not yet tested | ||
| # - diagnostic_describe_all_properties # enabled only at the framework level (packages/flutter/lib) | ||
| - directives_ordering | ||
| # - do_not_use_environment # we do this commonly | ||
| # - discarded_futures # not yet tested | ||
| # - do_not_use_environment # there are appropriate times to use the environment, especially in our tests and build logic | ||
| - empty_catches | ||
| - empty_constructor_bodies | ||
| - empty_statements | ||
| - eol_at_end_of_file | ||
| - exhaustive_cases | ||
| - file_names | ||
| - flutter_style_todos | ||
| - hash_and_equals | ||
| - implementation_imports | ||
| # - invariant_booleans # too many false positives: https://github.com/dart-lang/linter/issues/811 | ||
| - iterable_contains_unrelated_type | ||
| # - join_return_with_assignment # not required by flutter style | ||
| - leading_newlines_in_multiline_strings | ||
| - library_names | ||
| - library_prefixes | ||
| - library_private_types_in_public_api | ||
| # - lines_longer_than_80_chars # not required by flutter style | ||
| - list_remove_unrelated_type | ||
| # - literal_only_boolean_expressions # too many false positives: https://github.com/dart-lang/sdk/issues/34181 | ||
| # - missing_whitespace_between_adjacent_strings # DIFFERENT FROM FLUTTER/FLUTTER | ||
| # - literal_only_boolean_expressions # too many false positives: https://github.com/dart-lang/linter/issues/453 | ||
| # - missing_whitespace_between_adjacent_strings # DIFFERENT FROM FLUTTER/FLUTTER (too many false positives) | ||
| - no_adjacent_strings_in_list | ||
| # - no_default_cases # too many false positives | ||
| - no_default_cases | ||
| - no_duplicate_case_values | ||
| - no_leading_underscores_for_library_prefixes | ||
| - no_leading_underscores_for_local_identifiers | ||
| - no_logic_in_create_state | ||
| # - no_runtimeType_toString # ok in tests; we enable this only in packages/ | ||
| - non_constant_identifier_names | ||
| - noop_primitive_operations | ||
| - null_check_on_nullable_type_parameter | ||
| - null_closures | ||
| # - 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 | ||
| - only_throw_errors # this does get disabled in a few places where we have legacy code that uses strings et al | ||
| - overridden_fields | ||
| - package_api_docs | ||
| - package_names | ||
|
|
@@ -145,9 +151,10 @@ linter: | |
| # - prefer_double_quotes # opposite of prefer_single_quotes | ||
| - 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 # DIFFERENT FROM FLUTTER/FLUTTER | ||
| # - prefer_final_fields # DIFFERENT FROM FLUTTER/FLUTTER (we do weird things with private fields, especially on the PlatformDispatcher object) | ||
| - prefer_final_in_for_each | ||
| - prefer_final_locals | ||
| # - prefer_final_parameters # we should enable this one day when it can be auto-fixed (https://github.com/dart-lang/linter/issues/3104), see also parameter_assignments | ||
| - prefer_for_elements_to_map_fromIterable | ||
| - prefer_foreach | ||
| - prefer_function_declarations_over_variables | ||
|
|
@@ -157,64 +164,78 @@ linter: | |
| - prefer_initializing_formals | ||
| - prefer_inlined_adds | ||
| # - prefer_int_literals # conflicts with https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#use-double-literals-for-double-constants | ||
| # - prefer_interpolation_to_compose_strings # doesn't work with raw strings, see https://github.com/dart-lang/linter/issues/2490 | ||
| - prefer_interpolation_to_compose_strings | ||
| - prefer_is_empty | ||
| - prefer_is_not_empty | ||
| - prefer_is_not_operator | ||
| - prefer_iterable_whereType | ||
| # - prefer_mixin # https://github.com/dart-lang/language/issues/32 | ||
| # - prefer_mixin # Has false positives, see https://github.com/dart-lang/linter/issues/3018 | ||
| # - prefer_null_aware_method_calls # "call()" is confusing to people new to the language since it's not documented anywhere | ||
| - prefer_null_aware_operators | ||
| # - prefer_relative_imports # incompatible with sub-package imports | ||
| - prefer_relative_imports | ||
| - prefer_single_quotes | ||
| - prefer_spread_collections | ||
| - prefer_typing_uninitialized_variables | ||
| - prefer_void_to_null | ||
| - provide_deprecation_message | ||
| - public_member_api_docs # DIFFERENT FROM FLUTTER/FLUTTER | ||
| - recursive_getters | ||
| # - require_trailing_commas # blocked on https://github.com/dart-lang/sdk/issues/47441 | ||
| - secure_pubspec_urls | ||
| - sized_box_for_whitespace | ||
| # - sized_box_shrink_expand # not yet tested | ||
| - slash_for_doc_comments | ||
| # - sort_child_properties_last # not yet tested | ||
| # - sort_constructors_first # DIFFERENT FROM FLUTTER/FLUTTER | ||
| - sort_child_properties_last | ||
| # - sort_constructors_first # DIFFERENT FROM FLUTTER/FLUTTER (we have private fake constructors) | ||
| # - sort_pub_dependencies # prevents separating pinned transitive dependencies | ||
| - sort_unnamed_constructors_first | ||
| - test_types_in_equals | ||
| - throw_in_finally | ||
| - tighten_type_of_initializing_formals | ||
| # - type_annotate_public_apis # subset of always_specify_types | ||
| - type_init_formals | ||
| # - unawaited_futures # too many false positives | ||
| # - unawaited_futures # too many false positives, especially with the way AnimationController works | ||
| - unnecessary_await_in_return | ||
| - unnecessary_brace_in_string_interps | ||
| - unnecessary_const | ||
| - unnecessary_constructor_name | ||
| # - unnecessary_final # conflicts with prefer_final_locals | ||
| - unnecessary_getters_setters | ||
| # - unnecessary_lambdas # has false positives: https://github.com/dart-lang/linter/issues/498 | ||
| - unnecessary_late | ||
| - unnecessary_new | ||
| - unnecessary_null_aware_assignments | ||
| # - unnecessary_null_checks # not yet tested | ||
| - unnecessary_null_aware_operator_on_extension_on_nullable | ||
| - unnecessary_null_checks | ||
| - unnecessary_null_in_if_null_operators | ||
| - unnecessary_nullable_for_final_variable_declarations | ||
| - unnecessary_overrides | ||
| - unnecessary_parenthesis | ||
| # - unnecessary_raw_strings # not yet tested | ||
| # - unnecessary_raw_strings # what's "necessary" is a matter of opinion; consistency across strings can help readability more than this lint | ||
| - unnecessary_statements | ||
| - unnecessary_string_escapes | ||
| - unnecessary_string_interpolations | ||
| - unnecessary_this | ||
| - unnecessary_to_list_in_spreads | ||
| - unrelated_type_equality_checks | ||
| # - unsafe_html # not yet tested | ||
| - unsafe_html | ||
| - use_build_context_synchronously | ||
| # - use_colored_box # not yet tested | ||
| # - use_decorated_box # not yet tested | ||
| # - use_enums # not yet tested | ||
| - use_full_hex_values_for_flutter_colors | ||
| - use_function_type_syntax_for_parameters | ||
| # - use_if_null_to_convert_nulls_to_bools # not yet tested | ||
| - use_if_null_to_convert_nulls_to_bools | ||
| - use_is_even_rather_than_modulo | ||
| - use_key_in_widget_constructors | ||
| # - use_late_for_private_fields_and_variables # not yet tested | ||
| # - use_named_constants # not yet tested | ||
| - use_late_for_private_fields_and_variables | ||
| - use_named_constants | ||
| - use_raw_strings | ||
| - use_rethrow_when_possible | ||
| # - use_setters_to_change_properties # not yet tested | ||
| - use_setters_to_change_properties | ||
| # - use_string_buffers # has false positives: https://github.com/dart-lang/sdk/issues/34182 | ||
| - use_super_parameters | ||
| - use_test_throws_matchers | ||
| # - use_to_and_as_if_applicable # has false positives, so we prefer to catch this by code-review | ||
| - valid_regexps | ||
| - void_checks | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,2 +1,2 @@ | ||
| Signature: 74a4a38b60ff642fdbf8f9427f6f8532 | ||
| Signature: d232ec47cb6d61b7385bf1ef936a93c4 | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -21,6 +21,7 @@ dependencies: | |
| meta: any | ||
| path: any | ||
| process_runner: any | ||
| process: any | ||
|
|
||
| dependency_overrides: | ||
| args: | ||
|
|
||
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.
We shouldn't need this anymore now that we're on FfiNative.
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.
Mind if I remove this in a follow-up?
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.
Trying to turn this on in #35015 to see what (if anything) breaks.