pike.git / src / operators.c

version» Context lines:

pike.git/src/operators.c:2296:    s=make_shared_string("");    ret=string_replace(Pike_sp[-2].u.string,Pike_sp[-1].u.string,s);    free_string(Pike_sp[-2].u.string);    free_string(Pike_sp[-1].u.string);    free_string(s);    Pike_sp[-2].u.string=ret;    Pike_sp--;    return;    }    +  case T_TYPE: +  { +  struct pike_type *t = type_binop(PT_BINOP_MINUS, +  Pike_sp[-2].u.type, Pike_sp[-1].u.type, +  0, 0, 0); +  pop_n_elems(2); +  if (t) { +  push_type_value(t); +  } else { +  push_undefined(); +  } +  return; +  } +     /* FIXME: Support types? */       default:    {    int args = 2;    SIMPLE_ARG_TYPE_ERROR("`-", 1,    "int|float|string|mapping|multiset|array|object");    }    }   }
pike.git/src/operators.c:5822:    tOr(tStr7, tVar(3)))),    tFunc(tArr(tSetvar(0,tMix)) tArr(tSetvar(1,tMix)),    tArr(tOr(tVar(0), tVar(1)))),    tFunc(tSetvar(0, tMapping) tSetvar(1, tMapping),    tOr(tVar(0), tVar(1))),    tFunc(tSetvar(0, tMultiset) tSetvar(1, tMultiset),    tOr(tVar(0), tVar(1))))),    OPT_TRY_OPTIMIZE,optimize_binary,generate_sum);       ADD_EFUN2("`-",f_minus, -  tOr7(tIfnot(tFuncV(tNone,tNot(tObj),tMix), +  tOr8(tIfnot(tFuncV(tNone,tNot(tObj),tMix),    tOr(tFuncArg(tSetvar(2,tObj), tFindLFun(tVar(2), "`-")),    tFuncV(tNot(tObj), tMix, tMix))),    tOr4(tFuncV(tIntNeg,tIntPos,tIntNeg),    tFuncV(tIntPos,tIntNeg,tIntPos),    tIfnot(tFuncV(tNot(tIntPos), tNot(tIntPos), tMix),    tFuncV(tInt tInt, tInt, tInt)),    tIfnot(tFuncV(tNot(tIntNeg), tNot(tIntNeg), tMix),    tFuncV(tInt tInt, tInt, tInt))),    tIfnot(tFuncV(tNone,tNot(tFlt),tMix),    tFuncV(tOr(tInt,tFlt),tOr(tInt,tFlt),tFlt)),    tFuncV(tArr(tSetvar(0,tMix)),tArray,tArr(tVar(0))),    tFuncV(tMap(tSetvar(1,tMix),tSetvar(2,tMix)),    tOr3(tMapping,tArray,tMultiset),    tMap(tVar(1),tVar(2))),    tFunc(tSet(tSetvar(3,tMix)) tMultiset,tSet(tVar(3))), -  tFuncV(tNStr(tSetvar(0,tInt)),tStr,tNStr(tVar(0)))), +  tFuncV(tNStr(tSetvar(0,tInt)),tStr,tNStr(tVar(0))), +  tFuncV(tType(tSetvar(0, tMix)), tType(tMix), tType(tVar(0)))),    OPT_TRY_OPTIMIZE,0,generate_minus);      /*      object & mixed -> mixed   mixed & object -> mixed      int & int -> int   array & array -> array   multiset & multiset -> multiset