private static boolean equal(JValueLiteral literal1, JValueLiteral literal2) { if (literal1 == null || literal2 == null) { return literal1 == literal2; } if (literal1 == literal2) { return true; } if (literal1.getClass() != literal2.getClass()) { // these are different literal types. return false; } if (literal1 instanceof JFloatLiteral) { int bits1 = Float.floatToRawIntBits(((JFloatLiteral) literal1).getValue()); int bits2 = Float.floatToRawIntBits(((JFloatLiteral) literal2).getValue()); return bits1 == bits2; } if (literal1 instanceof JDoubleLiteral) { long bits1 = Double.doubleToRawLongBits(((JDoubleLiteral) literal1).getValue()); long bits2 = Double.doubleToRawLongBits(((JDoubleLiteral) literal2).getValue()); return bits1 == bits2; } Object valueObj1 = literal1.getValueObj(); Object valueObj2 = literal2.getValueObj(); if (valueObj1 == null || valueObj2 == null) { return valueObj1 == valueObj2; } return valueObj1.equals(valueObj2); }
private boolean equalLiterals(JValueLiteral l1, JValueLiteral l2) { Object v1 = l1.getValueObj(); Object v2 = l2.getValueObj(); if (v1 == v2) { return true; } if (v1 == null || v2 == null) { return false; } return v1.equals(v2); }
public void evaluatesInto(String string) { String actual = literal == null ? "<null>" : literal.toSource(); assertEquals(string, actual); }
@Override public String toString() { return literal.toString(); }