Add ordering to fields and methods in GeneratedComponentModel.

RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=178006667
diff --git a/java/dagger/internal/codegen/MembersInjectionMethods.java b/java/dagger/internal/codegen/MembersInjectionMethods.java
index 335ac48..9f12e08 100644
--- a/java/dagger/internal/codegen/MembersInjectionMethods.java
+++ b/java/dagger/internal/codegen/MembersInjectionMethods.java
@@ -20,10 +20,10 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.squareup.javapoet.MethodSpec.methodBuilder;
 import static dagger.internal.codegen.Accessibility.isTypeAccessibleFrom;
+import static dagger.internal.codegen.GeneratedComponentModel.MethodSpecKind.MEMBERS_INJECTION_METHOD;
 import static dagger.internal.codegen.Util.reentrantComputeIfAbsent;
 import static javax.lang.model.element.Modifier.PRIVATE;
 
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.squareup.javapoet.ClassName;
 import com.squareup.javapoet.CodeBlock;
@@ -64,18 +64,11 @@
   /**
    * Returns the members injection {@link MethodSpec} for the given {@link Key}, creating it if
    * necessary.
-   *
-   * <p>To get a list of all members injection {@link MethodSpec}s, call {@link #getAllMethods()}
    */
   MethodSpec getOrCreate(Key key) {
     return reentrantComputeIfAbsent(membersInjectionMethods, key, this::membersInjectionMethod);
   }
 
-  /** Returns the list of all members injection {@link MethodSpec}s for this component. */
-  ImmutableList<MethodSpec> getAllMethods() {
-    return ImmutableList.copyOf(membersInjectionMethods.values());
-  }
-
   private MethodSpec membersInjectionMethod(Key key) {
     Binding binding =
         firstNonNull(
@@ -93,7 +86,7 @@
     // simple names Foo.Builder -> injectFooBuilder
     String methodName = generatedComponentModel.getUniqueMethodName("inject" + bindingTypeName);
     ParameterSpec parameter = ParameterSpec.builder(membersInjectedTypeName, "instance").build();
-    MethodSpec.Builder method =
+    MethodSpec.Builder methodBuilder =
         methodBuilder(methodName)
             .addModifiers(PRIVATE)
             .returns(membersInjectedTypeName)
@@ -101,10 +94,10 @@
     TypeElement canIgnoreReturnValue =
         elements.getTypeElement("com.google.errorprone.annotations.CanIgnoreReturnValue");
     if (canIgnoreReturnValue != null) {
-      method.addAnnotation(ClassName.get(canIgnoreReturnValue));
+      methodBuilder.addAnnotation(ClassName.get(canIgnoreReturnValue));
     }
     CodeBlock instance = CodeBlock.of("$N", parameter);
-    method.addCode(
+    methodBuilder.addCode(
         InjectionSiteMethod.invokeAll(
             injectionSites(binding),
             generatedComponentModel.name(),
@@ -115,9 +108,11 @@
                 bindingExpressions
                     .getDependencyArgumentExpression(request, generatedComponentModel.name())
                     .codeBlock()));
-    method.addStatement("return $L", instance);
+    methodBuilder.addStatement("return $L", instance);
 
-    return method.build();
+    MethodSpec method = methodBuilder.build();
+    generatedComponentModel.addMethod(MEMBERS_INJECTION_METHOD, method);
+    return method;
   }
 
   private static ImmutableSet<InjectionSite> injectionSites(Binding binding) {