Open lsingh123 opened 1 year ago
WildcardTypeName ignores its annotations when emitting. For example, consider the following code:
WildcardTypeName wildcard = WildcardTypeName.subtypeOf(com.squareup.javapoet.TypeName.LONG.box()) .annotated(List.of(AnnotationSpec.builder(Safe.class).build())); ParameterizedTypeName paramTypeName = ParameterizedTypeName.get(ClassName.get(Optional.class), wildcard); TypeSpec testTypeSpec = TypeSpec.classBuilder("PoetTestClass") .addField(paramTypeName, "testWildcardField", Modifier.PRIVATE) .build(); JavaFile file = JavaFile.builder("com.poet.test", testTypeSpec) .skipJavaLangImports(true) .indent(" ") .build(); file.writeTo(tempDir.toPath(), StandardCharsets.UTF_8);
We expect this to output:
package com.poet.test; import java.util.Optional; class PoetTestClass { private Optional<@Safe ? extends Long> testWildcardField; }
But instead it outputs:
package com.poet.test; import java.util.Optional; class PoetTestClass { private Optional<? extends Long> testWildcardField; }
Hi, I would like to work on this issue. Since I am new to open source world it would be great if you can guide me.
WildcardTypeName ignores its annotations when emitting. For example, consider the following code:
We expect this to output:
But instead it outputs: