Repository navigation
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.
Summary
Add Python S7503's missing async-keyword supporting location. All twelve retained actual SonarPython5.31 observations have message
This function is async.on the five-byte async keyword; native now emits the matching single same-file flow and Generic Sonar secondary location.Change type and scope
Bug fix in the existing Python S7503 rule. Production adds a guarded source-range proof and attaches one flow to the already selected primary issue. Declaration start plus5 uses checked arithmetic; exact source slices, declaration/name bounds, nonempty name and ordering must prove the location. Refusal preserves the primary diagnostic. Strengthen the current complete-object unit/CLI expectations and add six public CLI regressions plus an invalid-range unit control.
Related issues
Direct authorized real-project smoke/parity repair campaign, no new issue ID. Depends on fully published PR #946. Historical generator/override repairs and the qualified primary message remain preserved. Unrelated PR #875 is outside this package.
Verification
Independent source and frozen-evidence review approved this exact signed head without actionable findings. The review verified signed source inventories, unchanged committed regression bytes, executed behavioral red/green evidence, complete ordered report comparisons and fresh CLI witnesses. Independent review receipt SHA256:
88600bed46ebece090105005e602740b5ee0c3015131ab013e82affe60814066. All 21 exact-head hosted checks and dependency-base restoration remain publication gates.e3fa2534fc3f6cea131e6b07ceece5cb25de9889: actual compiled unit1failed/2controls passed; CLI10failed/TEST-scope1passed. Exact final unit test section and both CLI files are byte-identical to the signed red checkpoint.cargo test --locked -p hoonarqube-python --all-targets --all-features:1381 passed. Historical selectioncargo test --locked -p hoonarqube-python s7503 -- --nocapture:3 passed. Unit symbols:s7503_flags_async_functions_without_awaits,s7503_preserves_async_generator_contracts,s7503_unproven_keyword_ranges_keep_the_original_primary.python_s7503_messageandpython_s7503_supporting_locations:11 passed. New symbols:python_s7503_all_twelve_reference_supports_match_full_objects,python_s7503_supports_follow_tokens_through_nested_and_spaced_headers,python_s7503_test_scope_remains_exempt,python_s7503_indented_astral_crlf_keeps_scalar_and_utf16_coordinates,python_s7503_recovery_preserves_primary_and_incompleteness_when_support_is_unproven,python_s7503_supports_survive_same_path_positive_clean_restored_cache_stages. Existing five message regressions now include complete support objects; exact symbol/acceptance mapping is retained in the evidence package.-D warnings, workspace fmt and base-to-head diff pass. Pinned released0.3.1 implicit-default-profile dogfood over crates/xtask in a pinned read-only Linux runner with no network has zero Rust S3776.aaa93057962ca3295acf91df8703853de46800daaf71573ba54101818f039bcdto clean signed head018e6d2c5feef45b2e743935de88cb23ecad989f/ treeb7f659177e47277cb13ca81c836615d90a83eebb. Full receipts, executed test maps, complete reports and immutable source/binary envelopes:/Users/wakemeup/.codex/artifacts/hoonarqube-repairs-20261013/python-s7503-supporting-locations. Hosted21 exact-head checks remain pending at worker handoff.This dependent PR is initially published against main so default-setup CodeQL can analyze the exact signed head, then its base is restored to
fix/smoke-python-s7503-message-20261015at2c6c3d5ad4c0bbb596d94ab7211a9135b616eb6f. All 21 checks, the exact head, live body and GitHub signature are verified again after restoration.Compatibility and risks
Native JSON gains one flow and Generic Sonar gains one secondary location for proven selected functions. The exact primary message, range, selection, order, multiplicity, completeness and existing automatic-fix fields retain their values. Source guards conservatively omit unproven support while preserving diagnostics. Existing shared flow/export support is reused; no parser, catalog, profile, dependency, cache, IR, public helper, schema or exporter changes.
Limitations
Focused actual12 primary/support tuple parity is qualified from retained SonarQube26.9/Python5.31 evidence. Newly added layout/Unicode/recovery/TEST/cache controls establish native preservation, not fresh Sonar parity. No new server/reference scan, whole-object metadata/rule/global parity or quickfix repair is claimed. Root owns independent review, all21 hosted checks and intended PR946 dependency-base restoration with final live body/head/signature/check readback. No merge, tag or release is included.