test_class.file: compiler/src/test/java/dagger/internal/codegen/ErrorMessagesTest.java
test_class.identifier: ErrorMessagesTest
test_case.body: @Test public void stripCommonTypePrefixes() {
      String typeName = "com.google.common.collect.ImmutableList<java.lang.Boolean>";
      assertThat(ErrorMessages.stripCommonTypePrefixes(typeName)).isEqualTo("ImmutableList<Boolean>");
    }
test_case.class_method_signature: ErrorMessagesTest.stripCommonTypePrefixes()
test_case.full_signature: @Test public void stripCommonTypePrefixes()
test_case.identifier: stripCommonTypePrefixes
test_case.invocations: isEqualTo assertThat stripCommonTypePrefixes
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void stripCommonTypePrefixes()
focal_class.declarator: INDENT = "    "
focal_class.modifier: static final
focal_class.original_string: static final String INDENT = "    ";
focal_class.type: String
focal_class.var_name: INDENT
focal_class.declarator: MULTIPLE_INJECT_CONSTRUCTORS =
        "Types may only contain one @Inject constructor."
focal_class.modifier: static final
focal_class.original_string: static final String MULTIPLE_INJECT_CONSTRUCTORS =
        "Types may only contain one @Inject constructor.";
focal_class.type: String
focal_class.var_name: MULTIPLE_INJECT_CONSTRUCTORS
focal_class.declarator: FINAL_INJECT_FIELD = "@Inject fields may not be final"
focal_class.modifier: static final
focal_class.original_string: static final String FINAL_INJECT_FIELD = "@Inject fields may not be final";
focal_class.type: String
focal_class.var_name: FINAL_INJECT_FIELD
focal_class.declarator: ABSTRACT_INJECT_METHOD = "Methods with @Inject may not be abstract."
focal_class.modifier: static final
focal_class.original_string: static final String ABSTRACT_INJECT_METHOD = "Methods with @Inject may not be abstract.";
focal_class.type: String
focal_class.var_name: ABSTRACT_INJECT_METHOD
focal_class.declarator: GENERIC_INJECT_METHOD =
        "Methods with @Inject may not declare type parameters."
focal_class.modifier: static final
focal_class.original_string: static final String GENERIC_INJECT_METHOD =
        "Methods with @Inject may not declare type parameters.";
focal_class.type: String
focal_class.var_name: GENERIC_INJECT_METHOD
focal_class.declarator: MULTIPLE_QUALIFIERS =
        "A single injection site may not use more than one @Qualifier."
focal_class.modifier: static final
focal_class.original_string: static final String MULTIPLE_QUALIFIERS =
        "A single injection site may not use more than one @Qualifier.";
focal_class.type: String
focal_class.var_name: MULTIPLE_QUALIFIERS
focal_class.declarator: MULTIPLE_SCOPES = "A single binding may not declare more than one @Scope."
focal_class.modifier: static final
focal_class.original_string: static final String MULTIPLE_SCOPES = "A single binding may not declare more than one @Scope.";
focal_class.type: String
focal_class.var_name: MULTIPLE_SCOPES
focal_class.declarator: INJECT_ON_PRIVATE_CONSTRUCTOR =
        "Dagger does not support injection into private constructors"
focal_class.modifier: static final
focal_class.original_string: static final String INJECT_ON_PRIVATE_CONSTRUCTOR =
        "Dagger does not support injection into private constructors";
focal_class.type: String
focal_class.var_name: INJECT_ON_PRIVATE_CONSTRUCTOR
focal_class.declarator: INJECT_CONSTRUCTOR_ON_INNER_CLASS =
        "@Inject constructors are invalid on inner classes"
focal_class.modifier: static final
focal_class.original_string: static final String INJECT_CONSTRUCTOR_ON_INNER_CLASS =
        "@Inject constructors are invalid on inner classes";
focal_class.type: String
focal_class.var_name: INJECT_CONSTRUCTOR_ON_INNER_CLASS
focal_class.declarator: INJECT_CONSTRUCTOR_ON_ABSTRACT_CLASS =
        "@Inject is nonsense on the constructor of an abstract class"
focal_class.modifier: static final
focal_class.original_string: static final String INJECT_CONSTRUCTOR_ON_ABSTRACT_CLASS =
        "@Inject is nonsense on the constructor of an abstract class";
focal_class.type: String
focal_class.var_name: INJECT_CONSTRUCTOR_ON_ABSTRACT_CLASS
focal_class.declarator: QUALIFIER_ON_INJECT_CONSTRUCTOR =
        "@Qualifier annotations are not allowed on @Inject constructors."
focal_class.modifier: static final
focal_class.original_string: static final String QUALIFIER_ON_INJECT_CONSTRUCTOR =
        "@Qualifier annotations are not allowed on @Inject constructors.";
focal_class.type: String
focal_class.var_name: QUALIFIER_ON_INJECT_CONSTRUCTOR
focal_class.declarator: PRIVATE_INJECT_FIELD =
        "Dagger does not support injection into private fields"
focal_class.modifier: static final
focal_class.original_string: static final String PRIVATE_INJECT_FIELD =
        "Dagger does not support injection into private fields";
focal_class.type: String
focal_class.var_name: PRIVATE_INJECT_FIELD
focal_class.declarator: PRIVATE_INJECT_METHOD =
        "Dagger does not support injection into private methods"
focal_class.modifier: static final
focal_class.original_string: static final String PRIVATE_INJECT_METHOD =
        "Dagger does not support injection into private methods";
focal_class.type: String
focal_class.var_name: PRIVATE_INJECT_METHOD
focal_class.declarator: INJECT_INTO_PRIVATE_CLASS =
        "Dagger does not support injection into private classes"
focal_class.modifier: static final
focal_class.original_string: static final String INJECT_INTO_PRIVATE_CLASS =
        "Dagger does not support injection into private classes";
focal_class.type: String
focal_class.var_name: INJECT_INTO_PRIVATE_CLASS
focal_class.declarator: DUPLICATE_BINDINGS_FOR_KEY_FORMAT =
        "%s is bound multiple times:"
focal_class.modifier: static final
focal_class.original_string: static final String DUPLICATE_BINDINGS_FOR_KEY_FORMAT =
        "%s is bound multiple times:";
focal_class.type: String
focal_class.var_name: DUPLICATE_BINDINGS_FOR_KEY_FORMAT
focal_class.declarator: PROVIDES_METHOD_RETURN_TYPE =
        "@Provides methods must either return a primitive, an array or a declared type."
focal_class.modifier: static final
focal_class.original_string: static final String PROVIDES_METHOD_RETURN_TYPE =
        "@Provides methods must either return a primitive, an array or a declared type.";
focal_class.type: String
focal_class.var_name: PROVIDES_METHOD_RETURN_TYPE
focal_class.declarator: PRODUCES_METHOD_RETURN_TYPE =
        "@Produces methods must either return a primitive, an array or a declared type, or a"
        + " ListenableFuture of one of those types."
focal_class.modifier: static final
focal_class.original_string: static final String PRODUCES_METHOD_RETURN_TYPE =
        "@Produces methods must either return a primitive, an array or a declared type, or a"
        + " ListenableFuture of one of those types.";
focal_class.type: String
focal_class.var_name: PRODUCES_METHOD_RETURN_TYPE
focal_class.declarator: PRODUCES_METHOD_RAW_FUTURE =
        "@Produces methods cannot return a raw ListenableFuture."
focal_class.modifier: static final
focal_class.original_string: static final String PRODUCES_METHOD_RAW_FUTURE =
        "@Produces methods cannot return a raw ListenableFuture.";
focal_class.type: String
focal_class.var_name: PRODUCES_METHOD_RAW_FUTURE
focal_class.declarator: BINDING_METHOD_SET_VALUES_RAW_SET =
        "@%s methods of type set values cannot return a raw Set"
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_SET_VALUES_RAW_SET =
        "@%s methods of type set values cannot return a raw Set";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_SET_VALUES_RAW_SET
focal_class.declarator: PROVIDES_METHOD_SET_VALUES_RETURN_SET =
        "@Provides methods of type set values must return a Set"
focal_class.modifier: static final
focal_class.original_string: static final String PROVIDES_METHOD_SET_VALUES_RETURN_SET =
        "@Provides methods of type set values must return a Set";
focal_class.type: String
focal_class.var_name: PROVIDES_METHOD_SET_VALUES_RETURN_SET
focal_class.declarator: PRODUCES_METHOD_SET_VALUES_RETURN_SET =
        "@Produces methods of type set values must return a Set or ListenableFuture of Set"
focal_class.modifier: static final
focal_class.original_string: static final String PRODUCES_METHOD_SET_VALUES_RETURN_SET =
        "@Produces methods of type set values must return a Set or ListenableFuture of Set";
