Skip to content

Commit 3c57814

Browse files
committed
Fix Static Final Char Resolution
1 parent 14dc9f9 commit 3c57814

3 files changed

Lines changed: 29 additions & 2 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package testSuite;
2+
3+
import liquidjava.specification.Refinement;
4+
5+
public class CorrectStaticFinalCharInPredicate {
6+
7+
static void requireMaxChar(@Refinement("_ == Character.MAX_VALUE") char c) {
8+
}
9+
10+
public static void main(String[] args) {
11+
requireMaxChar(Character.MAX_VALUE);
12+
}
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package testSuite;
2+
3+
import liquidjava.specification.Refinement;
4+
5+
public class ErrorStaticFinalCharInPredicate {
6+
7+
static void requireMaxChar(@Refinement("_ == Character.MAX_VALUE") char c) {
8+
}
9+
10+
public static void main(String[] args) {
11+
requireMaxChar('\''); // Refinement Error
12+
}
13+
}

liquidjava-verifier/src/main/java/liquidjava/utils/StaticConstants.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.lang.reflect.Modifier;
55

66
import liquidjava.rj_language.Predicate;
7+
import liquidjava.rj_language.ast.LiteralChar;
78
import liquidjava.rj_language.ast.LiteralString;
89
import liquidjava.utils.constants.Types;
910
import spoon.reflect.code.CtLiteral;
@@ -170,8 +171,8 @@ public static Predicate asLiteralPredicate(Object value) {
170171
return Predicate.createLit(value.toString(), Types.FLOAT);
171172
if (value instanceof Double)
172173
return Predicate.createLit(value.toString(), Types.DOUBLE);
173-
if (value instanceof Character)
174-
return Predicate.createLit("'" + value + "'", Types.CHAR);
174+
if (value instanceof Character c)
175+
return new Predicate(new LiteralChar(c));
175176
if (value instanceof String s)
176177
return new Predicate(new LiteralString("\"" + s + "\""));
177178
return null;

0 commit comments

Comments
 (0)