pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
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