focal_class.type: String
focal_class.var_name: PRODUCES_METHOD_SET_VALUES_RETURN_SET
focal_class.declarator: BINDING_METHOD_MUST_RETURN_A_VALUE =
        "@%s methods must return a value (not void)."
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_MUST_RETURN_A_VALUE =
        "@%s methods must return a value (not void).";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_MUST_RETURN_A_VALUE
focal_class.declarator: BINDING_METHOD_ABSTRACT = "@%s methods cannot be abstract"
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_ABSTRACT = "@%s methods cannot be abstract";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_ABSTRACT
focal_class.declarator: BINDING_METHOD_STATIC = "@%s methods cannot be static"
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_STATIC = "@%s methods cannot be static";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_STATIC
focal_class.declarator: BINDING_METHOD_PRIVATE = "@%s methods cannot be private"
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_PRIVATE = "@%s methods cannot be private";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_PRIVATE
focal_class.declarator: BINDING_METHOD_TYPE_PARAMETER =
        "@%s methods may not have type parameters."
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_TYPE_PARAMETER =
        "@%s methods may not have type parameters.";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_TYPE_PARAMETER
focal_class.declarator: BINDING_METHOD_NOT_IN_MODULE =
        "@%s methods can only be present within a @%s"
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_NOT_IN_MODULE =
        "@%s methods can only be present within a @%s";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_NOT_IN_MODULE
focal_class.declarator: BINDING_METHOD_NOT_MAP_HAS_MAP_KEY =
        "@%s methods of non map type cannot declare a map key"
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_NOT_MAP_HAS_MAP_KEY =
        "@%s methods of non map type cannot declare a map key";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_NOT_MAP_HAS_MAP_KEY
focal_class.declarator: BINDING_METHOD_WITH_NO_MAP_KEY =
        "@%s methods of type map must declare a map key"
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_WITH_NO_MAP_KEY =
        "@%s methods of type map must declare a map key";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_WITH_NO_MAP_KEY
focal_class.declarator: BINDING_METHOD_WITH_MULTIPLE_MAP_KEY =
        "@%s methods may not have more than one @MapKey-marked annotation"
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_WITH_MULTIPLE_MAP_KEY =
        "@%s methods may not have more than one @MapKey-marked annotation";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_WITH_MULTIPLE_MAP_KEY
focal_class.declarator: BINDING_METHOD_WITH_SAME_NAME =
        "Cannot have more than one @%s method with the same name in a single module"
focal_class.modifier: static final
focal_class.original_string: static final String BINDING_METHOD_WITH_SAME_NAME =
        "Cannot have more than one @%s method with the same name in a single module";
focal_class.type: String
focal_class.var_name: BINDING_METHOD_WITH_SAME_NAME
focal_class.declarator: MODULES_WITH_TYPE_PARAMS_MUST_BE_ABSTRACT =
        "Modules with type parameters must be abstract"
focal_class.modifier: static final
focal_class.original_string: static final String MODULES_WITH_TYPE_PARAMS_MUST_BE_ABSTRACT =
        "Modules with type parameters must be abstract";
focal_class.type: String
focal_class.var_name: MODULES_WITH_TYPE_PARAMS_MUST_BE_ABSTRACT
focal_class.declarator: REFERENCED_MODULES_MUST_NOT_BE_ABSTRACT =
        "%s is listed as a module, but is abstract"
focal_class.modifier: static final
focal_class.original_string: static final String REFERENCED_MODULES_MUST_NOT_BE_ABSTRACT =
        "%s is listed as a module, but is abstract";
focal_class.type: String
focal_class.var_name: REFERENCED_MODULES_MUST_NOT_BE_ABSTRACT
focal_class.declarator: REFERENCED_MODULE_NOT_ANNOTATED =
        "%s is listed as a module, but is not annotated with @%s"
focal_class.modifier: static final
focal_class.original_string: static final String REFERENCED_MODULE_NOT_ANNOTATED =
        "%s is listed as a module, but is not annotated with @%s";
focal_class.type: String
focal_class.var_name: REFERENCED_MODULE_NOT_ANNOTATED
focal_class.declarator: REFERENCED_MODULE_MUST_NOT_HAVE_TYPE_PARAMS =
        "%s is listed as a module, but has type parameters"
focal_class.modifier: static final
focal_class.original_string: static final String REFERENCED_MODULE_MUST_NOT_HAVE_TYPE_PARAMS =
        "%s is listed as a module, but has type parameters";
