-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRefinementErrorDTO.java
More file actions
31 lines (26 loc) · 1.16 KB
/
Copy pathRefinementErrorDTO.java
File metadata and controls
31 lines (26 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package dtos.errors;
import dtos.diagnostics.SourcePositionDTO;
import dtos.diagnostics.VCSimplificationResultDTO;
import liquidjava.diagnostics.errors.RefinementError;
import liquidjava.rj_language.ast.formatter.ExpressionFormatter;
/**
* DTO for serializing RefinementError instances to JSON
*/
public class RefinementErrorDTO extends LJErrorDTO {
public final String expected;
public final VCSimplificationResultDTO found;
public final String customMessage;
public final String counterexample;
public final SourcePositionDTO declarationPosition;
public RefinementErrorDTO(RefinementError error) {
super("refinement-error", error);
this.expected = error.getExpected() == null ? null : ExpressionFormatter.format(error.getExpected());
this.found = VCSimplificationResultDTO.from(error.getFound());
this.customMessage = error.getCustomMessage();
this.counterexample = error.getCounterExampleString();
this.declarationPosition = SourcePositionDTO.from(error.getDeclarationPosition());
}
public static RefinementErrorDTO from(RefinementError error) {
return new RefinementErrorDTO(error);
}
}