--- a/langtools/src/share/classes/com/sun/tools/javac/util/Log.java Sat Sep 29 09:00:58 2012 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Log.java Thu Oct 04 13:04:53 2012 +0100
@@ -130,7 +130,7 @@
/**
* Deferred diagnostics
*/
- public boolean deferDiagnostics;
+ public Filter<JCDiagnostic> deferredDiagFilter;
public Queue<JCDiagnostic> deferredDiagnostics = new ListBuffer<JCDiagnostic>();
/** Construct a log with given I/O redirections.
@@ -450,7 +450,7 @@
/** Report selected deferred diagnostics, and clear the deferDiagnostics flag. */
public void reportDeferredDiagnostics(Set<JCDiagnostic.Kind> kinds) {
- deferDiagnostics = false;
+ deferredDiagFilter = null;
JCDiagnostic d;
while ((d = deferredDiagnostics.poll()) != null) {
if (kinds.contains(d.getKind()))
@@ -464,7 +464,7 @@
* reported so far, the diagnostic may be handed off to writeDiagnostic.
*/
public void report(JCDiagnostic diagnostic) {
- if (deferDiagnostics) {
+ if (deferredDiagFilter != null && deferredDiagFilter.accepts(diagnostic)) {
deferredDiagnostics.add(diagnostic);
return;
}
@@ -551,6 +551,18 @@
}
}
+ public void deferAll() {
+ deferredDiagFilter = new Filter<JCDiagnostic>() {
+ public boolean accepts(JCDiagnostic t) {
+ return true;
+ }
+ };
+ }
+
+ public void deferNone() {
+ deferredDiagFilter = null;
+ }
+
/** Find a localized string in the resource bundle.
* Because this method is static, it ignores the locale.
* Use localize(key, args) when possible.