Поиск неиспользуемых классов или мертвого кода в проекте Haxe


Кто-нибудь знает способ автоматического получения списка неиспользуемых классов в проекте Haxe? Я не нахожу документации об этом, но информация должна быть где-то доступна. Как разница после устранения мертвого кода.

2   4  

2 ответа:

Вы можете получить журнал DCE, скомпилировав его с помощью -D dce-debug. (соответствующая запись в руководстве )

Например, компиляция class Hello { static function main() trace("Hello!"); } с haxe --interp -main Hello -D dce-debug дает что-то вроде:

...
[DCE] Removed field Type.getClass
[DCE] Removed field Type.getEnum
[DCE] Removed field Type.getSuperClass
[DCE] Removed field Type.getClassName
[DCE] Removed field Type.getEnumName
[DCE] Removed field Type.resolveClass
[DCE] Removed field Type.resolveEnum
[DCE] Removed field Type.createInstance
[DCE] Removed field Type.createEmptyInstance
[DCE] Removed field Type.createEnum
[DCE] Removed field Type.createEnumIndex
[DCE] Removed field Type.getInstanceFields
[DCE] Removed field Type.getClassFields
[DCE] Removed field Type.getEnumConstructs
[DCE] Removed field Type.typeof
[DCE] Removed field Type.enumEq
[DCE] Removed field Type.enumConstructor
[DCE] Removed field Type.enumParameters
[DCE] Removed field Type.enumIndex
[DCE] Removed field Type.allEnums
[DCE] Removed class Type
[DCE] Removed enum ValueType
...

Наконец, я смешиваю два решения, чтобы получить полный ответ.

  • Первый - это различие между файлами Haxe в исходном пути и разбираемыми классами в компиляции в подробном режиме.
  • второй-это разница с dce-debug и файлами в исходном пути. thx @jonasmalacofilho

Вы можете найти мой сценарий на gist: https://gist.github.com/aliokan/0a9abded7c079ad0260f651245964db2