diff options
author | Daniel Santiago <danyboricua91@gmail.com> | 2020-04-20 08:53:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-20 11:53:48 -0400 |
commit | 622e07eb0859fcf0eb9537ea5657277b7f3b18af (patch) | |
tree | 1ccb01b6c239623cc8f1e9d7714c96fab19be722 /src/main/java/com/squareup/javapoet | |
parent | 44622704248975ca398b90b4385005fdddeb35f9 (diff) | |
download | javapoet-622e07eb0859fcf0eb9537ea5657277b7f3b18af.tar.gz |
Don't copy parameter annotations when creating a ParameterSpec. (#770)
* Don't copy parameter annotations when creating a ParameterSpec.
This further preserves the behaviour discussed in https://github.com/square/javapoet/issues/482.
Unifying it for both MethodSpec.overriding and ParameterSpec.get.
* Add compilation test for when overriding a method with private annotations.
* Address PR comments:
* Remove unused import
* Rename newly added test
Diffstat (limited to 'src/main/java/com/squareup/javapoet')
-rw-r--r-- | src/main/java/com/squareup/javapoet/MethodSpec.java | 12 | ||||
-rw-r--r-- | src/main/java/com/squareup/javapoet/ParameterSpec.java | 10 |
2 files changed, 3 insertions, 19 deletions
diff --git a/src/main/java/com/squareup/javapoet/MethodSpec.java b/src/main/java/com/squareup/javapoet/MethodSpec.java index 2284ef5..67722c7 100644 --- a/src/main/java/com/squareup/javapoet/MethodSpec.java +++ b/src/main/java/com/squareup/javapoet/MethodSpec.java @@ -24,7 +24,6 @@ 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; @@ -233,16 +232,7 @@ public final class MethodSpec { } methodBuilder.returns(TypeName.get(method.getReturnType())); - // Copying parameter annotations from the overridden method can be incorrect so we're - // deliberately dropping them. See https://github.com/square/javapoet/issues/482. - methodBuilder.addParameters(ParameterSpec.parametersOf(method) - .stream() - .map(parameterSpec -> { - ParameterSpec.Builder builder = parameterSpec.toBuilder(); - builder.annotations.clear(); - return builder.build(); - }) - .collect(Collectors.toList())); + methodBuilder.addParameters(ParameterSpec.parametersOf(method)); methodBuilder.varargs(method.isVarArgs()); for (TypeMirror thrownType : method.getThrownTypes()) { diff --git a/src/main/java/com/squareup/javapoet/ParameterSpec.java b/src/main/java/com/squareup/javapoet/ParameterSpec.java index b8f3129..342e657 100644 --- a/src/main/java/com/squareup/javapoet/ParameterSpec.java +++ b/src/main/java/com/squareup/javapoet/ParameterSpec.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; -import java.util.stream.Collectors; import javax.lang.model.SourceVersion; import javax.lang.model.element.ElementKind; import javax.lang.model.element.ExecutableElement; @@ -87,17 +86,12 @@ public final class ParameterSpec { public static ParameterSpec get(VariableElement element) { checkArgument(element.getKind().equals(ElementKind.PARAMETER), "element is not a parameter"); - // Copy over any annotations from element. - List<AnnotationSpec> annotations = element.getAnnotationMirrors() - .stream() - .map((mirror) -> AnnotationSpec.get(mirror)) - .collect(Collectors.toList()); - TypeName type = TypeName.get(element.asType()); String name = element.getSimpleName().toString(); + // Copying parameter annotations can be incorrect so we're deliberately not including them. + // See https://github.com/square/javapoet/issues/482. return ParameterSpec.builder(type, name) .addModifiers(element.getModifiers()) - .addAnnotations(annotations) .build(); } |