aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar shahan <shahan@google.com>2018-02-06 09:57:46 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-06 09:59:31 -0800
commit5a960cfc7464edeced1da68d87b1e27d53a6742c (patch)
tree5718145ba358a79be5f61c3b999e15033b821bfd
parenta5ff30ae5259558681ffcb6bc57baeb6f0b3e171 (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.java15
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");