1/*
2 * @test /nodynamiccopyright/
3 * @bug 6403459
4 * @summary Test that generating programs with syntax errors is a fatal condition
5 * @author  Joseph D. Darcy
6 * @library /tools/javac/lib
7 * @modules java.compiler
8 *          jdk.compiler
9 * @build JavacTestingAbstractProcessor
10 * @compile TestReturnCode.java
11 * @compile TestFatalityOfParseErrors.java
12 * @compile/fail/ref=TestFatalityOfParseErrors.out -XDrawDiagnostics -XprintRounds -processor TestFatalityOfParseErrors -proc:only TestFatalityOfParseErrors.java
13 */
14
15import java.util.Set;
16import javax.annotation.processing.*;
17import javax.lang.model.SourceVersion;
18import static javax.lang.model.SourceVersion.*;
19import javax.lang.model.element.*;
20import javax.lang.model.util.*;
21import static javax.tools.Diagnostic.Kind.*;
22
23import java.io.PrintWriter;
24import java.io.IOException;
25
26/**
27 * Write out an incomplete source file and observe that the next round
28 * is marked as an error.
29 */
30public class TestFatalityOfParseErrors extends JavacTestingAbstractProcessor {
31
32    public boolean process(Set<? extends TypeElement> annotations,
33                           RoundEnvironment roundEnvironment) {
34        try (PrintWriter pw = new PrintWriter(filer.createSourceFile("SyntaxError").openWriter())) {
35            pw.println("class SyntaxError {");
36        } catch (IOException ioException) {
37        }
38        return true;
39    }
40}
41