diff options
author | 2018-02-06 09:57:46 -0800 | |
---|---|---|
committer | 2018-02-06 09:59:31 -0800 | |
commit | 5a960cfc7464edeced1da68d87b1e27d53a6742c (patch) | |
tree | 5718145ba358a79be5f61c3b999e15033b821bfd | |
parent | a5ff30ae5259558681ffcb6bc57baeb6f0b3e171 (diff) |
Makes @AutoCodec only use Instantiator parameter type information and ignore
field type information.
PiperOrigin-RevId: 184695891
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java | 15 |
1 files changed, 3 insertions, 12 deletions
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 d648aeb72e..9da4420e9f 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 @@ public class AutoCodecProcessor extends AbstractProcessor { 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 @@ public class AutoCodecProcessor extends AbstractProcessor { 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 @@ public class AutoCodecProcessor extends AbstractProcessor { 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"); |