Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4b576da19d |
No files matched your search
@@ -5,4 +5,8 @@ public class Literal {
|
||||
public m2() { return 'C'; }
|
||||
public m3() { return 10L; }
|
||||
public m4() { return 10.5F; }
|
||||
public m5() { return 10.5D; }
|
||||
public m6() { return 0xFF; }
|
||||
public m7() { return 0b101010; }
|
||||
public m8() { return 010; }
|
||||
}
|
||||
@@ -1033,10 +1033,22 @@ public class StatementGenerator {
|
||||
private Expression convert(Java17Parser.LiteralContext literal) {
|
||||
switch (literal) {
|
||||
case IntLiteralContext intliteral:
|
||||
var text = intliteral.getText();
|
||||
var radix = 10;
|
||||
if (text.startsWith("0x") || text.startsWith("0X")) {
|
||||
radix = 16;
|
||||
text = text.substring(2);
|
||||
} else if (text.startsWith("0b") || text.startsWith("0B")) {
|
||||
radix = 2;
|
||||
text = text.substring(2);
|
||||
} else if (text.startsWith("0") && text.length() > 1) {
|
||||
radix = 8;
|
||||
text = text.substring(1);
|
||||
}
|
||||
Number value;
|
||||
if (intliteral.getText().endsWith("l") || intliteral.getText().endsWith("L"))
|
||||
value = Long.parseLong(intliteral.getText().substring(0, intliteral.getText().length() - 1));
|
||||
else value = Integer.parseInt(intliteral.getText());
|
||||
if (text.endsWith("l") || text.endsWith("L"))
|
||||
value = Long.parseLong(text.substring(0, text.length() - 1), radix);
|
||||
else value = Integer.parseInt(text, radix);
|
||||
return new Literal(TypePlaceholder.fresh(literal.getStart()), value, intliteral.getStart());
|
||||
case FltLiteralContext floatliteral:
|
||||
if (floatliteral.getText().endsWith("f") || floatliteral.getText().endsWith("F"))
|
||||
|
||||
@@ -1230,6 +1230,10 @@ public class TestComplete {
|
||||
assertEquals('C', clazz.getDeclaredMethod("m2").invoke(instance));
|
||||
assertEquals(10L, clazz.getDeclaredMethod("m3").invoke(instance));
|
||||
assertEquals(10.5F, clazz.getDeclaredMethod("m4").invoke(instance));
|
||||
assertEquals(10.5D, clazz.getDeclaredMethod("m5").invoke(instance));
|
||||
assertEquals(0xFF, clazz.getDeclaredMethod("m6").invoke(instance));
|
||||
assertEquals(0b101010, clazz.getDeclaredMethod("m7").invoke(instance));
|
||||
assertEquals(010, clazz.getDeclaredMethod("m8").invoke(instance));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in new issue
Block a user