Repository navigation
Conversation
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
A file the editor has open before the workspace index runs confirms its typed receivers against a container nothing has filled yet, and kept that answer until the file was edited. Clear the confirmed spans when the container's declarations change. Assisted-by: claude-code/claude-opus-5-5
A file's typed receivers confirmed against the old container or the old signatures, and cached after the change cleared the cache, kept that answer. Stamp each file's confirmed spans with an epoch read before confirming, and keep them only if the epoch has not moved since. The epoch moves wherever the cache was cleared, whenever the container index is retired, and when the plugin managers or a service provider's class replacements change, so an answer that predates a change is never served. A declaring file is now noted in the container after joining the set of declaring files, so a lookup that reads the new generation builds the index from it. Assisted-by: claude-code/claude-opus-5-5
Confirming a receiver as a plugin manager reads only the managers, but the confirmed spans were retired whenever a file's plugin sources changed. Those include the plugin declarations and their offsets, so indexing or editing any plugin class threw away every file's confirmed lookups. Retire them only when the file's managers change, and say why signature changes retire them before the container index. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AJenbo
force-pushed
the
fix-container-lookups-before-index
branch
from
November 12, 2026 20:12
191dd17 to
0251826
Compare
Contributor
|
thanks |
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.
Fixes service and plugin lookups in files the editor opened before indexing ended. A lookup such as
\Drupal::service('entity_type.manager')->getStorage('node')or\Drupal::service('plugin.manager.block')->createInstance('…')in a restored tab stayed unresolved until the file was edited, so go to definition on the ID found nothing.alter()change, so they follow these files as they are read or edited.On Drupal core 11.4 and on the
redirectandflagmodules,analyzereports exactly whatmainreports, and the Drupal and Symfony completion benchmarks pass.How to test: run
composer installinexamples/drupaland openweb/modules/custom/acme/src/Controller/GreetingController.phpwith this branch's build. Restart the editor with that tab open, wait for indexing to end, and go to the definition of'acme_greeting_block'inblock()without editing the file: it lands on the block class.Checklist
If applicable:
CHANGELOG.mdREADME.md,docs/,examples/). Not applicable: no documented behaviour changes.config-schema.json). Not applicable: this PR adds or changes no setting.the changes and why they are needed.
the changelog, and other user-facing content, and removed or corrected
anything inaccurate, unclear, or unnecessary.