I. Introduction
Bug fixing is important for software maintenance, and developers usually spend a lot of time and effort fixing bugs to improve software quality. Prior studies showed that developers applied repeated bug fixes—textually similar or identical code edits—to multiple locations [40], [52], [75], [73]. For instance, Kim et al. found that 19.3-40.3% of bugs appeared repeatedly [40]. Zhong and Meng observed that more than 50% of code structure changes could be constructed from past fixes [75]. With these observations, researchers proposed various tools to generate bug fixes or suggest customized edits based on the fixes already applied by developers [48], [49], [38], [43]. Specifically, Kim et al. identified 10 common fix patterns in thousands of bug fixes, and developed PAR to automatically create patches from the patterns [38]. Meng et al. built LASE, a program transformation tool that generalizes a code change pattern from multiple similar edits, and leverages the pattern to suggest new edit locations together with a customized edit for each suggested location [49].