release 0.5.6 - #1258
Open
skolkin-worker wants to merge 14 commits into
Open
Conversation
Fix false positives in null-safety when types are narrowed by && conditions, loose null comparisons, and return/continue guard patterns.
Bump version, sync composer-get downloader versions, and recognize aarch64 as arm64.
Limit VarImplicit guard propagation to null/false, instanceof, and is_* checks so truthiness conditions like if (!$x) don't affect other checkers.
Pre-register method signatures from the file being linted so forward references like $this->otherMethod() resolve when the global index is stale. Keep argument type checks by parsing full signatures without duplicate keywordCase diagnostics.
linter:fix null-safety narrowing in short-circuit conditions
Linter:fix array type
Bump version to 0.5.8, update golden test expectations to remove false-positive notNullSafety warnings fixed by array type improvements.
Builds binaries for all 5 platforms and creates a GitHub release on tag push (v*) or manual dispatch.
Fixes macOS race detector crash (signal: abort trap) caused by Go 1.21 on macOS 14+, and resolves Node.js 20 deprecation warning.
alefaf-deli
approved these changes
Jul 15, 2026
DeleteMetaForFileNonLocked was unconditionally deleting classes from
allClasses when a file was re-indexed, even if the current definition
came from a longer source (e.g. PHP stubs). This caused stub definitions
like \Throwable to be replaced by shorter polyfills (e.g. Codeception's
empty `interface Throwable {}`), leading to false undefinedMethod errors
for getMessage(), getFile(), getLine(), etc.
The fix applies the same Pos.Length check already used for functions.
Fixes linux-amd64 binary being dynamically linked when built on ubuntu-latest CI (CGO enabled by default on native platform). Manual releases were built on macOS where cross-compiling auto-disables CGO.
Fixes Node.js 20 deprecation warning on GitHub Actions runners.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
&&checks, loose null comparisons (== null/!= null), and guardifstatements withreturn/continue(not onlyinstanceof)if (!$x)do not affect other checkers$this->otherMethod()defined below) when the global index is stale, while keeping argument type checksaarch64arch detection)Test plan
make test— golden tests updated for improved narrowing; regression test for diff mode same-file method callsmake build— binary reports version0.5.6make release— archives built for linux/darwin (amd64+arm64) and windows