focal_class.type: String
focal_class.var_name: REFERENCED_MODULE_MUST_NOT_HAVE_TYPE_PARAMS
focal_class.declarator: PROVIDES_METHOD_OVERRIDES_ANOTHER =
        "@%s methods may not override another method. Overrides: %s"
focal_class.modifier: static final
focal_class.original_string: static final String PROVIDES_METHOD_OVERRIDES_ANOTHER =
        "@%s methods may not override another method. Overrides: %s";
focal_class.type: String
focal_class.var_name: PROVIDES_METHOD_OVERRIDES_ANOTHER
focal_class.declarator: METHOD_OVERRIDES_PROVIDES_METHOD =
        "@%s methods may not be overridden in modules. Overrides: %s"
focal_class.modifier: static final
focal_class.original_string: static final String METHOD_OVERRIDES_PROVIDES_METHOD =
        "@%s methods may not be overridden in modules. Overrides: %s";
focal_class.type: String
focal_class.var_name: METHOD_OVERRIDES_PROVIDES_METHOD
focal_class.declarator: PROVIDES_OR_PRODUCES_METHOD_MULTIPLE_QUALIFIERS =
        "Cannot use more than one @Qualifier on a @Provides or @Produces method"
focal_class.modifier: static final
focal_class.original_string: static final String PROVIDES_OR_PRODUCES_METHOD_MULTIPLE_QUALIFIERS =
        "Cannot use more than one @Qualifier on a @Provides or @Produces method";
focal_class.type: String
focal_class.var_name: PROVIDES_OR_PRODUCES_METHOD_MULTIPLE_QUALIFIERS
focal_class.declarator: MAPKEY_WITHOUT_FIELDS =
        "Map key annotation does not have fields"
focal_class.modifier: static final
focal_class.original_string: static final String MAPKEY_WITHOUT_FIELDS =
        "Map key annotation does not have fields";
focal_class.type: String
focal_class.var_name: MAPKEY_WITHOUT_FIELDS
focal_class.declarator: MULTIPLE_BINDING_TYPES_FORMAT =
        "More than one binding present of different types %s"
focal_class.modifier: static final
focal_class.original_string: static final String MULTIPLE_BINDING_TYPES_FORMAT =
        "More than one binding present of different types %s";
focal_class.type: String
focal_class.var_name: MULTIPLE_BINDING_TYPES_FORMAT
focal_class.declarator: MULTIPLE_BINDING_TYPES_FOR_KEY_FORMAT =
        "%s has incompatible bindings:\n"
focal_class.modifier: static final
focal_class.original_string: static final String MULTIPLE_BINDING_TYPES_FOR_KEY_FORMAT =
        "%s has incompatible bindings:\n";
focal_class.type: String
focal_class.var_name: MULTIPLE_BINDING_TYPES_FOR_KEY_FORMAT
focal_class.declarator: PROVIDER_ENTRY_POINT_MAY_NOT_DEPEND_ON_PRODUCER_FORMAT =
        "%s is a provision entry-point, which cannot depend on a production."
focal_class.modifier: static final
focal_class.original_string: static final String PROVIDER_ENTRY_POINT_MAY_NOT_DEPEND_ON_PRODUCER_FORMAT =
        "%s is a provision entry-point, which cannot depend on a production.";
focal_class.type: String
focal_class.var_name: PROVIDER_ENTRY_POINT_MAY_NOT_DEPEND_ON_PRODUCER_FORMAT
focal_class.declarator: PROVIDER_MAY_NOT_DEPEND_ON_PRODUCER_FORMAT =
        "%s is a provision, which cannot depend on a production."
focal_class.modifier: static final
focal_class.original_string: static final String PROVIDER_MAY_NOT_DEPEND_ON_PRODUCER_FORMAT =
        "%s is a provision, which cannot depend on a production.";
focal_class.type: String
focal_class.var_name: PROVIDER_MAY_NOT_DEPEND_ON_PRODUCER_FORMAT
focal_class.declarator: REQUIRES_AT_INJECT_CONSTRUCTOR_OR_PROVIDER_FORMAT =
        "%s cannot be provided without an @Inject constructor or from an @Provides-annotated method."
focal_class.modifier: static final
focal_class.original_string: static final String REQUIRES_AT_INJECT_CONSTRUCTOR_OR_PROVIDER_FORMAT =
        "%s cannot be provided without an @Inject constructor or from an @Provides-annotated method.";
