private ImmutableList<ParameterSpec> parameters(Iterable<Parameter> parameters) {
    ImmutableList.Builder<ParameterSpec> builder = ImmutableList.builder();
    for (Parameter parameter : parameters) {
      TypeName type = resolveTypeName(parameter.type().get());
      ImmutableList<AnnotationSpec> annotations =
          parameter.annotations().stream().map(AnnotationSpec::get).collect(toImmutableList());
      ParameterSpec parameterSpec =
          ParameterSpec.builder(type, parameter.name()).addAnnotations(annotations).build();
      builder.add(parameterSpec);
    }
    return builder.build();
  }
{@link ParameterSpec}s to match {@code parameters}. Note that the type of the {@link
ParameterSpec}s match {@link Parameter#type()} and not {@link Key#type()}.
factory/src/main/java/com/google/auto/factory/processor/FactoryWriter.java