private static CompileError makeCompileError( AstElement e, String msg, ErrorHandler handler, CompileError.ErrorType errorType) throws CompileError { WPos pos = e.attrErrorPos(); if (handler.isUnitTestMode()) { throw new CompileError(pos, msg); } ListIterator<CompileError> it = handler.getErrors().listIterator(); while (it.hasNext()) { CompileError err = it.next(); if (err.getSource().getFile().equals(pos.getFile())) { if (bigger(err.getSource(), pos)) { // remove bigger errors it.remove(); } else if (bigger(pos, err.getSource()) || equal(pos, err.getSource())) { // do not add smaller or equal errors return null; } } } return new CompileError(pos, msg, errorType); }