Detect the _deprecated_file() call anywhere in a file's uses - #281
Open
sirreal wants to merge 2 commits into
Open
Detect the _deprecated_file() call anywhere in a file's uses#281sirreal wants to merge 2 commits into
sirreal wants to merge 2 commits into
Conversation
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.
The importer flags a file as deprecated only when
uses.functions[0]— the first recorded call in the file — is_deprecated_file(). Any call preceding it silently loses the deprecation flag, and an empty uses list raises an undefined-offset notice. The importer now searches the uses list for the_deprecated_filerecord and readsdeprecation_versionfrom that record.Complements #277, which makes the exporter attach
deprecation_versionto the deprecating call's own record instead of index 0. With pre-#277 export data where the deprecating call isn't first, the version sits on the wrong record and the file stays unflagged — the same outcome as today, so this change is non-regressing under either exporter and becomes fully correct once #277 lands. The tests feed hand-built uses data to the importer, so they exercise the importer's contract without depending on the exporter's placement.The after-other-calls test and the empty-uses test fail on master (one missed flag, one undefined-offset error); all pass with the fix, as does the full suite.
Found during the review of #262; extracted as a standalone change.
🤖 Generated with Claude Code