Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -405,18 +404,14 @@ public final Optional<XMethodElement> 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<ComponentRequirement, XExecutableParameterElement>
factoryMethodParameters() {
public final ImmutableSet<ComponentRequirement> factoryMethodRequirements() {
return factoryMethod().get().getParameters().stream()
.collect(
toImmutableMap(
parameter -> ComponentRequirement.forModule(parameter.getType()),
parameter -> parameter));
.map(parameter -> ComponentRequirement.forModule(parameter.getType()))
.collect(toImmutableSet());
}

/**
Expand All @@ -443,7 +438,7 @@ public ImmutableSet<ComponentRequirement> componentRequirements() {
|| requiredModules.contains(requirement.typeElement()))
.forEach(requirements::add);
if (factoryMethod().isPresent()) {
requirements.addAll(factoryMethodParameters().keySet());
requirements.addAll(factoryMethodRequirements());
}
return requirements.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1149,7 +1149,7 @@ private static ImmutableList<ComponentRequirement> 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.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Loading