Update dependency carthage-software/mago to ^1.0.0-rc.13 - abandoned #140
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^1.0.0-rc.9->^1.0.0-rc.13Release Notes
carthage-software/mago (carthage-software/mago)
v1.0.0-rc.13Compare Source
This release introduces an internal plugin system for the analyzer, adds new linter rules, and continues the focus on minimizing false positives.
New Features
Analyzer
UnitEnum::cases()return type provider: Properly infers the return type ofcases()on unit enumsLinter
instanceof-stringablerule: Suggests using$x instanceof Stringableinstead of the verboseis_object($x) && method_exists($x, '__toString')patternBug Fixes
Analyzer
parent::now works in traits with@require-extendsannotation (#732)__toStringmethod can be cast to string without errors?->)Codex
$thishandling corrected in type expansionFormatter
Linter
Type Syntax
Full Changelog: carthage-software/mago@1.0.0-rc.12...1.0.0-rc.13
v1.0.0-rc.12: Mago 1.0.0-rc.12Compare Source
Mago 1.0.0-rc.12
This release continues our focus on reducing false positives, improving generic type handling, and enhancing PHP 8.4+ property hooks support.
New Features
Analyzer
Formatter
fmt --stagedcommand for formatting only staged files, along with a pre-commit hooks guide for seamless CI integration.Bug Fixes
Analyzer
=== '',=== 0,=== 1.5,=== true,=== false) after type narrowing in OR conditions.unimplemented-abstract-property-hookwhen a concrete class inherits the hook implementation from a parent class.is_callable()Narrowing: Added support foris_callable()type narrowing on array callables withclass-stringelements (e.g.,array{class-string<Foo>, 'method'}).isset()on Open Array Shapes: Fixed false positives when usingisset()checks on open array shapes with mixed values.stdClass: Allowed dynamic property access onstdClasswithout triggering errors.Codex
Docblock
@methodTag Parsing: Fixed parsing of@methodtags with leading whitespace.Formatter
/** @​lang SQL */) were incorrectly moved after the opening identifier, resulting in invalid code.empty_line_after_opening_tagdefault behavior consistent across configurations.New Contributors
Full Changelog: carthage-software/mago@1.0.0-rc.11...1.0.0-rc.12
v1.0.0-rc.11: Mago 1.0.0-rc.11Compare Source
This release focuses on reducing false positives, improving type system accuracy, performance optimizations, and introducing new linter rules.
New Features
Linter
New
property-namerule (#703)Added a new linter rule to enforce consistent property naming conventions across your codebase.
New
use-specific-assertionsruleIntroduced a new rule that encourages using specific assertion methods (e.g.,
assertTrue,assertNull) instead of genericassertEquals/assertSamewith literal values for better clarity and intent.Analyzer
The analyzer now properly narrows types based on symbol and member existence checks like
function_exists(),method_exists(),property_exists(), anddefined(). This eliminates false positives when conditionally using symbols after checking their existence.Bug Fixes
Analyzer
Fixed false positives for class-string comparisons and static variable initialization
Resolved issues where the analyzer incorrectly flagged valid code involving class-string type comparisons and static variable initialization patterns.
Fixed false positive for
count()comparison on non-empty-listThe analyzer no longer incorrectly reports issues when comparing the count of a
non-empty-listwith integer values.Fixed list type preservation when narrowing with
is_array()Using
is_array()on a union type containing a list no longer incorrectly loses the list type information.Fixed interface method resolution for
__callStaticThe analyzer now only reports interface implementation issues when resolving actual methods, not when resolving magic
__callStaticcalls.Fixed invalid array access assignment value checking
Improved detection of invalid values being assigned through array access expressions.
Reconciler
Type narrowing on list types now correctly preserves the element type assertions, preventing false positives in generic list operations.
Docblock
@methodtag withstaticreturn typeThe docblock parser now correctly handles
@methodtags that specifystaticas their return type.Linter
strict-assertionsrule less strictThe
strict-assertionsrule has been adjusted to reduce noise while still catching problematic assertion patterns.WASM
The WASM build now uses the same default analyzer settings as the native build for consistent behavior.
Reporting
Removed unnecessary duplicate checking when collecting issues, improving performance and correctness.
Performance Improvements
Optimized type combiner
Significant performance improvements to the type combination logic, reducing analysis time for codebases with complex type operations.
Lowered analysis thresholds
Adjusted internal thresholds for formula complexity and algebra operations to improve analysis speed on large codebases without sacrificing accuracy.
Early return optimization for pragma collection
Added early return when no pragmas are present, avoiding unnecessary processing.
Build Improvements
Release binaries for macOS and Windows are now built with PGO, resulting in 5-15% performance improvements.
Full Changelog: carthage-software/mago@1.0.0-rc.10...1.0.0-rc.11
v1.0.0-rc.10: Mago 1.0.0-rc.10Compare Source
Mago 1.0.0-rc.10
This release focuses on reducing false positives across multiple analysis scenarios, improving type system accuracy, and enhancing PHP compatibility.
Bug Fixes
Analyzer
Foocan beBarat runtime (#707)$value === []on non-null or mixed types (#701)unimplemented-abstract-property-hookincorrectly reported on interfacesIteratorkey/value types fromkey()andcurrent()method return typesfloatandarray-keyin string concatenation with improved__toStringtrait detection$_COOKIEsuperglobalCodex
selftype resolution to use intersection with@require-implements/@require-extendsconstraintsPrelude
call_user_funcandsprintfstubs withStringablesupportImprovements
Composer
Full Changelog: carthage-software/mago@1.0.0-rc.9...1.0.0-rc.10
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
Renovate Bot