QA: ignore Core/Base IR-introspection internals in public-API check#65
Merged
Merged
Conversation
The hasbranching utility code_typeds f and scans the resulting typed IR, so it necessarily accesses Core/Base compiler-introspection internals that have no public equivalent: Argument, CodeInfo, Const, MethodInstance, PartialStruct, SSAValue, SlotNumber (IR node & inference types) and code_typed_by_type (the non-public typed-IR entry point). Extend the all_qualified_accesses_are_public ignore tuple from (:Typeof,) to cover all of these so the QA ExplicitImports public-API check passes on 1.11+. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
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.
Please ignore until reviewed by @ChrisRackauckas.
Problem
The QA
julia 1(1.11+) lane fails on the ExplicitImportsall_qualified_accesses_are_publiccheck.hasbranchingis a compiler-introspection utility thatcode_typedsfand scans the resulting typed IR, so it necessarily reaches intoCore/BaseIR and inference internals that have no public equivalent. The ignore tuple only listed:Typeof, so the other eight internals were flagged:Fix
Extend the
all_qualified_accesses_are_publicignoretuple intest/qa/qa.jlfrom(:Typeof,)to also cover:Argument, :CodeInfo, :Const, :MethodInstance, :PartialStruct, :SSAValue, :SlotNumber, :code_typed_by_type. These are all Core/Base compiler-introspection internals (typed-IR node types, inference lattice element types, the resolved-call type, and the non-public typed-IR entry point) with no public API — the same rationale that already applies toTypeof/GotoIfNot.all_explicit_imports_are_public = (; ignore = (:GotoIfNot,))is left unchanged. No source change, no compat/floor change.Validation (local)
GROUP=QAPkg.test) on Julia 1.12.6 (thejulia 1lane):QA/qa.jl | 18 18— all pass (was 17 pass / 1 error before).ltslane):QA/qa.jl | 16 16— all pass (the two public-API checks are skipped pre-1.11).Resolved deps at verification: SciMLTesting 1.8.0, ExplicitImports 1.15.0, Aqua 0.8.16, JET 0.11.5.
🤖 Generated with Claude Code