more fixes

This commit is contained in:
water111
2026-04-13 17:20:08 -04:00
parent 3cfa4e3745
commit 5670fce5bd
3 changed files with 44 additions and 8 deletions
+20
View File
@@ -1089,6 +1089,26 @@ void SimpleExpressionElement::update_from_stack_float_2_nestable(const Env& env,
bool allow_side_effects) {
if (is_float_type(env, m_my_idx, m_expr.get_arg(0).var()) &&
is_float_type(env, m_my_idx, m_expr.get_arg(1).var())) {
if (m_expr.get_arg(0).var() == m_expr.get_arg(1).var()) {
auto arg =
pop_to_forms({m_expr.get_arg(0).var()}, env, pool, stack, allow_side_effects, {}, {2})
.at(0);
if (kind == FixedOperatorKind::MULTIPLICATION) {
result->push_back(pool.alloc_element<GenericElement>(
GenericOperator::make_function(pool.form<ConstantTokenElement>("square")), arg));
return;
}
auto atom = form_as_atom(arg);
if (atom) {
auto arg_copy = pool.form<SimpleAtomElement>(*atom);
auto new_form =
make_and_compact_math_op(arg, arg_copy, {}, {}, pool, env, kind, true, false);
result->push_back(new_form);
return;
}
}
auto args = pop_to_forms({m_expr.get_arg(0).var(), m_expr.get_arg(1).var()}, env, pool, stack,
allow_side_effects);
auto new_form =