equal
deleted
inserted
replaced
424 protected Set<Pair<JavaFileObject, Integer>> recorded = new HashSet<>(); |
424 protected Set<Pair<JavaFileObject, Integer>> recorded = new HashSet<>(); |
425 |
425 |
426 /** A set of "not-supported-in-source-X" errors produced so far. This is used to only generate |
426 /** A set of "not-supported-in-source-X" errors produced so far. This is used to only generate |
427 * one such error per file. |
427 * one such error per file. |
428 */ |
428 */ |
429 protected Set<Pair<JavaFileObject, String>> recordedSourceLevelErrors = new HashSet<>(); |
429 protected Set<Pair<JavaFileObject, List<String>>> recordedSourceLevelErrors = new HashSet<>(); |
430 |
430 |
431 public boolean hasDiagnosticListener() { |
431 public boolean hasDiagnosticListener() { |
432 return diagListener != null; |
432 return diagListener != null; |
433 } |
433 } |
434 |
434 |
519 return false; |
519 return false; |
520 |
520 |
521 if (!d.isFlagSet(DiagnosticFlag.SOURCE_LEVEL)) |
521 if (!d.isFlagSet(DiagnosticFlag.SOURCE_LEVEL)) |
522 return true; |
522 return true; |
523 |
523 |
524 Pair<JavaFileObject, String> coords = new Pair<>(file, d.getCode()); |
524 Pair<JavaFileObject, List<String>> coords = new Pair<>(file, getCode(d)); |
525 boolean shouldReport = !recordedSourceLevelErrors.contains(coords); |
525 boolean shouldReport = !recordedSourceLevelErrors.contains(coords); |
526 if (shouldReport) |
526 if (shouldReport) |
527 recordedSourceLevelErrors.add(coords); |
527 recordedSourceLevelErrors.add(coords); |
528 return shouldReport; |
528 return shouldReport; |
529 } |
529 } |
|
530 |
|
531 //where |
|
532 private List<String> getCode(JCDiagnostic d) { |
|
533 ListBuffer<String> buf = new ListBuffer<>(); |
|
534 getCodeRecursive(buf, d); |
|
535 return buf.toList(); |
|
536 } |
|
537 |
|
538 private void getCodeRecursive(ListBuffer<String> buf, JCDiagnostic d) { |
|
539 buf.add(d.getCode()); |
|
540 for (Object o : d.getArgs()) { |
|
541 if (o instanceof JCDiagnostic) { |
|
542 getCodeRecursive(buf, (JCDiagnostic)o); |
|
543 } |
|
544 } |
|
545 } |
530 |
546 |
531 /** Prompt user after an error. |
547 /** Prompt user after an error. |
532 */ |
548 */ |
533 public void prompt() { |
549 public void prompt() { |
534 if (promptOnError) { |
550 if (promptOnError) { |