pike.git/
src/
operators.c
Branch:
Tag:
Non-build tags
All tags
No tags
2000-12-08
2000-12-08 15:47:55 by Henrik Grubbström (Grubba) <grubba@grubba.org>
4106cc4e2e6021da89f88471c89519a9401617aa (
21
lines) (+
15
/-
6
)
[
Show
|
Annotate
]
Branch:
7.9
Fixed types for `+, `-, `* and `/.
Fixes [bug
712 (#712)
].
Rev: src/operators.c:1.114
6:
/**/ #include "global.h" #include <math.h>
-
RCSID("$Id: operators.c,v 1.
113
2000/12/
01
08:
09
:
51
hubbe
Exp $");
+
RCSID("$Id: operators.c,v 1.
114
2000/12/
08
15
:
47
:
55
grubba
Exp $");
#include "interpret.h" #include "svalue.h" #include "multiset.h"
2725:
ADD_EFUN2("`+",f_add, tOr7(tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix),tFunction), tFuncV(tInt,tInt,tInt),
-
tIfnot(tFuncV(
tInt
,
tInt
,tMix),
+
tIfnot(tFuncV(
tNone
,
tNot(tFlt)
,tMix),
tFuncV(tOr(tInt,tFlt),tOr(tInt,tFlt),tFlt)), tIfnot(tFuncV(tOr(tInt,tFlt),tOr(tInt,tFlt),tMix), tFuncV(tOr3(tStr,tInt,tFlt),
2741:
ADD_EFUN2("`-",f_minus, tOr7(tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix),tFunction), tFuncV(tInt,tInt,tInt),
-
tIfnot(tFuncV(
tInt
,
tInt
,tMix),
+
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)),
2832:
"function(string,int:string) "function(string,float:string) */
-
ADD_EFUN2("`*",f_multiply,
+
ADD_EFUN2("`*",
f_multiply,
tOr9(tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix),tFunction), tFunc(tArr(tArr(tSetvar(1,tMix))) tArr(tSetvar(1,tMix)),tArr(tVar(1))), tFuncV(tInt,tInt,tInt),
-
tIfnot(tFuncV(
tInt
,
tInt
,tMix),
+
tIfnot(tFuncV(
tNone
,
tNot(tFlt)
,tMix),
tFuncV(tOr(tFlt,tInt),tOr(tFlt,tInt),tFlt)), tFunc(tArr(tStr) tStr,tStr), tFunc(tArr(tSetvar(0,tMix)) tInt,tArr(tVar(0))),
2851:
"!function(int...:mixed)&function(float|int...:float)|" "function(array(0=mixed),array|int|float...:array(array(0)))|" "function(string,string|int|float...:array(string)) */
-
ADD_EFUN2("`/",f_divide,tOr5(tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix),tFunction),tFuncV(tInt,tInt,tInt),tIfnot(tFuncV(tNone,
tInt
,tMix),tFuncV(
tNone
,tOr(tFlt,tInt),tFlt)),tFuncV(tArr(tSetvar(0,tMix)),tOr3(tArray,tInt,tFlt),tArr(tArr(tVar(0)))),tFuncV(tStr,tOr3(tStr,tInt,tFlt),tArr(tStr))),
+
ADD_EFUN2("`/",
f_divide,
+
tOr5(tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix),tFunction),
+
tFuncV(tInt,
tInt,
tInt),
+
tIfnot(tFuncV(tNone,
tNot(tFlt)
,
tMix),
+
tFuncV(
tOr(tFlt
,
tInt),
tOr(tFlt,tInt),tFlt)),
+
tFuncV(tArr(tSetvar(0,tMix)),
+
tOr3(tArray,tInt,tFlt),
+
tArr(tArr(tVar(0)))),
+
tFuncV(tStr,tOr3(tStr,tInt,tFlt),tArr(tStr))),
OPT_TRY_OPTIMIZE,0,generate_divide); /* function(mixed,object:mixed)|"