pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/operators.c:5908:
tFunc(tOr(tInt, tFloat) tSetvar(3, tStr), 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,
-
tOr8
(
tIfnot
(
tFuncV
(
tNone,tNot
(
tObj
),
tMix
),
-
tOr
(tFuncArg(tSetvar(
2
,tObj), tFindLFun(tVar(
2
), "`-")),
-
tFuncV(tNot(tObj),
tMix,
tMix))),
-
tOr(tFuncArg(
tIntNeg, tOr
(
tFuncV(tNone
,
tIntPos, tIntNeg
),
-
tIfnot
(
tFuncV
(
tNone
,
tNot(tIntNeg
),
-
tMix),
-
tFuncV
(
tInt
,
tInt, tInt
)))
)
,
-
tFuncArg(tIntPos,
tOr(
tFuncV
(
tNone
,
tIntNeg
,
tIntPos
),
-
tIfnot
(
tFuncV
(
tNone
,
tNot(tIntPos
),
-
tMix),
-
tFuncV
(
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
(tType(tSetvar(0, tMix))
,
tType(tMix), tType(tVar(0)))),
+
ADD_EFUN2("`-",
f_minus,
+
tOr
(
tOr4
(
tFunc
(
tSetvar(0
,
tInt), tNegateInt
(
tVar(0
)
))
,
+
tFunc(tFlt, tFlt
),
+
tFunc(tSetvar(0,
tType(tMix)),
tVar(0)),
+
tFuncArg(tSetvar(
0
,
tObj), tFindLFun(tVar(
0
), "`-"))
)
,
+
tTransitive(tUnknown,
+
tOr8(
tOr(tFuncArg(
tSetvar
(
1
,
tObj
),
+
tFindLFun
(
tVar
(
1)
,
"`-"
)
)
,
+
tFunc(tMix
tObj,
tMix)),
+
tFunc(tSetvar(2,
tInt)
tSetvar(3,
tInt),
+
tSubInt
(
tVar(2)
,
tVar(3
))),
+
tOr
(
tFunc(tFloat
tOr(
tFloat
,
tInt)
,
tFloat
),
+
tFunc
(
tOr
(
tFloat
,
tInt
)
tFloat
,
tFloat)),
+
tFunc(tNStr(tSetvar(0,tInt))
tStr,
+
tNStr(tVar(0))),
+
tFunc
(
tArr(tSetvar(0
,
tMix
))
tArray
,
+
tArr
(
tVar
(
0
))),
+
tFunc
(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))),
+
tFunc
(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