focal_class.type: String
focal_class.var_name: REQUIRES_AT_INJECT_CONSTRUCTOR_OR_PROVIDER_FORMAT
focal_class.declarator: REQUIRES_PROVIDER_FORMAT =
        "%s cannot be provided without an @Provides-annotated method."
focal_class.modifier: static final
focal_class.original_string: static final String REQUIRES_PROVIDER_FORMAT =
        "%s cannot be provided without an @Provides-annotated method.";
focal_class.type: String
focal_class.var_name: REQUIRES_PROVIDER_FORMAT
focal_class.declarator: REQUIRES_AT_INJECT_CONSTRUCTOR_OR_PROVIDER_OR_PRODUCER_FORMAT =
        "%s cannot be provided without an @Inject constructor or from an @Provides- or "
        + "@Produces-annotated method."
focal_class.modifier: static final
focal_class.original_string: static final String REQUIRES_AT_INJECT_CONSTRUCTOR_OR_PROVIDER_OR_PRODUCER_FORMAT =
        "%s cannot be provided without an @Inject constructor or from an @Provides- or "
        + "@Produces-annotated method.";
focal_class.type: String
focal_class.var_name: REQUIRES_AT_INJECT_CONSTRUCTOR_OR_PROVIDER_OR_PRODUCER_FORMAT
focal_class.declarator: REQUIRES_PROVIDER_OR_PRODUCER_FORMAT =
        "%s cannot be provided without an @Provides- or @Produces-annotated method."
focal_class.modifier: static final
focal_class.original_string: static final String REQUIRES_PROVIDER_OR_PRODUCER_FORMAT =
        "%s cannot be provided without an @Provides- or @Produces-annotated method.";
focal_class.type: String
focal_class.var_name: REQUIRES_PROVIDER_OR_PRODUCER_FORMAT
focal_class.declarator: MEMBERS_INJECTION_DOES_NOT_IMPLY_PROVISION =
        "This type supports members injection but cannot be implicitly provided."
focal_class.modifier: static final
focal_class.original_string: static final String MEMBERS_INJECTION_DOES_NOT_IMPLY_PROVISION =
        "This type supports members injection but cannot be implicitly provided.";
focal_class.type: String
focal_class.var_name: MEMBERS_INJECTION_DOES_NOT_IMPLY_PROVISION
focal_class.declarator: MEMBERS_INJECTION_WITH_RAW_TYPE =
        "%s has type parameters, cannot members inject the raw type. via:\n%s"
focal_class.modifier: static final
focal_class.original_string: static final String MEMBERS_INJECTION_WITH_RAW_TYPE =
        "%s has type parameters, cannot members inject the raw type. via:\n%s";
focal_class.type: String
focal_class.var_name: MEMBERS_INJECTION_WITH_RAW_TYPE
focal_class.declarator: MEMBERS_INJECTION_WITH_UNBOUNDED_TYPE =
        "Type parameters must be bounded for members injection. %s required by %s, via:\n%s"
focal_class.modifier: static final
focal_class.original_string: static final String MEMBERS_INJECTION_WITH_UNBOUNDED_TYPE =
        "Type parameters must be bounded for members injection. %s required by %s, via:\n%s";
focal_class.type: String
focal_class.var_name: MEMBERS_INJECTION_WITH_UNBOUNDED_TYPE
focal_class.declarator: CONTAINS_DEPENDENCY_CYCLE_FORMAT = "%s.%s() contains a dependency cycle:\n%s"
focal_class.modifier: static final
focal_class.original_string: static final String CONTAINS_DEPENDENCY_CYCLE_FORMAT = "%s.%s() contains a dependency cycle:\n%s";
focal_class.type: String
focal_class.var_name: CONTAINS_DEPENDENCY_CYCLE_FORMAT
focal_class.declarator: MALFORMED_MODULE_METHOD_FORMAT =
        "Cannot generated a graph because method %s on module %s was malformed"
focal_class.modifier: static final
focal_class.original_string: static final String MALFORMED_MODULE_METHOD_FORMAT =
        "Cannot generated a graph because method %s on module %s was malformed";
focal_class.type: String
focal_class.var_name: MALFORMED_MODULE_METHOD_FORMAT
focal_class.declarator: NULLABLE_TO_NON_NULLABLE =
        "%s is not nullable, but is being provided by %s"
focal_class.modifier: static final
focal_class.original_string: static final String NULLABLE_TO_NON_NULLABLE =
        "%s is not nullable, but is being provided by %s";
