Fix numeric mixed-convesion operations

This commit is contained in:
Jason Turner
2016-09-24 17:15:17 -06:00
parent cefb4d3c78
commit 4b81a24a0a
3 changed files with 32 additions and 3 deletions

View File

@@ -846,7 +846,8 @@ namespace chaiscript
plist.begin(),
std::back_inserter(newplist),
[](const Type_Info &ti, const Boxed_Value &param) -> Boxed_Value {
if (ti.is_arithmetic() && param.get_type_info().is_arithmetic()) {
if (ti.is_arithmetic() && param.get_type_info().is_arithmetic()
&& param.get_type_info() != ti) {
return Boxed_Number(param).get_as(ti).bv;
} else {
return param;
@@ -854,8 +855,6 @@ namespace chaiscript
}
);
try {
return (*(matching_func->second))(newplist, t_conversions);
} catch (const exception::bad_boxed_cast &) {