@Retention(value=RUNTIME) @Target(value=TYPE) @Documented public static @interface ProductionSubcomponent.Factory
This follows all the rules of
Component.Factory, except it must appear in classes
ProductionSubcomponent instead of
If a subcomponent defines a factory, its parent component(s) will have a binding for that factory type, allowing an instance that factory to be injected or returned from a method on that component like any other binding.