Языковые инструменты: средство проверки различий и рефакторинга AST
Seed: old_ast, new_ast, refactor_rules; sample: check refactor preserves semantics by unit test snapshotsADVERTISEMENT - IN-ARTICLE
Руководство
Создайте инструмент сравнения на уровне AST, который проверяет сохранение семантики при механическом рефакторинге, проверяя эквивалентность репрезентативных наборов тестов и анализируя инварианты управления/потока данных.Используйте его в крупномасштабных автоматических запросах на рефакторинг, чтобы ускорить безопасные преобразования кодовой базы и снизить нагрузку на проверку.