void abortWithError(Throwable throwable, Element e) {
        throwable.printStackTrace(new PrintWriter(new Writer() {
            @Override
            public void write(char[] chars, int i, int i1) throws IOException {
                messager.printMessage(Diagnostic.Kind.ERROR, new String(chars), e);
            }

            @Override
            public void flush() throws IOException {

            }

            @Override
            public void close() throws IOException {

            }
        }));
        throw new AbortProcessingException();
    }
Issue a compilation error and abandon the processing of this class. This does not prevent the
processing of other classes.

@param msg the text of the error
@param e   the element to which it pertains
android/annotation_processors/xposed_hook_compiler/src/main/java/github/tornaco/permission/compiler/ErrorReporter.java