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

coderaiser / putout-editor / 36332766814
100%

Build:
DEFAULT BRANCH: master
Ran 27 Sep 2026 04:20PM 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 04:14PM UTC coverage: 100.0%. Remained the same
36332766814

push

github

coderaiser
refactor: plugin-putout-editor: the arrow case is fixed too, not reported

I called the block-body rewrite "a larger change than the defect deserves" and left the
arrow reported-only. That was the eslint instinct again, dressed as restraint: a fixer that
stops at "I cannot express this" hands the reader the work, and the work is what the rule
was supposed to remove. Converting an arrow to a block is the standard answer and it is
mechanical - insert the binding, return the rebased expression.

All three statement contexts now fix:

  declaration  const a = f().x && f().x.y;      -> binding above, init rebased
  return       return f().x && f().x.y();        -> binding above, argument rebased
  arrow        (el) => el().x && el().x.trim()   -> block with a binding and a return

The return case mutates path.node.argument rather than calling path.replace: insertBefore
invalidates sibling paths, and replace after it was the crash in the first attempt. The
arrow case rebuilds the body with parse, the inverse of convert-to-arrow-function, which is
the shape that rule already uses.

The scope guard earns its keep in the fixture rather than in theory. An arrow using .label
was left alone because an earlier fix in the same file had bound `label`; the fixture now
carries a deliberate collision, f().kind with a const kind above it, so the !canFix branch
is a real case and not a coverage line.

The upstream home is @putout/plugin-logical-expressions, and docs/issues/putout-plugins.md
says so with the reason: simplify, remove-boolean, remove-duplicates,
convert-bitwise-to-logical and convert-coalescing-to-logical are all about the shape of a
logical expression, and a duplicated receiver is the same concern. This rule is not about
this repository and should move there. What stays until it does is the lesson.

30 tests, 100% 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 36332766814.1 27 Sep 2026 04:20PM UTC 116
100.0
GitHub Action Run
2 36332766814.2 27 Sep 2026 04:20PM UTC 116
100.0
GitHub Action Run
3 36332766814.3 27 Sep 2026 04:21PM UTC 116
100.0
GitHub Action Run
Source Files on build 36332766814
  • Tree
  • List 116
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36332766814
  • 6cfbca7e on github
  • Prev Build on master (#36330218232)
  • Next Build on master (#36337843697)
  • 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