m.isNull = false; m.couldBeZero = i1.couldBeZero || i2.couldBeZero;
m.setNull(false); m.setCouldBeZero(i1.isCouldBeZero() || i2.isCouldBeZero());
 		public static Item merge(Item i1, Item i2) {			if (i1 == null) return i2;			if (i2 == null) return i1;			if (i1.equals(i2)) return i1;			Item m = new Item();			m.isNull = false;				m.couldBeZero = i1.couldBeZero || i2.couldBeZero;			if (equals(i1.signature,i2.signature))				m.signature = i1.signature;			if (equals(i1.constValue,i2.constValue))				m.constValue = i1.constValue;			if (equals(i1.xfield,i2.xfield)) {				m.field = i1.field;				m.xfield = i1.xfield;			}			if (i1.isNull == i2.isNull)				m.isNull = i1.isNull;			if (i1.registerNumber == i2.registerNumber)				m.registerNumber = i1.registerNumber;			if (i1.fieldLoadedFromRegister == i2.fieldLoadedFromRegister)				m.fieldLoadedFromRegister = i1.fieldLoadedFromRegister;					if (i1.specialKind == i2.specialKind)				m.specialKind = i1.specialKind;			else if (i1.specialKind == FLOAT_MATH || i2.specialKind == FLOAT_MATH)				m.specialKind = FLOAT_MATH;			if (DEBUG) System.out.println("Merge " + i1 + " and " + i2 + " gives " + m);			return m;		}