focal_class.type: String
focal_class.var_name: NULLABLE_TO_NON_NULLABLE
focal_class.declarator: CANNOT_RETURN_NULL_FROM_NON_NULLABLE_COMPONENT_METHOD =
        "Cannot return null from a non-@Nullable component method"
focal_class.modifier: static final
focal_class.original_string: static final String CANNOT_RETURN_NULL_FROM_NON_NULLABLE_COMPONENT_METHOD =
        "Cannot return null from a non-@Nullable component method";
focal_class.type: String
focal_class.var_name: CANNOT_RETURN_NULL_FROM_NON_NULLABLE_COMPONENT_METHOD
focal_class.declarator: CANNOT_RETURN_NULL_FROM_NON_NULLABLE_PROVIDES_METHOD =
        "Cannot return null from a non-@Nullable @Provides method"
focal_class.modifier: static final
focal_class.original_string: static final String CANNOT_RETURN_NULL_FROM_NON_NULLABLE_PROVIDES_METHOD =
        "Cannot return null from a non-@Nullable @Provides method";
focal_class.type: String
focal_class.var_name: CANNOT_RETURN_NULL_FROM_NON_NULLABLE_PROVIDES_METHOD
focal_class.declarator: COMMON_PACKAGE_PATTERN = Pattern.compile(
        "(?:^|[^.a-z_])"     // What we want to match on but not capture.
        + "((?:"             // Start a group with a non-capturing or part
        + "java[.]lang"
        + "|java[.]util"
        + "|javax[.]inject"
        + "|dagger"
        + "|com[.]google[.]common[.]base"
        + "|com[.]google[.]common[.]collect"
        + ")[.])"            // Always end with a literal .
        + "[A-Z]")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern COMMON_PACKAGE_PATTERN = Pattern.compile(
        "(?:^|[^.a-z_])"     // What we want to match on but not capture.
        + "((?:"             // Start a group with a non-capturing or part
        + "java[.]lang"
        + "|java[.]util"
        + "|javax[.]inject"
        + "|dagger"
        + "|com[.]google[.]common[.]base"
        + "|com[.]google[.]common[.]collect"
        + ")[.])"            // Always end with a literal .
        + "[A-Z]");
focal_class.type: Pattern
focal_class.var_name: COMMON_PACKAGE_PATTERN
focal_class.file: compiler/src/main/java/dagger/internal/codegen/ErrorMessages.java
focal_class.identifier: ErrorMessages
focal_class.class_method_signature: ErrorMessages.stripCommonTypePrefixes(String type)
focal_class.full_signature: static String stripCommonTypePrefixes(String type)
focal_class.identifier: stripCommonTypePrefixes
focal_class.modifiers: static
focal_class.parameters: (String type)
focal_class.return: String
focal_class.signature: String stripCommonTypePrefixes(String type)
focal_class.class_method_signature: ErrorMessages.format(AnnotationMirror annotation)
focal_class.full_signature: static String format(AnnotationMirror annotation)
focal_class.identifier: format
focal_class.modifiers: static
focal_class.parameters: (AnnotationMirror annotation)
focal_class.return: String
focal_class.signature: String format(AnnotationMirror annotation)
focal_class.class_method_signature: ErrorMessages.ErrorMessages()
focal_class.full_signature: private  ErrorMessages()
focal_class.identifier: ErrorMessages
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  ErrorMessages()
focal_method.body: static String stripCommonTypePrefixes(String type) {
      // Special case this enum's constants since they will be incredibly common.
      type = type.replace(Provides.Type.class.getCanonicalName() + ".", "");
  
      // Do regex magic to remove common packages we care to shorten.
      Matcher matcher = COMMON_PACKAGE_PATTERN.matcher(type);
      StringBuilder result = new StringBuilder();
      int index = 0;
      while (matcher.find()) {
        result.append(type.subSequence(index, matcher.start(1)));
        index = matcher.end(1); // Skip the matched pattern content.
      }
      result.append(type.subSequence(index, type.length()));
      return result.toString();
    }
focal_method.class_method_signature: ErrorMessages.stripCommonTypePrefixes(String type)
focal_method.full_signature: static String stripCommonTypePrefixes(String type)
focal_method.identifier: stripCommonTypePrefixes
focal_method.invocations: replace getCanonicalName matcher find append subSequence start end append subSequence length toString
focal_method.modifiers: static
focal_method.parameters: (String type)
focal_method.return: String
focal_method.signature: String stripCommonTypePrefixes(String type)