diff --git a/dagger-compiler/main/java/dagger/internal/codegen/binding/BindingGraph.java b/dagger-compiler/main/java/dagger/internal/codegen/binding/BindingGraph.java index db50fa63bca..533b6559bf7 100644 --- a/dagger-compiler/main/java/dagger/internal/codegen/binding/BindingGraph.java +++ b/dagger-compiler/main/java/dagger/internal/codegen/binding/BindingGraph.java @@ -27,7 +27,6 @@ import static dagger.internal.codegen.extension.DaggerStreams.toImmutableSet; import androidx.room3.compiler.processing.XExecutableElement; -import androidx.room3.compiler.processing.XExecutableParameterElement; import androidx.room3.compiler.processing.XMethodElement; import androidx.room3.compiler.processing.XTypeElement; import com.google.auto.value.AutoValue; @@ -405,18 +404,14 @@ public final Optional factoryMethod() { } /** - * Returns a map between the {@linkplain ComponentRequirement component requirement} and the - * corresponding {@link XExecutableParameterElement} for each module parameter in the {@linkplain + * Returns the {@link ComponentRequirement}s for each module parameter in the {@linkplain * BindingGraph#factoryMethod factory method}. */ // TODO(dpb): Consider disallowing modules if none of their bindings are used. - public final ImmutableMap - factoryMethodParameters() { + public final ImmutableSet factoryMethodRequirements() { return factoryMethod().get().getParameters().stream() - .collect( - toImmutableMap( - parameter -> ComponentRequirement.forModule(parameter.getType()), - parameter -> parameter)); + .map(parameter -> ComponentRequirement.forModule(parameter.getType())) + .collect(toImmutableSet()); } /** @@ -443,7 +438,7 @@ public ImmutableSet componentRequirements() { || requiredModules.contains(requirement.typeElement())) .forEach(requirements::add); if (factoryMethod().isPresent()) { - requirements.addAll(factoryMethodParameters().keySet()); + requirements.addAll(factoryMethodRequirements()); } return requirements.build(); } diff --git a/dagger-compiler/main/java/dagger/internal/codegen/writing/ComponentImplementation.java b/dagger-compiler/main/java/dagger/internal/codegen/writing/ComponentImplementation.java index 876b869fcb2..61744934198 100644 --- a/dagger-compiler/main/java/dagger/internal/codegen/writing/ComponentImplementation.java +++ b/dagger-compiler/main/java/dagger/internal/codegen/writing/ComponentImplementation.java @@ -1149,7 +1149,7 @@ private static ImmutableList constructorRequirements(Bindi if (graph.componentDescriptor().hasCreator()) { return graph.componentRequirements().asList(); } else if (graph.factoryMethod().isPresent()) { - return graph.factoryMethodParameters().keySet().asList(); + return graph.factoryMethodRequirements().asList(); } else { throw new AssertionError( "Expected either a component creator or factory method but found neither."); diff --git a/dagger-compiler/main/java/dagger/internal/codegen/writing/ComponentRequirementExpressions.java b/dagger-compiler/main/java/dagger/internal/codegen/writing/ComponentRequirementExpressions.java index 8002846e123..16fe2b11aa5 100644 --- a/dagger-compiler/main/java/dagger/internal/codegen/writing/ComponentRequirementExpressions.java +++ b/dagger-compiler/main/java/dagger/internal/codegen/writing/ComponentRequirementExpressions.java @@ -110,7 +110,7 @@ XCodeBlock getExpressionDuringInitialization( private ComponentRequirementExpression createExpression(ComponentRequirement requirement) { if (componentShard.componentDescriptor().hasCreator() || (graph.factoryMethod().isPresent() - && graph.factoryMethodParameters().containsKey(requirement))) { + && graph.factoryMethodRequirements().contains(requirement))) { return new ComponentParameterField(requirement); } else if (requirement.kind().isModule()) { return new InstantiableModuleField(requirement);