Skip to content

Prevent PHP vendor imports from binding unrelated project symbols - #2515

Merged
DeusData merged 1 commit into
mainfrom
fix/issue-1186-vendor-imports-v2
Oct 12, 2026
Merged

DeusData merged 1 commit into
mainfrom
fix/issue-1186-vendor-imports-v2

Conversation

@DeusData

@DeusData DeusData commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

PHP use statements outside Composer's PSR-4 mappings could bind unrelated
project symbols with the same name, including TypeScript classes. Resolve these
imports through declared PHP namespaces, and filter non-PHP candidates before
selection so valid project imports remain available. Existing PSR-4 class-file,
function/constant, and missing-file behavior is preserved.

Adds nine regression/control cases for vendor collisions, project namespace
targets, empty namespace maps, global uses, function and grouped imports,
namespace aliases, NULL-map resolution, and file-path imports. Negative checks
also require extracted imports and successful graph queries.

Validation: changed regions formatted; git diff --check passed. All local
runtime tests, builds, revert checks, and CI were explicitly waived and remain
UNRUN. Depends on #2509 and relates to #1186. This branch includes the PSR-4 prerequisite until it is merged; the PR targets main to trigger the repository's PR and CodeQL workflows.

NULL-map resolution intentionally retains generic PHP candidate selection;
this does not claim to eliminate all vendor-related CALLS collisions.

Existing indexes need reindexing. GitHub validation is pending on the published revision.

@DeusData
DeusData changed the base branch from fix/issue-1186-psr4-imports-v2 to main October 3, 2026 16:41
@DeusData

DeusData commented Oct 3, 2026

Copy link
Copy Markdown
Owner Author

Checkpoint and handover (2026-10-03 UTC)

Published head: e4ee60b02389cd54169f69f7080428c4958babf8. The remote head was verified.

The PHP import follow-up depends on #2509; vendor type work continues separately in #2520. Required PR/CodeQL checks did not start after the base-only edit. One exact close/reopen cycle was proposed but remains unapproved; do not substitute another trigger or infer approval from this handover.

Hosted snapshot at 2026-10-03 21:54:13 UTC: 1 skipped, 2 success. Confirm the required checks on this exact head before treating it as ready.

No additional local build, test, lint, sanitizer, benchmark or CI runs were performed at this checkpoint, as requested. Earlier executed evidence remains historical; prepared tests and the newer source-reviewed changes must still be validated by the hosted gate.

The campaign is paused at the maintainer’s request. Local monitoring has stopped; hosted jobs remain running. No merge was performed. Thanks for reviewing this change.

@DeusData DeusData closed this Oct 4, 2026
@DeusData DeusData reopened this Oct 4, 2026
Filter non-PHP candidates before selection and distinguish an empty namespace map from missing namespace information.

Refs #1186.

Signed-off-by: Martin Vogel <[email protected]>
@DeusData
DeusData force-pushed the fix/issue-1186-vendor-imports-v2 branch from e4ee60b to b0dd5af Compare October 12, 2026 18:29
@DeusData
DeusData merged commit e0a04e9 into main Oct 12, 2026
12 of 14 checks passed
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