# This is copy of the root analysis_options.yaml. As we clean up the Web code,
# we'll be uncommenting rules and gradually fix the code. When all rules are
# uncommented, we'll delete this file and simply inherit the root options.

analyzer:
  strong-mode:
    # TODO(uncomment) implicit-casts: false
    implicit-dynamic: false
  errors:
    missing_required_param: warning
    missing_return: warning
    native_function_body_in_non_sdk_code: ignore
    todo: ignore

linter:
  rules:
    - always_declare_return_types
    - always_put_control_body_on_new_line
    # TODO(uncomment) - always_specify_types
    # TODO(uncomment) - annotate_overrides
    # TODO(uncomment) - avoid_classes_with_only_static_members
    # TODO(uncomment) - avoid_empty_else
    # TODO(uncomment) - avoid_function_literals_in_foreach_calls
    # TODO(uncomment) - avoid_init_to_null
    # TODO(uncomment) - avoid_null_checks_in_equality_operators
    # TODO(uncomment) - avoid_relative_lib_imports
    # TODO(uncomment) - avoid_renaming_method_parameters
    # TODO(uncomment) - avoid_return_types_on_setters
    # TODO(uncomment) - avoid_slow_async_io
    # TODO(uncomment) - await_only_futures
    # TODO(uncomment) - camel_case_types
    # TODO(uncomment) - cancel_subscriptions
    # TODO(uncomment) - control_flow_in_finally
    # TODO(uncomment) - directives_ordering
    # TODO(uncomment) - empty_catches
    # TODO(uncomment) - empty_constructor_bodies
    # TODO(uncomment) - empty_statements
    # TODO(uncomment) - hash_and_equals
    # TODO(uncomment) - implementation_imports
    # TODO(uncomment) - iterable_contains_unrelated_type
    # TODO(uncomment) - library_names
    # TODO(uncomment) - library_prefixes
    # TODO(uncomment) - list_remove_unrelated_type
    # TODO(uncomment) - no_adjacent_strings_in_list
    # TODO(uncomment) - no_duplicate_case_values
    # TODO(uncomment) - non_constant_identifier_names
    # TODO(uncomment) - overridden_fields
    # TODO(uncomment) - package_api_docs
    # TODO(uncomment) - package_names
    # TODO(uncomment) - package_prefixed_library_names
    # TODO(uncomment) - prefer_adjacent_string_concatenation
    # TODO(uncomment) - prefer_asserts_in_initializer_lists
    # TODO(uncomment) - prefer_collection_literals
    # TODO(uncomment) - prefer_conditional_assignment
    # TODO(uncomment) - prefer_const_constructors
    # TODO(uncomment) - prefer_const_constructors_in_immutables
    # TODO(uncomment) - prefer_const_declarations
    # TODO(uncomment) - prefer_const_literals_to_create_immutables
    # TODO(uncomment) - prefer_contains
    # TODO(uncomment) - prefer_equal_for_default_values
    # TODO(uncomment) - prefer_final_locals
    # TODO(uncomment) - prefer_foreach
    # TODO(uncomment) - prefer_generic_function_type_aliases
    # TODO(uncomment) - prefer_initializing_formals
    # TODO(uncomment) - prefer_is_empty
    # TODO(uncomment) - prefer_is_not_empty
    # TODO(uncomment) - prefer_single_quotes
    # TODO(uncomment) - prefer_typing_uninitialized_variables
    # TODO(uncomment) - public_member_api_docs
    # TODO(uncomment) - recursive_getters
    # TODO(uncomment) - slash_for_doc_comments
    # TODO(uncomment) - sort_unnamed_constructors_first
    # TODO(uncomment) - test_types_in_equals
    # TODO(uncomment) - throw_in_finally
    # TODO(uncomment) - type_init_formals
    # TODO(uncomment) - unnecessary_brace_in_string_interps
    # TODO(uncomment) - unnecessary_const
    # TODO(uncomment) - unnecessary_getters_setters
    # TODO(uncomment) - unnecessary_new
    # TODO(uncomment) - unnecessary_null_aware_assignments
    # TODO(uncomment) - unnecessary_null_in_if_null_operators
    # TODO(uncomment) - unnecessary_overrides
    # TODO(uncomment) - unnecessary_parenthesis
    # TODO(uncomment) - unnecessary_this
    # TODO(uncomment) - unrelated_type_equality_checks
    # TODO(uncomment) - use_rethrow_when_possible
    # TODO(uncomment) - valid_regexps
