Fixed: #2354 Simplify expressions problems in some cases

This commit is contained in:
Jindra Petřík
2024-10-26 21:27:53 +02:00
parent 79765e07a8
commit f6010cf7ed
4 changed files with 14 additions and 3 deletions

View File

@@ -92,8 +92,14 @@ public abstract class BinaryOpItem extends GraphTargetItem implements BinaryOp {
@Override
public GraphTargetItem simplify(String implicitCoerce) {
BinaryOpItem r = (BinaryOpItem) clone();
r.leftSide = r.leftSide.simplify(coerceLeft);
r.leftSide = r.leftSide.simplify(coerceLeft);
r.rightSide = r.rightSide.simplify(coerceRight);
if (r.leftSide == this.leftSide
&& r.rightSide == this.rightSide) {
r = this;
}
return simplifySomething(r, implicitCoerce);
}

View File

@@ -61,6 +61,9 @@ public abstract class UnaryOpItem extends GraphTargetItem implements UnaryOp {
public GraphTargetItem simplify(String implicitCoerce) {
GraphTargetItem r = clone();
r.value = r.value.simplify(coerce);
if (r.value == this.value) {
r = this;
}
return simplifySomething(r, implicitCoerce);
}