# 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:
  enable-experiment:
    - non-nullable
  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
