diff options
author | Egor Andreevici <egor@squareup.com> | 2020-01-13 07:41:01 -0600 |
---|---|---|
committer | Egor Andreevici <egor@squareup.com> | 2020-01-13 07:46:02 -0600 |
commit | 5a6c842a37a8c71f079ad2ce6063a70a9dee9e31 (patch) | |
tree | 167d9f134d502e6a46448ff01f562950b487c314 | |
parent | d3eef47161d7aea57273f1fe0b80fbb9068e785b (diff) | |
download | javapoet-5a6c842a37a8c71f079ad2ce6063a70a9dee9e31.tar.gz |
Remove parameter annotations in MethodSpec.overriding
- Change to not copy parameter annotations was first introduced in
9505ad0e027a1f125b5352ac722ea141831fbf1c.
- Change to properly copy mirror annotations in ParameterSpec.get
was introduced in a0eadbbf0e7b70f0fbbc66043536e4328c3808fd,
breaking the behavior of MethodSpec.overriding.
- This change preserves the correct behavior of ParameterSpec.get
while also removing annotations in MethodSpec.overriding.
-rw-r--r-- | src/main/java/com/squareup/javapoet/MethodSpec.java | 10 | ||||
-rw-r--r-- | src/test/java/com/squareup/javapoet/MethodSpecTest.java | 4 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/main/java/com/squareup/javapoet/MethodSpec.java b/src/main/java/com/squareup/javapoet/MethodSpec.java index 67722c7..b1e61c4 100644 --- a/src/main/java/com/squareup/javapoet/MethodSpec.java +++ b/src/main/java/com/squareup/javapoet/MethodSpec.java @@ -24,6 +24,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; import javax.lang.model.SourceVersion; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; @@ -232,7 +233,14 @@ public final class MethodSpec { } methodBuilder.returns(TypeName.get(method.getReturnType())); - methodBuilder.addParameters(ParameterSpec.parametersOf(method)); + methodBuilder.addParameters(ParameterSpec.parametersOf(method) + .stream() + .map(parameterSpec -> { + ParameterSpec.Builder builder = parameterSpec.toBuilder(); + builder.annotations.clear(); + return builder.build(); + }) + .collect(Collectors.toList())); methodBuilder.varargs(method.isVarArgs()); for (TypeMirror thrownType : method.getThrownTypes()) { diff --git a/src/test/java/com/squareup/javapoet/MethodSpecTest.java b/src/test/java/com/squareup/javapoet/MethodSpecTest.java index 5d3a434..b768351 100644 --- a/src/test/java/com/squareup/javapoet/MethodSpecTest.java +++ b/src/test/java/com/squareup/javapoet/MethodSpecTest.java @@ -148,8 +148,8 @@ public final class MethodSpecTest { + "@java.lang.Override\n" + "protected <T extends java.lang.Runnable & java.io.Closeable> java.lang.Runnable " + "everything(\n" - + " @com.squareup.javapoet.MethodSpecTest.Nullable java.lang.String arg0,\n" - + " java.util.List<? extends T> arg1) throws java.io.IOException, java.lang.SecurityException {\n" + + " java.lang.String arg0, java.util.List<? extends T> arg1) throws java.io.IOException,\n" + + " java.lang.SecurityException {\n" + "}\n"); } |