Skip to content

Raise PHPStan to level 10 - #1

Merged
dnnsjsk merged 1 commit into
mainfrom
chore/phpstan-level-10
May 19, 2026
Merged

Raise PHPStan to level 10#1
dnnsjsk merged 1 commit into
mainfrom
chore/phpstan-level-10

Conversation

@dnnsjsk

@dnnsjsk dnnsjsk commented May 18, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Raises PHPStan from level 8 to level 10 (matches sibling inline0 projects: pitmaster, greph).
  • Narrows row data types from array<string, mixed> to array<string, scalar|null> end-to-end, matching what PDO::FETCH_ASSOC actually returns and what merge operations actually produce.
  • Adds runtime narrowing at all PDO boundaries (MysqlDriver, SqliteDriver, DriverFactory) and proper structural validation in SnapshotStore::deserialize (which loads untrusted JSON from disk).

Test plan

  • composer analyse — 0 errors at level 10
  • composer cs — clean
  • composer test — 195 tests pass
  • ./bin/test-regression — 32/32 oracle scenarios pass
  • ./bin/verify-all — full local gate green

🤖 Generated with Claude Code

Narrow row data to scalar|null end-to-end (matches PDO::FETCH_ASSOC's
actual contract), add runtime validation at PDO and JSON boundaries,
and tighten cell/conflict value types accordingly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented May 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
merql Ignored Ignored May 18, 2026 10:26pm

Request Review

@dnnsjsk
dnnsjsk marked this pull request as ready for review May 19, 2026 05:51
@dnnsjsk
dnnsjsk merged commit 4a672b4 into main May 19, 2026
4 checks passed
@dnnsjsk
dnnsjsk deleted the chore/phpstan-level-10 branch May 19, 2026 05:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant