在真实 Rust 项目中释放 Clippy 的威力
软件工程
2023-10-19 v1
摘要
Clippy lints 被视为 Rust 开发者的重要工具,因为它们可在持续集成中配置为 Rust 项目的准入规则。尽管可用,但人们对这些 lints 在减少代码质量问题方面的实际应用与成本效益知之甚少。在本研究中,我们开展全面分析以揭示 Clippy lints 在 Rust 开发生态中的真实影响。研究围绕三个相互关联的组成部分展开,各自贡献于 Clippy 的整体有效性。首先,我们对所有符合习惯用法的 crates-io Rust 项目中的 Clippy lints 进行全面分析,平均警告密度为 21/KLOC。该分析识别出最具成本效益的 lint 修复,为优化代码质量提供宝贵机会。其次,我们通过用户调查积极邀请 Rust 开发者反馈其使用 Clippy 的经验。用户见解揭示了两个关键问题:警告中误报的普遍性,以及大多数警告对自动修复支持的需求。第三,基于这些发现,我们设计了三种创新自动重构技术以有效修复四种最频繁的 Clippy lints。结果,Rosetta 基准中的警告密度从 195/KLOC 显著降至 18/KLOC,已低于 crates-io Rust 项目的平均密度。这些结果证明了我们的工作在提升 Rust 开发者整体代码质量与可维护性方面的切实益处与影响。
引用
@article{arxiv.2310.11738,
title = {Unleashing the Power of Clippy in Real-World Rust Projects},
author = {Chunmiao Li and Yijun Yu and Haitao Wu and Luca Carlig and Shijie Nie and Lingxiao Jiang},
journal= {arXiv preprint arXiv:2310.11738},
year = {2023}
}