|
|
@@ -485,7 +485,7 @@ public class DefCastTests extends ScriptTestCase {
|
|
|
expectScriptThrows(ClassCastException.class, () -> exec("def d = Double.valueOf(0); Float b = d;"));
|
|
|
expectScriptThrows(ClassCastException.class, () -> exec("def d = new ArrayList(); Float b = d;"));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public void testdefToDoubleImplicit() {
|
|
|
expectScriptThrows(ClassCastException.class, () -> exec("def d = 'string'; Double b = d;"));
|
|
|
expectScriptThrows(ClassCastException.class, () -> exec("def d = true; Double b = d;"));
|
|
|
@@ -684,6 +684,19 @@ public class DefCastTests extends ScriptTestCase {
|
|
|
assertEquals("s", exec("def d = (char)'s'; String b = (String)d; b"));
|
|
|
}
|
|
|
|
|
|
+ public void testConstFoldingDefCast() {
|
|
|
+ assertFalse((boolean)exec("def chr = 10; return (chr == (char)'x');"));
|
|
|
+ assertFalse((boolean)exec("def chr = 10; return (chr >= (char)'x');"));
|
|
|
+ assertTrue((boolean)exec("def chr = (char)10; return (chr <= (char)'x');"));
|
|
|
+ assertTrue((boolean)exec("def chr = 10; return (chr < (char)'x');"));
|
|
|
+ assertFalse((boolean)exec("def chr = (char)10; return (chr > (char)'x');"));
|
|
|
+ assertFalse((boolean)exec("def chr = 10L; return (chr > (char)'x');"));
|
|
|
+ assertFalse((boolean)exec("def chr = 10F; return (chr > (char)'x');"));
|
|
|
+ assertFalse((boolean)exec("def chr = 10D; return (chr > (char)'x');"));
|
|
|
+ assertFalse((boolean)exec("def chr = (char)10L; return (chr > (byte)10);"));
|
|
|
+ assertFalse((boolean)exec("def chr = (char)10L; return (chr > (double)(byte)(char)10);"));
|
|
|
+ }
|
|
|
+
|
|
|
// TODO: remove this when the transition from Joda to Java datetimes is completed
|
|
|
public void testdefToZonedDateTime() {
|
|
|
assertEquals(0L, exec(
|