mirror of
https://github.com/erg-lang/erg.git
synced 2025-09-30 12:51:10 +00:00
Add: builtin floordiv for float and ratio
This commit is contained in:
parent
44acfbb7a5
commit
33a33d7577
1 changed files with 18 additions and 0 deletions
|
@ -521,6 +521,15 @@ impl Context {
|
||||||
float_mul.register_builtin_const("Output", ValueObj::builtin_t(Float));
|
float_mul.register_builtin_const("Output", ValueObj::builtin_t(Float));
|
||||||
float_mul.register_builtin_const("PowOutput", ValueObj::builtin_t(Float));
|
float_mul.register_builtin_const("PowOutput", ValueObj::builtin_t(Float));
|
||||||
float.register_trait(Float, builtin_poly("Mul", vec![ty_tp(Float)]), float_mul);
|
float.register_trait(Float, builtin_poly("Mul", vec![ty_tp(Float)]), float_mul);
|
||||||
|
let mut float_floordiv = Self::builtin_methods("FloorDiv", 2);
|
||||||
|
float_floordiv.register_builtin_impl("__floordiv__", op_t.clone(), Const, Public);
|
||||||
|
float_floordiv.register_builtin_const("Output", ValueObj::builtin_t(Float));
|
||||||
|
float_floordiv.register_builtin_const("ModOutput", ValueObj::builtin_t(Float));
|
||||||
|
float.register_trait(
|
||||||
|
Float,
|
||||||
|
builtin_poly("FloorDiv", vec![ty_tp(Float)]),
|
||||||
|
float_floordiv,
|
||||||
|
);
|
||||||
let mut float_div = Self::builtin_methods("Div", 2);
|
let mut float_div = Self::builtin_methods("Div", 2);
|
||||||
float_div.register_builtin_impl("__div__", op_t, Const, Public);
|
float_div.register_builtin_impl("__div__", op_t, Const, Public);
|
||||||
float_div.register_builtin_const("Output", ValueObj::builtin_t(Float));
|
float_div.register_builtin_const("Output", ValueObj::builtin_t(Float));
|
||||||
|
@ -572,6 +581,15 @@ impl Context {
|
||||||
ratio_mul.register_builtin_const("Output", ValueObj::builtin_t(Ratio));
|
ratio_mul.register_builtin_const("Output", ValueObj::builtin_t(Ratio));
|
||||||
ratio_mul.register_builtin_const("PowOutput", ValueObj::builtin_t(Ratio));
|
ratio_mul.register_builtin_const("PowOutput", ValueObj::builtin_t(Ratio));
|
||||||
ratio.register_trait(Ratio, builtin_poly("Mul", vec![ty_tp(Ratio)]), ratio_mul);
|
ratio.register_trait(Ratio, builtin_poly("Mul", vec![ty_tp(Ratio)]), ratio_mul);
|
||||||
|
let mut ratio_floordiv = Self::builtin_methods("FloorDiv", 2);
|
||||||
|
ratio_floordiv.register_builtin_impl("__floordiv__", op_t.clone(), Const, Public);
|
||||||
|
ratio_floordiv.register_builtin_const("Output", ValueObj::builtin_t(Ratio));
|
||||||
|
ratio_floordiv.register_builtin_const("ModOutput", ValueObj::builtin_t(Ratio));
|
||||||
|
ratio.register_trait(
|
||||||
|
Float,
|
||||||
|
builtin_poly("FloorDiv", vec![ty_tp(Ratio)]),
|
||||||
|
ratio_floordiv,
|
||||||
|
);
|
||||||
let mut ratio_div = Self::builtin_methods("Div", 2);
|
let mut ratio_div = Self::builtin_methods("Div", 2);
|
||||||
ratio_div.register_builtin_impl("__div__", op_t, Const, Public);
|
ratio_div.register_builtin_impl("__div__", op_t, Const, Public);
|
||||||
ratio_div.register_builtin_const("Output", ValueObj::builtin_t(Ratio));
|
ratio_div.register_builtin_const("Output", ValueObj::builtin_t(Ratio));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue