private List getSuperTypes(ICompilationUnit cu, ProblemPosition problemPos) { List superTypes= new ArrayList();
private List getSuperTypes(ProblemPosition problemPos) { List superTypes= new ArrayList(); ICompilationUnit cu= fProblemPos.getCompilationUnit();
    private List getSuperTypes(ICompilationUnit cu, ProblemPosition problemPos) {        List superTypes= new ArrayList();                CompilationUnit astRoot= AST.parseCompilationUnit(cu, true);        if (problemPos.getId() == IProblem.ExceptionTypeNotFound) {            superTypes.add(astRoot.getAST().resolveWellKnownType("java.lang.Exception"));        } else {            ASTNode selectedNode= ASTResolving.findSelectedNode(astRoot, problemPos.getOffset(), problemPos.getLength());            if (selectedNode != null) {                ITypeBinding type= ASTResolving.getTypeBinding(selectedNode.getParent());                if (type != null) {                    if (type.isArray()) {                        type= type.getElementType();                    }                    if (type.isClass() || type.isInterface()) {                        superTypes.add(type);                                }                }            }        }                        return superTypes;    }