- Function purity analysis: Identifying which functions modify state versus pure functions that don’t cause side effects.
- Control flow complexity: Providing detailed cyclomatic complexity metrics to highlight areas that need refactoring.
- Type information: Extracting and inferring parameter and return types, even in dynamically-typed code.
- Dead code detection: Finding unused functions to help maintain cleaner codebases.
- Mutation analysis: Tracking how functions modify their inputs for better reasoning about data flow.
- Scope analysis: Mapping variable access and modifications to improve understanding of code behavior.