package com.google.inject.internal;

/** Enum used to identify a specific Guice error. */
public enum ErrorId {
  AMBIGUOUS_TYPE_CONVERSION,
  AOP_DISABLED,
  AT_INJECT_REQUIRED,
  AT_TARGET_IS_MISSING_PARAMETER,
  BINDING_ALREADY_SET,
  BINDING_TO_GUICE_TYPE,
  BINDING_TO_PROVIDER,
  CAN_NOT_PROXY_CLASS,
  CHILD_BINDING_ALREADY_SET,
  CIRCULAR_PROXY_DISABLED,
  CONSTRUCTOR_NOT_DEFINED_BY_TYPE,
  CONVERSION_TYPE_ERROR,
  CONVERTER_RETURNED_NULL,
  DUPLICATE_BINDING_ANNOTATIONS,
  DUPLICATE_ELEMENT,
  DUPLICATE_MAP_KEY,
  DUPLICATE_SCOPES,
  DUPLICATE_SCOPE_ANNOTATIONS,
  ERROR_ENHANCING_CLASS,
  ERROR_INJECTING_CONSTRUCTOR,
  ERROR_INJECTING_METHOD,
  ERROR_IN_CUSTOM_PROVIDER,
  ERROR_IN_USER_CODE,
  ERROR_IN_USER_INJECTOR,
  ERROR_NOTIFYING_TYPE_LISTENER,
  EXPOSED_BUT_NOT_BOUND,
  INJECT_ABSTRACT_METHOD,
  INJECT_FINAL_FIELD,
  INJECT_INNER_CLASS,
  INJECT_LOCAL_CLASS,
  INJECT_METHOD_WITH_TYPE_PARAMETER,
  INJECT_RAW_MEMBERS_INJECTOR,
  INJECT_RAW_PROVIDER,
  INJECT_RAW_TYPE_LITERAL,
  JIT_BINDING_ALREADY_SET,
  JIT_DISABLED,
  JIT_DISABLED_IN_PARENT,
  KEY_NOT_FULLY_SPECIFIED,
  MISPLACED_BINDING_ANNOTATION,
  MISSING_CONSTANT_VALUES,
  MISSING_CONSTRUCTOR,
  MISSING_IMPLEMENTATION,
  MISSING_RUNTIME_RETENTION,
  MISSING_SCOPE_ANNOTATION,
  NOT_A_SUBTYPE,
  NULL_ELEMENT_IN_SET,
  NULL_INJECTED_INTO_NON_NULLABLE,
  NULL_VALUE_IN_MAP,
  OPTIONAL_CONSTRUCTOR,
  RECURSIVE_BINDING,
  RECURSIVE_IMPLEMENTATION_TYPE,
  RECURSIVE_PROVIDER_TYPE,
  SCOPE_ANNOTATION_ON_ABSTRACT_TYPE,
  SCOPE_NOT_FOUND,
  STATIC_INJECTION_ON_INTERFACE,
  SUBTYPE_NOT_PROVIDED,
  TOO_MANY_CONSTRUCTORS,
  VOID_PROVIDER_METHOD,

  // All other uncommon type of errors
  OTHER;
}
