Makes @AutoCodec only use Instantiator parameter type information and ignore
field type information.

PiperOrigin-RevId: 184695891
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java
index d648aeb..9da4420 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java
@@ -263,9 +263,7 @@
     MethodSpec.Builder serializeBuilder =
         AutoCodecUtil.initializeSerializeMethodBuilder(encodedType, parameters.dependency);
     for (VariableElement parameter : parameters.fields) {
-      VariableElement field =
-          getFieldByName(encodedType, parameter.getSimpleName().toString()).value;
-      TypeKind typeKind = field.asType().getKind();
+      TypeKind typeKind = parameter.asType().getKind();
       switch (typeKind) {
         case BOOLEAN:
           serializeBuilder.addStatement(
@@ -284,9 +282,9 @@
         case DECLARED:
           serializeBuilder.addStatement(
               "$T unsafe_$L = ($T) $T.getInstance().getObject(input, $L_offset)",
-              field.asType(),
+              parameter.asType(),
               parameter.getSimpleName(),
-              field.asType(),
+              parameter.asType(),
               UnsafeProvider.class,
               parameter.getSimpleName());
           marshallers.writeSerializationCode(
@@ -501,13 +499,6 @@
     MethodSpec.Builder constructor = MethodSpec.constructorBuilder();
     for (VariableElement param : parameters) {
       FieldValueAndClass field = getFieldByName(encodedType, param.getSimpleName().toString());
-      if (!env.getTypeUtils().isSameType(field.value.asType(), param.asType())) {
-        throw new IllegalArgumentException(
-            encodedType.getQualifiedName()
-                + " field "
-                + field.value.getSimpleName()
-                + " has mismatching type.");
-      }
       builder.addField(
           TypeName.LONG, param.getSimpleName() + "_offset", Modifier.PRIVATE, Modifier.FINAL);
       constructor.beginControlFlow("try");