Skip to content

Commit ec1375f

Browse files
committed
Replace ErrorEmitter with LJDiagnostics
1 parent c8e8616 commit ec1375f

25 files changed

+203
-194
lines changed

liquidjava-example/src/main/java/testSuite/SimpleTest.java renamed to liquidjava-example/src/main/java/testSuite/CorrectSimple.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import liquidjava.specification.Refinement;
44

55
@SuppressWarnings("unused")
6-
public class SimpleTest {
6+
public class CorrectSimple {
77
public static void main(String[] args) {
88
// Arithmetic Binary Operations
99
@Refinement("a >= 10")

liquidjava-example/src/main/java/testSuite/ErrorExtRefNonExistentClass.java renamed to liquidjava-example/src/main/java/testSuite/WarningExtRefNonExistentClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
import liquidjava.specification.ExternalRefinementsFor;
44

55
@ExternalRefinementsFor("non.existent.Class")
6-
public interface ErrorExtRefNonExistentClass {
6+
public interface WarningExtRefNonExistentClass {
77
public void NonExistentClass();
88
}

liquidjava-example/src/main/java/testSuite/ErrorExtRefNonExistentMethod.java renamed to liquidjava-example/src/main/java/testSuite/WarningExtRefNonExistentMethod.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import liquidjava.specification.StateRefinement;
66

77
@ExternalRefinementsFor("java.util.ArrayList")
8-
public interface ErrorExtRefNonExistentMethod<E> {
8+
public interface WarningExtRefNonExistentMethod<E> {
99

1010
@RefinementPredicate("int size(ArrayList l)")
1111
@StateRefinement(to = "size(this) == 0")

liquidjava-example/src/main/java/testSuite/ErrorExtRefWrongConstructor.java renamed to liquidjava-example/src/main/java/testSuite/WarningExtRefWrongConstructor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import liquidjava.specification.StateRefinement;
66

77
@ExternalRefinementsFor("java.util.ArrayList")
8-
public interface ErrorExtRefWrongConstructor<E> {
8+
public interface WarningExtRefWrongConstructor<E> {
99

1010
@RefinementPredicate("int size(ArrayList l)")
1111
@StateRefinement(to = "size(this) == 0")

liquidjava-example/src/main/java/testSuite/ErrorExtRefWrongParameterType.java renamed to liquidjava-example/src/main/java/testSuite/WarningExtRefWrongParameterType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import liquidjava.specification.StateRefinement;
66

77
@ExternalRefinementsFor("java.util.ArrayList")
8-
public interface ErrorExtRefWrongParameterType<E> {
8+
public interface WarningExtRefWrongParameterType<E> {
99

1010
@RefinementPredicate("int size(ArrayList l)")
1111
@StateRefinement(to = "size(this) == 0")

liquidjava-example/src/main/java/testSuite/ErrorExtRefWrongRetType.java renamed to liquidjava-example/src/main/java/testSuite/WarningExtRefWrongRetType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import liquidjava.specification.StateRefinement;
66

77
@ExternalRefinementsFor("java.util.ArrayList")
8-
public interface ErrorExtRefWrongRetType<E> {
8+
public interface WarningExtRefWrongRetType<E> {
99

1010
@RefinementPredicate("int size(ArrayList l)")
1111
@StateRefinement(to = "size(this) == 0")

liquidjava-verifier/src/main/java/liquidjava/api/CommandLineLauncher.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import java.util.Arrays;
77
import java.util.List;
88

9-
import liquidjava.diagnostics.ErrorEmitter;
109
import liquidjava.diagnostics.errors.CustomError;
1110
import liquidjava.processor.RefinementProcessor;
1211
import spoon.Launcher;
@@ -27,7 +26,12 @@ public static void main(String[] args) {
2726
}
2827
List<String> paths = Arrays.asList(args);
2928
launch(paths.toArray(new String[0]));
30-
System.out.println(diagnostics.foundError() ? diagnostics.toString() : "Correct! Passed Verification.");
29+
if (diagnostics.foundError()) {
30+
System.out.println(diagnostics.getErrorOutput());
31+
} else {
32+
System.out.println(diagnostics.getWarningOutput());
33+
System.out.println("Correct! Passed Verification.");
34+
}
3135
}
3236

3337
public static void launch(String... paths) {
@@ -45,6 +49,7 @@ public static void launch(String... paths) {
4549
launcher.getEnvironment().setNoClasspath(true);
4650
launcher.getEnvironment().setComplianceLevel(8);
4751
launcher.run();
52+
diagnostics.clear();
4853

4954
final Factory factory = launcher.getFactory();
5055
final ProcessingManager processingManager = new QueueProcessingManager(factory);

liquidjava-verifier/src/main/java/liquidjava/diagnostics/ErrorEmitter.java

Lines changed: 0 additions & 8 deletions
This file was deleted.

liquidjava-verifier/src/main/java/liquidjava/diagnostics/LJDiagnostics.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@ public void clear() {
5858
this.warnings.clear();
5959
}
6060

61-
@Override
62-
public String toString() {
61+
public String getErrorOutput() {
6362
StringBuilder sb = new StringBuilder();
6463
if (foundError()) {
6564
for (LJError error : errors) {
@@ -76,4 +75,14 @@ public String toString() {
7675
}
7776
return sb.toString();
7877
}
78+
79+
public String getWarningOutput() {
80+
StringBuilder sb = new StringBuilder();
81+
if (foundWarning()) {
82+
for (LJWarning warning : warnings) {
83+
sb.append(warning.toString()).append("\n");
84+
}
85+
}
86+
return sb.toString();
87+
}
7988
}

liquidjava-verifier/src/main/java/liquidjava/diagnostics/errors/LJError.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,12 @@ public TranslationTable getTranslationTable() {
6262

6363
public String toString(String extra) {
6464
StringBuilder sb = new StringBuilder();
65-
sb.append(title).append(" at: \n").append(element.toString().replace("@liquidjava.specification.", "@"))
66-
.append("\n\n");
65+
sb.append(title);
66+
67+
if (element != null)
68+
sb.append(" at: \n").append(element.toString().replace("@liquidjava.specification.", "@"));
69+
70+
sb.append("\n");
6771
sb.append(message).append("\n");
6872
if (extra != null)
6973
sb.append(extra).append("\n");

0 commit comments

Comments
 (0)