Fix FieldAccessExpr's hasSideEffects() implementation

Signed-off-by: Graham <gpe@openrs2.dev>
Graham 4 years ago
parent 919d9c2386
commit 8f0dfd2725
  1. 6
      deob-ast/src/main/java/dev/openrs2/deob/ast/util/ExprUtils.kt

@ -116,7 +116,7 @@ fun Expression.countNots(): Int {
}
fun Expression.hasSideEffects(): Boolean {
if (isLiteralExpr || isNameExpr || isFieldAccessExpr || isThisExpr) {
if (isLiteralExpr || isNameExpr || isThisExpr) {
return false
} else if (isUnaryExpr) {
return asUnaryExpr().expression.hasSideEffects()
@ -126,7 +126,11 @@ fun Expression.hasSideEffects(): Boolean {
} else if (isArrayAccessExpr) {
val access = asArrayAccessExpr()
return access.name.hasSideEffects() || access.index.hasSideEffects()
} else if (isFieldAccessExpr) {
val access = asFieldAccessExpr()
return access.scope.hasSideEffects()
}
// TODO(gpe): more cases
return true
}

Loading…
Cancel
Save