equal
deleted
inserted
replaced
31 import java.util.EnumSet; |
31 import java.util.EnumSet; |
32 import java.util.HashSet; |
32 import java.util.HashSet; |
33 import java.util.Map; |
33 import java.util.Map; |
34 import java.util.Queue; |
34 import java.util.Queue; |
35 import java.util.Set; |
35 import java.util.Set; |
|
36 import java.util.function.Predicate; |
36 |
37 |
37 import javax.tools.DiagnosticListener; |
38 import javax.tools.DiagnosticListener; |
38 import javax.tools.JavaFileObject; |
39 import javax.tools.JavaFileObject; |
39 |
40 |
40 import com.sun.tools.javac.api.DiagnosticFormatter; |
41 import com.sun.tools.javac.api.DiagnosticFormatter; |
156 return deferred; |
157 return deferred; |
157 } |
158 } |
158 |
159 |
159 /** Report all deferred diagnostics. */ |
160 /** Report all deferred diagnostics. */ |
160 public void reportDeferredDiagnostics() { |
161 public void reportDeferredDiagnostics() { |
161 reportDeferredDiagnostics(EnumSet.allOf(JCDiagnostic.Kind.class)); |
162 reportDeferredDiagnostics(d -> true); |
162 } |
163 } |
163 |
164 |
164 /** Report selected deferred diagnostics. */ |
165 /** Report selected deferred diagnostics. */ |
165 public void reportDeferredDiagnostics(Set<JCDiagnostic.Kind> kinds) { |
166 public void reportDeferredDiagnostics(Predicate<JCDiagnostic> accepter) { |
166 JCDiagnostic d; |
167 JCDiagnostic d; |
167 while ((d = deferred.poll()) != null) { |
168 while ((d = deferred.poll()) != null) { |
168 if (kinds.contains(d.getKind())) |
169 if (accepter.test(d)) |
169 prev.report(d); |
170 prev.report(d); |
170 } |
171 } |
171 deferred = null; // prevent accidental ongoing use |
172 deferred = null; // prevent accidental ongoing use |
172 } |
173 } |
173 } |
174 } |
711 } |
712 } |
712 break; |
713 break; |
713 |
714 |
714 case ERROR: |
715 case ERROR: |
715 if (nerrors < MaxErrors && |
716 if (nerrors < MaxErrors && |
716 (diagnostic.isFlagSet(DiagnosticFlag.MULTIPLE) || |
717 (diagnostic.isFlagSet(DiagnosticFlag.API) || |
717 shouldReport(diagnostic))) { |
718 shouldReport(diagnostic))) { |
718 writeDiagnostic(diagnostic); |
719 writeDiagnostic(diagnostic); |
719 nerrors++; |
720 nerrors++; |
720 } |
721 } |
721 break; |
722 break; |