th.isSubType(type1, BuiltInAtomicType.INTEGER) &&
(operator == Token.PLUS || operator == Token.MINUS || operator == Token.MULT)) {
ArithmeticExpression arith = new ArithmeticExpression(operand0, operator, operand1);
arith.simplified = true;
NumberFn n = (NumberFn)SystemFunction.makeSystemFunction("number", new Expression[]{arith});
return n.typeCheck(visitor, contextItemType);
}
if (calculator == null) {
operand0 = createConversionCode(operand0, th, type0);
}