mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-26 19:20:45 +00:00
Fixed #2029 Simplify expressions stripping getlex and also ignoring some types of expressions
This commit is contained in:
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItemPos;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetVisitorInterface;
|
||||
import com.jpexs.decompiler.graph.SimpleValue;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
@@ -106,11 +107,15 @@ public abstract class BinaryOpItem extends GraphTargetItem implements BinaryOp {
|
||||
if (dependencies.contains(leftSide)) {
|
||||
return false;
|
||||
}
|
||||
dependencies.add(leftSide);
|
||||
if (!((leftSide instanceof SimpleValue) && ((SimpleValue)leftSide).isSimpleValue())) {
|
||||
dependencies.add(leftSide);
|
||||
}
|
||||
if (leftSide != rightSide && dependencies.contains(rightSide)) {
|
||||
return false;
|
||||
}
|
||||
dependencies.add(rightSide);
|
||||
if (!((rightSide instanceof SimpleValue) && ((SimpleValue)rightSide).isSimpleValue())) {
|
||||
dependencies.add(rightSide);
|
||||
}
|
||||
return leftSide.isConvertedCompileTime(dependencies) && rightSide.isConvertedCompileTime(dependencies);
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,9 @@ public class DuplicateItem extends GraphTargetItem implements SimpleValue {
|
||||
if (dependencies.contains(value)) {
|
||||
return false;
|
||||
}
|
||||
dependencies.add(value);
|
||||
if (!((value instanceof SimpleValue) && ((SimpleValue)value).isSimpleValue())) {
|
||||
dependencies.add(value);
|
||||
}
|
||||
return value.isCompileTime(dependencies);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.jpexs.decompiler.graph.GraphPart;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetVisitorInterface;
|
||||
import com.jpexs.decompiler.graph.SimpleValue;
|
||||
import com.jpexs.decompiler.graph.SourceGenerator;
|
||||
import com.jpexs.decompiler.graph.TypeItem;
|
||||
import java.util.ArrayList;
|
||||
@@ -51,7 +52,9 @@ public class IfItem extends GraphTargetItem implements Block {
|
||||
if (dependencies.contains(expression)) {
|
||||
return false;
|
||||
}
|
||||
dependencies.add(expression);
|
||||
if (!((expression instanceof SimpleValue) && ((SimpleValue)expression).isSimpleValue())) {
|
||||
dependencies.add(expression);
|
||||
}
|
||||
return expression.isCompileTime(dependencies);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
|
||||
import com.jpexs.decompiler.graph.CompilationException;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.SimpleValue;
|
||||
import com.jpexs.decompiler.graph.SourceGenerator;
|
||||
import com.jpexs.decompiler.graph.TypeItem;
|
||||
import java.util.List;
|
||||
@@ -57,7 +58,9 @@ public class NotItem extends UnaryOpItem implements LogicalOpItem, Inverted {
|
||||
if (dependencies.contains(value)) {
|
||||
return false;
|
||||
}
|
||||
dependencies.add(value);
|
||||
if (!((value instanceof SimpleValue) && ((SimpleValue)value).isSimpleValue())) {
|
||||
dependencies.add(value);
|
||||
}
|
||||
return value.isCompileTime(dependencies);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user