1. A method to automatically correct an original source code, the method comprising: receiving the original source code; creating an abstract syntax tree (AST) of the original source code, the AST comprising AST nodes; evaluating AST node filter queries on the AST to filter out one or more AST nodes with defect patterns; applying automatic fixes to the filtered AST nodes to transform the AST; and creating a modified source code by deserializing the transformed AST.