sindresorhus/eslint-plugin-unicorn

Rule proposal: `no-useless-assign`

Closed

#1,693 opened on Jan 14, 2022

 (3 comments) (3 reactions) (0 assignees)JavaScript (468 forks)user submission
help wantednew rule

Repository metrics

Stars
 (5,022 stars)
PR merge metrics
 (Avg merge 1d 16h) (399 merged PRs in 30d)

Description

Description

Got the idea from https://lgtm.com/projects/g/prettier/prettier/snapshot/dae9b0317dae184854caf66c44eec17a95200e98/files/src/language-js/parse/postprocess/typescript.js?sort=name&dir=ASC&mode=heatmap#L66

I don't think no-unused-vars rule should check this case, because the variable is actually "used" in some case, only should not assign when it's a last use.

Fail

function foo(bar) {
  bar = doSomething();
}
function foo(bar) {
  bar = doSomething(bar);
}
function foo(bar) {
  bar = doSomething(bar);

  // ... do something else, but not using bar
}

Pass

function foo(bar) {
  bar = doSomething(bar);

  return bar;
}
function foo(bar) {
  bar = doSomething(bar);

  use(bar);
}
function foo(bar) {
  function aInnerFunctionUsesBar() {
   return bar;
  }

  bar = doSomething(bar);

  // bar is not used but calling another function uses bar
  aInnerFunctionUsesBar()
}

Contributor guide