From 9dbf7ce22b7735e644d964437313a34229800e57 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 6 Feb 2016 16:46:34 +0000 Subject: Read return type of method once --- .../java/org/zwobble/couscous/frontends/java/JavaReader.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java index 35ed03e..2067381 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java @@ -288,8 +288,10 @@ public class JavaReader { Scope scope = outerScope.enterMethod(method.getName().getIdentifier()); List formalArguments = readFormalArguments(scope, method); - List body = readBody(scope, method); List annotations = readAnnotations(method); + Optional returnType = Optional.ofNullable(method.getReturnType2()) + .map(JavaTypes::typeOf); + List body = readBody(scope, method, returnType); if (method.isConstructor()) { return constructor( @@ -301,7 +303,7 @@ public class JavaReader { Modifier.isStatic(method.getModifiers()), method.getName().getIdentifier(), formalArguments, - typeOf(method.getReturnType2()), + returnType.get(), body); } } @@ -320,12 +322,9 @@ public class JavaReader { return eagerMap(parameters, parameter -> JavaVariableDeclarationReader.read(scope, parameter)); } - private List readBody(Scope scope, MethodDeclaration method) { + private List readBody(Scope scope, MethodDeclaration method, Optional returnType) { @SuppressWarnings("unchecked") List statements = method.getBody().statements(); - Optional returnType = Optional.ofNullable(method.getReturnType2()) - .map(Type::resolveBinding) - .map(JavaTypes::typeOf); return readStatements(scope, statements, returnType); } -- cgit v1.2.3