public Expression equal(Value v1, Value v2) { // if we're comparing an unaccessed bound variable, like in: // coll.contains (var) && var == x, then translate into: // coll.contains (x) if (v1 instanceof PCPath && ((PCPath) v1).isUnaccessedVariable()) return contains(v1, v2); if (v2 instanceof PCPath && ((PCPath) v2).isUnaccessedVariable()) return contains(v2, v1); return new EqualExpression((Val) v1, (Val) v2); }
public Expression equal(Value v1, Value v2) { // if we're comparing an unaccessed bound variable, like in: // coll.contains (var) && var == x, then translate into: // coll.contains (x) if (v1 instanceof PCPath && ((PCPath) v1).isUnaccessedVariable()) return contains(v1, v2); if (v2 instanceof PCPath && ((PCPath) v2).isUnaccessedVariable()) return contains(v2, v1); if (v1 instanceof Type || v2 instanceof Type) { Value val = v1 instanceof Type ? v1 : v2; verifyTypeOperation(val, null, false); return new EqualTypeExpression((Val) v1, (Val) v2); } return new EqualExpression((Val) v1, (Val) v2); }
public Expression equal(Value v1, Value v2) { // if we're comparing an unaccessed bound variable, like in: // coll.contains (var) && var == x, then translate into: // coll.contains (x) if (v1 instanceof PCPath && ((PCPath) v1).isUnaccessedVariable()) return contains(v1, v2); if (v2 instanceof PCPath && ((PCPath) v2).isUnaccessedVariable()) return contains(v2, v1); if (v1 instanceof Type || v2 instanceof Type) { Value val = v1 instanceof Type ? v1 : v2; verifyTypeOperation(val, null, false); return new EqualTypeExpression((Val) v1, (Val) v2); } return new EqualExpression((Val) v1, (Val) v2); }
public Expression equal(Value v1, Value v2) { // if we're comparing an unaccessed bound variable, like in: // coll.contains (var) && var == x, then translate into: // coll.contains (x) if (v1 instanceof PCPath && ((PCPath) v1).isUnaccessedVariable()) return contains(v1, v2); if (v2 instanceof PCPath && ((PCPath) v2).isUnaccessedVariable()) return contains(v2, v1); if (v1 instanceof Type || v2 instanceof Type) { Value val = v1 instanceof Type ? v1 : v2; verifyTypeOperation(val, null, false); return new EqualTypeExpression((Val) v1, (Val) v2); } return new EqualExpression((Val) v1, (Val) v2); }
public Expression equal(Value v1, Value v2) { // if we're comparing an unaccessed bound variable, like in: // coll.contains (var) && var == x, then translate into: // coll.contains (x) if (v1 instanceof PCPath && ((PCPath) v1).isUnaccessedVariable()) return contains(v1, v2); if (v2 instanceof PCPath && ((PCPath) v2).isUnaccessedVariable()) return contains(v2, v1); if (v1 instanceof Type || v2 instanceof Type) { Value val = v1 instanceof Type ? v1 : v2; verifyTypeOperation(val, null, false); return new EqualTypeExpression((Val) v1, (Val) v2); } return new EqualExpression((Val) v1, (Val) v2); }