DevReplay: Automatic Repair with Editable Fix Pattern
This addresses a gap in static analysis tools for developers working on large, language-diverse projects by enabling automated fixes for project-specific conventions, though it is incremental in extending existing linter capabilities.
The authors tackled the problem of automatically detecting and fixing project/API-specific code convention violations, which existing linters miss, and found that DevReplay resolves more bugs than state-of-the-art automatic program repair tools and had 80% of submitted patches accepted by open-source projects.
Static analysis tools, or linters, detect violation of source code conventions to maintain project readability. Those tools automatically fix specific violations while developers edit the source code. However, existing tools are designed for the general conventions of programming languages. These tools do not check the project/API-specific conventions. We propose a novel static analysis tool DevReplay that generates code change patterns by mining the code change history, and we recommend changes using the matched patterns. Using DevReplay, developers can automatically detect and fix project/API-specific problems in the code editor and code review. Also, we evaluate the accuracy of DevReplay using automatic program repair tool benchmarks and real software. We found that DevReplay resolves more bugs than state-of-the-art APR tools. Finally, we submitted patches to the most popular open-source projects that are implemented by different languages, and project reviewers accepted 80% (8 of 10) patches. DevReplay is available on https://devreplay.github.io.