Skip to content

Commit b4b41e0

Browse files
authored
Replace ErrorEmitter with LJDiagnostics (#110)
1 parent 11a9263 commit b4b41e0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+443
-806
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")
Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package liquidjava.api;
22

3+
import static liquidjava.diagnostics.LJDiagnostics.diagnostics;
4+
35
import java.io.File;
46
import java.util.Arrays;
57
import java.util.List;
68

7-
import liquidjava.diagnostics.ErrorEmitter;
9+
import liquidjava.diagnostics.errors.CustomError;
810
import liquidjava.processor.RefinementProcessor;
911
import spoon.Launcher;
1012
import spoon.processing.ProcessingManager;
@@ -14,51 +16,44 @@
1416

1517
public class CommandLineLauncher {
1618
public static void main(String[] args) {
17-
// String allPath = "C://Regen/test-projects/src/Main.java";
18-
// In eclipse only needed this:"../liquidjava-example/src/main/java/"
19-
// In VSCode needs:
20-
// "../liquidjava/liquidjava-umbrella/liquidjava-example/src/main/java/liquidjava/test/project";
21-
2219
if (args.length == 0) {
23-
System.out.println("No input files or directories provided");
20+
System.out.println("No input paths provided");
2421
System.out.println("\nUsage: ./liquidjava <...paths>");
25-
System.out.println(" <...paths>: Paths to files or directories to be verified by LiquidJava");
22+
System.out.println(" <...paths>: Paths to be verified by LiquidJava");
2623
System.out.println(
27-
"\nExample: ./liquidjava liquidjava-example/src/main/java/test/currentlyTesting liquidjava-example/src/main/java/testingInProgress/Account.java");
24+
"\nExample: ./liquidjava liquidjava-example/src/main/java/test liquidjava-example/src/main/java/testingInProgress/Account.java");
2825
return;
2926
}
3027
List<String> paths = Arrays.asList(args);
31-
ErrorEmitter ee = launch(paths.toArray(new String[0]));
32-
System.out.println(ee.foundError() ? (ee.getFullMessage()) : ("Correct! Passed Verification."));
28+
launch(paths.toArray(new String[0]));
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+
}
3335
}
3436

35-
public static ErrorEmitter launch(String... paths) {
37+
public static void launch(String... paths) {
3638
System.out.println("Running LiquidJava on: " + Arrays.toString(paths).replaceAll("[\\[\\]]", ""));
3739

38-
ErrorEmitter ee = new ErrorEmitter();
3940
Launcher launcher = new Launcher();
4041
for (String path : paths) {
4142
if (!new File(path).exists()) {
42-
ee.addError("Path not found", "The path " + path + " does not exist", 1);
43-
return ee;
43+
diagnostics.add(new CustomError("The path " + path + " was not found"));
44+
return;
4445
}
4546
launcher.addInputResource(path);
4647
}
47-
launcher.getEnvironment().setNoClasspath(true);
48-
49-
// Get the current classpath from the system
50-
// String classpath = System.getProperty("java.class.path");
51-
// launcher.getEnvironment().setSourceClasspath(classpath.split(File.pathSeparator));
5248

53-
// optional
54-
// launcher.getEnvironment().setSourceClasspath(
55-
// "lib1.jar:lib2.jar".split(":"));
49+
launcher.getEnvironment().setNoClasspath(true);
5650
launcher.getEnvironment().setComplianceLevel(8);
5751
launcher.run();
52+
diagnostics.clear();
5853

5954
final Factory factory = launcher.getFactory();
6055
final ProcessingManager processingManager = new QueueProcessingManager(factory);
61-
final RefinementProcessor processor = new RefinementProcessor(factory, ee);
56+
final RefinementProcessor processor = new RefinementProcessor(factory);
6257
processingManager.addProcessor(processor);
6358

6459
try {
@@ -71,6 +66,6 @@ public static ErrorEmitter launch(String... paths) {
7166
throw e;
7267
}
7368

74-
return ee;
69+
return;
7570
}
7671
}

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

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

0 commit comments

Comments
 (0)