aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java11
1 files changed, 7 insertions, 4 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 c576f0c52c..ff99931c8e 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
@@ -596,7 +596,7 @@ public class AutoCodecProcessor extends AbstractProcessor {
return Optional.empty();
}
- private static TypeSpec.Builder buildClassWithPolymorphicStrategy(
+ private TypeSpec.Builder buildClassWithPolymorphicStrategy(
TypeElement encodedType, @Nullable TypeElement dependency) {
if (!encodedType.getModifiers().contains(Modifier.ABSTRACT)) {
throw new IllegalArgumentException(
@@ -609,16 +609,19 @@ public class AutoCodecProcessor extends AbstractProcessor {
return codecClassBuilder;
}
- private static MethodSpec buildPolymorphicSerializeMethod(
+ private MethodSpec buildPolymorphicSerializeMethod(
TypeElement encodedType, @Nullable TypeElement dependency) {
MethodSpec.Builder builder =
AutoCodecUtil.initializeSerializeMethodBuilder(encodedType, dependency);
+ TypeName polyClass = TypeName.get(env.getTypeUtils().erasure(encodedType.asType()));
if (dependency == null) {
- builder.addStatement("$T.serialize(input, codedOut, null)", PolymorphicHelper.class);
+ builder.addStatement(
+ "$T.serialize(input, $T.class, codedOut, null)", PolymorphicHelper.class, polyClass);
} else {
builder.addStatement(
- "$T.serialize(input, codedOut, $T.ofNullable(dependency))",
+ "$T.serialize(input, $T.class, codedOut, $T.ofNullable(dependency))",
PolymorphicHelper.class,
+ polyClass,
Optional.class);
}
return builder.build();