Merge pull request #13751 from igfoo/igfoo/getCompilationInfo

Java: Improve the diagnostics consistency query
This commit is contained in:
Ian Lynagh
2023-07-25 16:54:17 +01:00
committed by GitHub
3 changed files with 11 additions and 1 deletions

View File

@@ -28,7 +28,8 @@ string diagnosticMessage(Diagnostic d) {
// something is fixed.
query predicate unusedDiagnosticException(DiagnosticException de) { not exists(de.getException()) }
query predicate unexpectedDiagnostic(Diagnostic d, string s) {
query predicate unexpectedDiagnostic(Compilation c, int f, int i, Diagnostic d, string s) {
d.getCompilationInfo(c, f, i) and
s = diagnosticMessage(d) and
not d = any(DiagnosticException de).getException()
}

View File

@@ -0,0 +1,4 @@
---
category: feature
---
* A `Diagnostic.getCompilationInfo()` predicate has been added.

View File

@@ -9,6 +9,11 @@ class Diagnostic extends @diagnostic {
/** Gets the compilation that generated this diagnostic. */
Compilation getCompilation() { diagnostic_for(this, result, _, _) }
/** Gets the compilation information for this diagnostic. */
predicate getCompilationInfo(Compilation c, int fileNumber, int diagnosticNumber) {
diagnostic_for(this, c, fileNumber, diagnosticNumber)
}
/**
* Gets the program that generated this diagnostic.
*/