* phantasm is a tool to assemble information about the codebase and then aggressively optimize it.
* This modifies the files that would be analyzed by Phan.
*
* Currently, the only optimization step this performs is replacing class constants with simple values.
* (Opcache can only replace class constants within the class declaring the constant, so that helps with that)
*
* See tests/phantasm_test for examples of the output.
*
* Future plans:
*
* - Expand the supported types of expressions that can be replaced or used as replacements
* - Inline instance and method calls across files (e.g. methods returning constants or simple expressions)
* - Add option to inline getters/setters, where the real type is known and there are no subclasses (by default, assume the original won't throw a TypeError)
* - Add ways to integrate this with building a phar file (unsafe)
* - Integrate other optimizations Phan can already do, such as --automatic-fix for NotFullyQualifiedUsagePlugin.
* - Use Phan's signature map/documentation map information about which constants, classes, and functions/methods are internal