// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// An enumeration of lint names.
class LintNames {
  static const String always_declare_return_types =
      'always_declare_return_types';
  static const String always_require_non_null_named_parameters =
      'always_require_non_null_named_parameters';
  static const String always_specify_types = 'always_specify_types';
  static const String annotate_overrides = 'annotate_overrides';
  static const String avoid_annotating_with_dynamic =
      'avoid_annotating_with_dynamic';
  static const String avoid_empty_else = 'avoid_empty_else';
  static const String avoid_init_to_null = 'avoid_init_to_null';
  static const String avoid_redundant_argument_values =
      'avoid_redundant_argument_values';
  static const String avoid_relative_lib_imports = 'avoid_relative_lib_imports';
  static const String avoid_return_types_on_setters =
      'avoid_return_types_on_setters';
  static const String avoid_types_on_closure_parameters =
      'avoid_types_on_closure_parameters';
  static const String await_only_futures = 'await_only_futures';
  static const String curly_braces_in_flow_control_structures =
      'curly_braces_in_flow_control_structures';
  static const String diagnostic_describe_all_properties =
      'diagnostic_describe_all_properties';
  static const String empty_catches = 'empty_catches';
  static const String empty_constructor_bodies = 'empty_constructor_bodies';
  static const String empty_statements = 'empty_statements';
  static const String hash_and_equals = 'hash_and_equals';
  static const String no_duplicate_case_values = 'no_duplicate_case_values';
  static const String non_constant_identifier_names =
      'non_constant_identifier_names';
  static const String null_closures = 'null_closures';
  static const String omit_local_variable_types = 'omit_local_variable_types';
  static const String prefer_adjacent_string_concatenation =
      'prefer_adjacent_string_concatenation';
  static const String prefer_collection_literals = 'prefer_collection_literals';
  static const String prefer_conditional_assignment =
      'prefer_conditional_assignment';
  static const String prefer_contains = 'prefer_contains';
  static const String prefer_const_constructors = 'prefer_const_constructors';
  static const String prefer_const_declarations = 'prefer_const_declarations';
  static const String prefer_equal_for_default_values =
      'prefer_equal_for_default_values';
  static const String prefer_expression_function_bodies =
      'prefer_expression_function_bodies';
  static const String prefer_final_fields = 'prefer_final_fields';
  static const String prefer_final_locals = 'prefer_final_locals';
  static const String prefer_for_elements_to_map_fromIterable =
      'prefer_for_elements_to_map_fromIterable';
  static const String prefer_generic_function_type_aliases =
      'prefer_generic_function_type_aliases';
  static const String prefer_if_elements_to_conditional_expressions =
      'prefer_if_elements_to_conditional_expressions';
  static const String prefer_if_null_operators = 'prefer_if_null_operators';
  static const String prefer_inlined_adds = 'prefer_inlined_adds';
  static const String prefer_int_literals = 'prefer_int_literals';
  static const String prefer_is_empty = 'prefer_is_empty';
  static const String prefer_is_not_empty = 'prefer_is_not_empty';
  static const String prefer_iterable_whereType = 'prefer_iterable_whereType';
  static const String prefer_null_aware_operators =
      'prefer_null_aware_operators';
  static const String prefer_relative_imports = 'prefer_relative_imports';
  static const String prefer_single_quotes = 'prefer_single_quotes';
  static const String prefer_spread_collections = 'prefer_spread_collections';
  static const String slash_for_doc_comments = 'slash_for_doc_comments';
  static const String sort_child_properties_last = 'sort_child_properties_last';
  static const String type_annotate_public_apis = 'type_annotate_public_apis';
  static const String type_init_formals = 'type_init_formals';
  static const String unawaited_futures = 'unawaited_futures';
  static const String unnecessary_brace_in_string_interps =
      'unnecessary_brace_in_string_interps';
  static const String unnecessary_const = 'unnecessary_const';
  static const String unnecessary_lambdas = 'unnecessary_lambdas';
  static const String unnecessary_new = 'unnecessary_new';
  static const String unnecessary_null_in_if_null_operators =
      'unnecessary_null_in_if_null_operators';
  static const String unnecessary_overrides = 'unnecessary_overrides';
  static const String unnecessary_this = 'unnecessary_this';
  static const String use_function_type_syntax_for_parameters =
      'use_function_type_syntax_for_parameters';
  static const String use_rethrow_when_possible = 'use_rethrow_when_possible';
}
