Fallow - Dead Code Analysis
Version updated for https://github.com/fallow-rs/fallow to version v1.1.0.
- This action is used across all versions by 0 repositories.
Action Type
This is a Composite action.
Go to the GitHub Marketplace to find the latest changes.
Action Summary
This GitHub Action, Fallow, is a Rust-based codebase analyzer for JavaScript and TypeScript that automates the detection of unused code, circular dependencies, code duplication, and complexity hotspots. It streamlines code maintenance by identifying dead files, exports, and dependencies, while also detecting issues like unresolved imports, unlisted dependencies, and duplicate or circular code structures. With significantly faster performance than comparable tools and no dependency on a Node.js runtime, it enables developers to quickly optimize and refactor their projects for better efficiency and maintainability.
Release notes
Features
- Markdown output format — New
--format markdownoption for check and dupes commands, producing clean Markdown reports suitable for PR comments, CI summaries, and documentation - LSP issue type filtering — Filter which diagnostic types the LSP reports via
initializationOptions.issueTypes, with corresponding VS Codefallow.issueTypesconfiguration - VS Code extension improvements — Added marketplace icon, issue type filter settings, and config-change-triggered re-analysis
Code Quality (Oxc-inspired)
Comprehensive code quality overhaul inspired by the Oxc ecosystem:
- Expanded clippy lint coverage — Enabled
all,pedantic,nursery, andcargolint groups with a strategic allow-list for false positives, plus 13 restriction lints (undocumented_unsafe_blocks,unused_result_ok,clone_on_ref_ptr,infinite_loop, etc.) #[expect]over#[allow]— All clippy suppressions now use#[expect(clippy::...)], which warns when a suppression becomes unnecessary — prevents dead annotations from accumulating- Rust compiler lints — Added
unsafe_op_in_unsafe_fn,unused_unsafe,non_ascii_idents - Size assertions —
ModuleNode(96B),ModuleInfo(256B) const assertions prevent accidental struct bloat - Dev profile optimizations —
debug = falsefor faster builds, selectiveopt-levelfor proc-macro crates (serde_derive,clap_derive) and snapshot test deps (insta,similar) - Removed 5 unused dependencies —
bincodeandregexfrom core,indicatifandmiettefrom CLI,tracingfrom LSP/MCP
CI Hardening
permissions: {}deny-all baseline — each job explicitly requests onlycontents: readgit diff --exit-codecheck catches uncommitted generated code--document-private-itemsin doc check for comprehensive documentation validation
Refactors
- Split
graph.rs(2644 lines) intograph/{mod,types,build,reachability,re_exports,cycles}.rs - Split
fix.rs(1561 lines) intofix/{mod,io,exports,enum_members,deps}.rs - Added comprehensive extract unit tests for JS/TS, Vue/Svelte SFC, Astro, MDX, and CSS Modules parsing
Infrastructure
- Upgraded Cargo resolver from
"2"to"3" - Bumped
tomldependency to 1.0.7
Full Changelog: https://github.com/fallow-rs/fallow/compare/v1.0.4...v1.1.0