Inline members injection in components and factories.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=164619091
diff --git a/java/dagger/internal/codegen/SourceFiles.java b/java/dagger/internal/codegen/SourceFiles.java
index 42fd910..ded5f6f 100644
--- a/java/dagger/internal/codegen/SourceFiles.java
+++ b/java/dagger/internal/codegen/SourceFiles.java
@@ -44,8 +44,10 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Maps;
import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.CodeBlock;
+import com.squareup.javapoet.FieldSpec;
import com.squareup.javapoet.ParameterizedTypeName;
import com.squareup.javapoet.TypeName;
import com.squareup.javapoet.TypeVariableName;
@@ -164,6 +166,19 @@
}
/**
+ * Returns a mapping of {@link DependencyRequest}s to {@link CodeBlock}s that {@linkplain
+ * #frameworkTypeUsageStatement(CodeBlock, DependencyRequest.Kind) use them}.
+ */
+ static ImmutableMap<DependencyRequest, CodeBlock> frameworkFieldUsages(
+ ImmutableSet<DependencyRequest> dependencies, ImmutableMap<BindingKey, FieldSpec> fields) {
+ return Maps.toMap(
+ dependencies,
+ dep ->
+ frameworkTypeUsageStatement(
+ CodeBlock.of("$N", fields.get(dep.bindingKey())), dep.kind()));
+ }
+
+ /**
* Returns the generated factory or members injector name for a binding.
*/
static ClassName generatedClassNameForBinding(Binding binding) {