Fix parsing#33
Merged
Merged
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.
This pull request introduces a new workaround for parsing C++ translation units on macOS by injecting the system SDK path when needed, and adds comprehensive tests to ensure the robustness of this logic. It also bumps the package version and makes minor documentation updates.
macOS sysroot injection and related test coverage:
parse_translation_unit(inparser.py) to detect when running on macOS without an explicit-isysrootargument, and automatically inject the system SDK path usingxcrunto prevent missing C header errors. Handles and silences possible exceptions ifxcrunfails or is missing.TestDarwinSysroottest class intest_parser.pyto cover all code paths of the sysroot injection logic, including cases where-isysrootis already present,xcrunreturns an empty string, or raises errors.Diagnostics handling:
parse_translation_unitto only print all diagnostics when verbose, but always collect errors for strict mode.Version and documentation:
0.22.0in__init__.py.README.mdto reflect the new version and minor query parameter changes. [1] [2]