Skip to content

Commit d80dcb1

Browse files
authored
Show Error If State Name Is Uppercase (#53)
Temporary Fix
1 parent 88f2c7f commit d80dcb1

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

liquidjava-verifier/src/main/java/liquidjava/errors/ErrorHandler.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,7 @@ public static void printCostumeError(CtElement element, String msg, ErrorEmitter
181181
sb.append(element + "\n\n");
182182
sb.append("Location: " + element.getPosition() + "\n");
183183
sb.append("______________________________________________________\n");
184-
sb.append(sb.toString());
185-
184+
186185
errorl.addError(s, sb.toString(), element.getPosition(), 1);
187186
}
188187

liquidjava-verifier/src/main/java/liquidjava/processor/refinement_checker/TypeChecker.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,19 @@ public void handleStateSetsFromAnnotation(CtElement element) {
111111
}
112112

113113
private void createStateSet(CtNewArray<String> e, int set, CtElement element) {
114+
115+
// if any of the states starts with uppercase, throw error (reserved for alias)
116+
for (CtExpression<?> ce : e.getElements()) {
117+
if (ce instanceof CtLiteral<?>) {
118+
@SuppressWarnings("unchecked")
119+
CtLiteral<String> s = (CtLiteral<String>) ce;
120+
String f = s.getValue();
121+
if (Character.isUpperCase(f.charAt(0))) {
122+
ErrorHandler.printCostumeError(s, "State name must start with lowercase in '" + f + "'", errorEmitter);
123+
}
124+
}
125+
}
126+
114127
Optional<GhostFunction> og = createStateGhost(set, element);
115128
if (!og.isPresent()) {
116129
throw new RuntimeException("Error in creation of GhostFunction");

0 commit comments

Comments
 (0)