@Override public boolean visit(ReturnStatement node) { if (node.getExpression() instanceof ClassInstanceCreation) { ClassInstanceCreation cic = (ClassInstanceCreation) node.getExpression(); ITypeBinding typeBinding = cic.getType().resolveBinding(); if (typeBinding == null) { String qualifiedClass = cic.getType().toString(); ResolveClassnameResult result = resolveClassname(qualifiedClass); qualifiedClass = result.result; ResolutionStatus resolutionStatus = result.found ? ResolutionStatus.RECOVERED : ResolutionStatus.UNRESOLVED; PackageAndClassName packageAndClassName = PackageAndClassName.parseFromQualifiedName(qualifiedClass); processTypeAsString(qualifiedClass, packageAndClassName.packageName, packageAndClassName.className, resolutionStatus, TypeReferenceLocation.CONSTRUCTOR_CALL, compilationUnit.getLineNumber(node.getStartPosition()), compilationUnit.getColumnNumber(cic.getStartPosition()), cic.getLength(), node.toString()); } else { processTypeBinding(typeBinding, ResolutionStatus.RESOLVED, TypeReferenceLocation.CONSTRUCTOR_CALL, compilationUnit.getLineNumber(node.getStartPosition()), compilationUnit.getColumnNumber(cic.getStartPosition()), cic.getLength(), node.toString()); } } return super.visit(node); }