aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
authorEric Cochran <Eric@NightlyNexus.com>2018-03-04 04:25:01 -0800
committerJesse Wilson <jesse@swank.ca>2018-03-04 07:25:01 -0500
commitadced314c48865463594bf58022f509090eef7af (patch)
tree05358ae2abd6945c95ee4dc2541a1fd5522d599f /src/main/java/com
parentee82208f4bc086e0b1334445f600789879fc7a78 (diff)
downloadjavapoet-adced314c48865463594bf58022f509090eef7af.tar.gz
Use contextual type parameters for throws types. (#625)
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/squareup/javapoet/MethodSpec.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/main/java/com/squareup/javapoet/MethodSpec.java b/src/main/java/com/squareup/javapoet/MethodSpec.java
index 67a7fb2..453d64d 100644
--- a/src/main/java/com/squareup/javapoet/MethodSpec.java
+++ b/src/main/java/com/squareup/javapoet/MethodSpec.java
@@ -243,6 +243,7 @@ public final class MethodSpec {
ExecutableElement method, DeclaredType enclosing, Types types) {
ExecutableType executableType = (ExecutableType) types.asMemberOf(enclosing, method);
List<? extends TypeMirror> resolvedParameterTypes = executableType.getParameterTypes();
+ List<? extends TypeMirror> resolvedThrownTypes = executableType.getThrownTypes();
TypeMirror resolvedReturnType = executableType.getReturnType();
Builder builder = overriding(method);
@@ -252,6 +253,10 @@ public final class MethodSpec {
TypeName type = TypeName.get(resolvedParameterTypes.get(i));
builder.parameters.set(i, parameter.toBuilder(type, parameter.name).build());
}
+ builder.exceptions.clear();
+ for (int i = 0, size = resolvedThrownTypes.size(); i < size; i++) {
+ builder.addException(TypeName.get(resolvedThrownTypes.get(i)));
+ }
return builder;
}