• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

coderaiser / putout-editor / 36330218232
100%

Build:
DEFAULT BRANCH: master
Ran 27 Sep 2026 03:39PM UTC
Jobs 3
Files 116
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 Sep 2026 03:33PM UTC coverage: 100.0%. Remained the same
36330218232

push

github

coderaiser
refactor: plugin-putout-editor: remove-duplicated-receiver bites instead of reporting

The rule was report-only, with "which binding to introduce is a human call" as the reason.
That is the eslint posture, and it is the posture this package exists to replace: a tool
that tells you what to do has not done anything.

It fixes now. A declaration whose initialiser is the duplicated `&&` is split, the
receiver is bound once above it, and the guard is the scope:

  const value = getState().workbench && getState().workbench.code;
  ->
  const {workbench} = getState();
  const value = workbench && workbench.code;

Destructuring rather than a plain binding, because putout's own apply-object wanted it
one message later and the two rules would have fought otherwise.

Two bugs the fixture caught that a report never would have. The name was taken from the
receiver's callee when the receiver was a bare call, so `f() && f().deep` produced
`const f = f();` - a temporal dead zone self-reference that throws on the first line. The
name is now always a property, which cannot collide with a callee. And receiverOf assumed
the right side was either a member or a member call, so the rule crashed on its OWN source
when putout . reached it - which is why the repo-wide lint is the check and not the
plugin's own suite.

One case is reported and not fixed, on purpose: an arrow body is an expression and has
nowhere to put a statement. Rewriting it into a block body would work, but that is a larger
rewrite than the defect deserves, and a fixer that reaches past the problem is how a lint
gets switched off. Reported, not skipped, so the gap is loud - the lesson of the issue
filed two commits ago, applied here first.

28 tests, 100% coverage on all four metrics, putout clean repo-wide, tsc clean.

1081 of 1081 branches covered (100.0%)

Branch coverage included in aggregate %.

6663 of 6663 relevant lines covered (100.0%)

61.54 hits per line

Jobs
ID Job ID Ran Files Coverage
1 36330218232.1 27 Sep 2026 03:39PM UTC 116
100.0
GitHub Action Run
2 36330218232.2 27 Sep 2026 03:39PM UTC 116
100.0
GitHub Action Run
3 36330218232.3 27 Sep 2026 03:39PM UTC 116
100.0
GitHub Action Run
Source Files on build 36330218232
  • Tree
  • List 116
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36330218232
  • 3b628d8a on github
  • Prev Build on master (#36328369035)
  • Next Build on master (#36332766814)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc