github carthage-software/mago 0.11.0
Mago 0.11.0

latest releases: 1.0.0-beta.10, 1.0.0-beta.9, 1.0.0-beta.8...
6 months ago

Mago v0.11.0 Release Notes

✨ New Features

  • New Linter Rules
    Added several best-practice and analysis rules to improve code quality:

    • best-practices/no-else-clause: Discourages the use else clause in an if statement.
    • best-practices/no-boolean-flag-parameter: Flags boolean parameters that reduce readability.
    • best-practices/no-boolean-literal-comparison: Detects redundant boolean comparisons.
    • best-practices/no-empty-catch-clause: Warns about empty catch blocks.
    • best-practices/dont-catch-error: Warns against catching PHP's internal Error throwable.
    • redundancy/redundant-file: Identifies empty or redundant files.
    • redundancy/redundant-mathematical-operation: Finds unnecessary math operations.
    • analysis/override-attribute: Enforces use of #[\Override] for overridden methods (with auto-fix support).
    • maintainability/long-inheritance-chain: Warns against deep inheritance hierarchies.
    • analysis/parameter-name: Flag parameter name change in overriden methods.
  • Linter Enhancements

    • Added scope tracking to lint context for more accurate analysis.
    • Improved reflection handling for interfaces and tests.

🐛 Bug Fixes

  • Parser & Reflection Fixes

    • Fixed parsing of expression string parts.
    • Corrected method reflection to use lowercase names consistently.
    • Resolved interface reflection issues.
  • Static Call Handling

    • Allowed static calls to constructors and non-static methods within the same class or child classes.
  • CLI Fixes

    • Fixed broken mago fix command functionality.

📚 Documentation

  • CI Recipes
    Added example CI configurations to streamline integration with GitHub workflows @nhedger in #79

🔧 Internal Changes

  • Serialization Cleanup
    Removed serialization logic from interner and project crates.

  • Source Management
    Stub source names now prefixed with @ for clearer identification.

🚨 Breaking Changes

  • Rust Edition Update
    Migrated from Rust 2021 to Rust 2024 edition. Ensure your toolchain is compatible.

  • Minimum Supported Rust Version (MSRV)
    Updated MSRV to 1.85.0. Older Rust versions are no longer supported.


Enjoy the updates! 🚀


Full Changelog: 0.10.0...0.11.0

Don't miss a new mago release

NewReleases is sending notifications on new releases.