Repository navigation
Conversation
Fixes Graphify-Labs#4202 Co-Authored-By: Grok <noreply@x.ai>
tree-sitter-php has no void cast_type and cannot take match as a cast operand, so both forms become ERROR nodes and drop the call (sometimes the declaration). Blank those casts, keep offsets, and leave : void return types alone. Fixes Graphify-Labs#4202 Co-Authored-By: Grok <noreply@x.ai>
|
Thanks for the pull request, @Mpasha17. A maintainer will review it soon. Want to talk it through while it is in review? Come join us on our Discord server. For longer-form discussion there is also GitHub Discussions. A couple of things that speed up review: make sure the test suite passes on Python 3.10 and 3.13, and that the change keeps extraction deterministic. |
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds normalize_php_85, which blanks PHP 8.5 (void) casts and casts applied directly to match with spaces (newlines kept) so tree-sitter-php 0.24/0.25 parses the remaining expression and byte offsets stay intact. Casts inside strings and comments, : void return types, and the already-parseable (string) (match …) form are left alone, and unchanged input is returned as-is. New tests require the #4202 snippets to extract their classes, methods and call edges with no parse errors.
No blocking issues surfaced. 6 lower-confidence candidates did not survive cross-model review.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 18 functions depend on the 18 functions this change touches.
Health — grade A; no new coupling hotspots.
Verification — 18 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 18 function(s) in the blast radius were not formally verified this run
Test selection
Test selection
327 of 327 test file(s) selected (100%) via static blast radius.
Escalated to a full run for safety — the selection is not trustworthy on its own (see below). CI should run the whole suite.
tests/test_affected_cli.py— full-run-safetytests/test_affected_member_seed.py— full-run-safetytests/test_agents_platform.py— full-run-safetytests/test_analyze.py— full-run-safetytests/test_anthropic_custom_endpoint.py— full-run-safetytests/test_antigravity_install.py— full-run-safetytests/test_apm_fallback_version.py— full-run-safetytests/test_architecture_doc.py— full-run-safetytests/test_astro_extraction.py— full-run-safetytests/test_astro_import_ids.py— full-run-safetytests/test_atomic_canvas_export.py— full-run-safetytests/test_atomic_version_stamp.py— full-run-safetytests/test_atomic_writes.py— full-run-safetytests/test_backend_env_isolation.py— full-run-safetytests/test_backend_extras.py— full-run-safetytests/test_benchmark.py— full-run-safetytests/test_benchmark_raw_graph.py— full-run-safetytests/test_blade_extractor.py— full-run-safetytests/test_build.py— full-run-safetytests/test_build_merge_dedup_scope.py— full-run-safetytests/test_build_merge_hyperedges_and_prune.py— full-run-safetytests/test_build_merge_shrink_guard.py— full-run-safetytests/test_builtin_global_type_refs.py— full-run-safetytests/test_cache.py— full-run-safetytests/test_callflow_html.py— full-run-safetytests/test_cargo_introspect.py— full-run-safetytests/test_cargo_missing_manifest.py— full-run-safetytests/test_carried_hyperedge_remap.py— full-run-safetytests/test_case_sensitive_resolution.py— full-run-safetytests/test_charmap_encoding.py— full-run-safetytests/test_chunking.py— full-run-safetytests/test_cjs_module_extension.py— full-run-safetytests/test_claude_cli_backend.py— full-run-safetytests/test_claude_md.py— full-run-safetytests/test_cli_broken_pipe.py— full-run-safetytests/test_cli_export.py— full-run-safetytests/test_cli_help.py— full-run-safetytests/test_cluster.py— full-run-safetytests/test_cluster_exclude_hubs.py— full-run-safetytests/test_cobol_extractor.py— full-run-safetytests/test_codebuddy.py— full-run-safetytests/test_community_hub_labels.py— full-run-safetytests/test_community_labels_skill.py— full-run-safetytests/test_confidence.py— full-run-safetytests/test_corrupt_graph_json.py— full-run-safetytests/test_cpp_method_declarations.py— full-run-safetytests/test_cpp_nested_and_cli.py— full-run-safetytests/test_cpp_objc_cross_file_calls.py— full-run-safetytests/test_cpp_preprocess.py— full-run-safetytests/test_cross_extension_reexport_self_cycle.py— full-run-safety- … and 277 more
changed code file(s) with no mapped test (
graphify/extractors/php_normalize.py) — a coverage gap or a missing link — running the full suite rather than only the selected tests
Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.
Docs that may be stale (advisory)
.github/PULL_REQUEST_TEMPLATE.md§ Graphify-specific checklist (lines 33-39): references changed symbolsrunBENCHMARKS.md§ Reproducing (lines 174-187): references changed symbolsrunCHANGELOG.md§ 0.9.71 (2026-09-28) (lines 74-84): references changed symbolsworkCHANGELOG.md§ 0.9.68 (2026-09-25) (lines 106-118): references changed symbolsrunCHANGELOG.md§ 0.9.62 (2026-09-15) (lines 176-194): references changed symbolsWidgetCHANGELOG.md§ 0.9.59 (2026-09-12) (lines 210-217): references changed symbolsrunCHANGELOG.md§ 0.9.58 (2026-09-10) (lines 218-235): references changed symbolsfirstCHANGELOG.md§ 0.9.53 (2026-08-30) (lines 286-297): references changed symbolsrunCHANGELOG.md§ 0.9.47 (2026-08-19) (lines 374-390): references changed symbolsrunCHANGELOG.md§ 0.9.45 (2026-08-16) (lines 408-414): references changed symbolsrun
…and 10 more.
|
Closing this pr facing some issue , if anyone wanna contribute pls do , sorry for the inconvenience |
Closing this pr facing some issue , if anyone wanna contribute pls do , sorry for the inconvenience