}
}
boolean foundReturnTypeProblem = false;
if (!method.isConstructor()) {
TypeReference returnType = methodDecl instanceof MethodDeclaration
? ((MethodDeclaration) methodDecl).returnType
: null;
if (returnType == null) {
methodDecl.scope.problemReporter().missingReturnType(methodDecl);
method.returnType = null;
foundReturnTypeProblem = true;
} else {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=322817
boolean deferRawTypeCheck = !reportUnavoidableGenericTypeProblems && (returnType.bits & ASTNode.IgnoreRawTypeCheck) == 0;
TypeBinding methodType;
if (deferRawTypeCheck) {
returnType.bits |= ASTNode.IgnoreRawTypeCheck;
}
try {
methodType = returnType.resolveType(methodDecl.scope, true /* check bounds*/);
} finally {
if (deferRawTypeCheck) {
returnType.bits &= ~ASTNode.IgnoreRawTypeCheck;
}
}