|
@@ -60,7 +60,7 @@ pub(crate) fn statement(
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
Statement::VariableDecl(loc, pos, _, Some(init)) => {
|
|
Statement::VariableDecl(loc, pos, _, Some(init)) => {
|
|
|
- if should_remove_variable(*pos, func, opt) {
|
|
|
|
|
|
|
+ if should_remove_variable(*pos, func, opt, ns) {
|
|
|
let mut params = SideEffectsCheckParameters {
|
|
let mut params = SideEffectsCheckParameters {
|
|
|
cfg,
|
|
cfg,
|
|
|
contract_no,
|
|
contract_no,
|
|
@@ -125,7 +125,7 @@ pub(crate) fn statement(
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
Statement::VariableDecl(loc, pos, param, None) => {
|
|
Statement::VariableDecl(loc, pos, param, None) => {
|
|
|
- if should_remove_variable(*pos, func, opt) {
|
|
|
|
|
|
|
+ if should_remove_variable(*pos, func, opt, ns) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -172,7 +172,7 @@ pub(crate) fn statement(
|
|
|
}
|
|
}
|
|
|
Statement::Expression(_, _, expr) => {
|
|
Statement::Expression(_, _, expr) => {
|
|
|
if let ast::Expression::Assign { left, right, .. } = &expr {
|
|
if let ast::Expression::Assign { left, right, .. } = &expr {
|
|
|
- if should_remove_assignment(left, func, opt) {
|
|
|
|
|
|
|
+ if should_remove_assignment(left, func, opt, ns) {
|
|
|
let mut params = SideEffectsCheckParameters {
|
|
let mut params = SideEffectsCheckParameters {
|
|
|
cfg,
|
|
cfg,
|
|
|
contract_no,
|
|
contract_no,
|
|
@@ -187,7 +187,7 @@ pub(crate) fn statement(
|
|
|
}
|
|
}
|
|
|
} else if let ast::Expression::Builtin { args, .. } = expr {
|
|
} else if let ast::Expression::Builtin { args, .. } = expr {
|
|
|
// When array pop and push are top-level expressions, they can be removed
|
|
// When array pop and push are top-level expressions, they can be removed
|
|
|
- if should_remove_assignment(expr, func, opt) {
|
|
|
|
|
|
|
+ if should_remove_assignment(expr, func, opt, ns) {
|
|
|
let mut params = SideEffectsCheckParameters {
|
|
let mut params = SideEffectsCheckParameters {
|
|
|
cfg,
|
|
cfg,
|
|
|
contract_no,
|
|
contract_no,
|
|
@@ -989,7 +989,7 @@ fn destructure(
|
|
|
DestructureField::VariableDecl(res, param) => {
|
|
DestructureField::VariableDecl(res, param) => {
|
|
|
let expr = try_load_and_cast(¶m.loc, &right, ¶m.ty, ns, cfg, vartab);
|
|
let expr = try_load_and_cast(¶m.loc, &right, ¶m.ty, ns, cfg, vartab);
|
|
|
|
|
|
|
|
- if should_remove_variable(*res, func, opt) {
|
|
|
|
|
|
|
+ if should_remove_variable(*res, func, opt, ns) {
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1005,7 +1005,7 @@ fn destructure(
|
|
|
DestructureField::Expression(left) => {
|
|
DestructureField::Expression(left) => {
|
|
|
let expr = try_load_and_cast(&left.loc(), &right, &left.ty(), ns, cfg, vartab);
|
|
let expr = try_load_and_cast(&left.loc(), &right, &left.ty(), ns, cfg, vartab);
|
|
|
|
|
|
|
|
- if should_remove_assignment(left, func, opt) {
|
|
|
|
|
|
|
+ if should_remove_assignment(left, func, opt, ns) {
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|