Skip to content

QA: ignore Core/Base IR-introspection internals in public-API check#65

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:fix-red-lane
Jul 5, 2026
Merged

QA: ignore Core/Base IR-introspection internals in public-API check#65
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:fix-red-lane

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Please ignore until reviewed by @ChrisRackauckas.

Problem

The QA julia 1 (1.11+) lane fails on the ExplicitImports all_qualified_accesses_are_public check. hasbranching is a compiler-introspection utility that code_typeds f and scans the resulting typed IR, so it necessarily reaches into Core/Base IR and inference internals that have no public equivalent. The ignore tuple only listed :Typeof, so the other eight internals were flagged:

- `Argument` is not public in `Core` ... src/FunctionProperties.jl:123
- `CodeInfo` is not public in `Core` ... src/FunctionProperties.jl:98
- `Const` is not public in `Core` ... src/FunctionProperties.jl:130
- `MethodInstance` is not public in `Core` ... src/FunctionProperties.jl:140
- `PartialStruct` is not public in `Core` ... src/FunctionProperties.jl:254
- `SSAValue` is not public in `Core` ... src/FunctionProperties.jl:120
- `SlotNumber` is not public in `Core` ... src/FunctionProperties.jl:125
- `code_typed_by_type` is not public in `Base` ... src/FunctionProperties.jl:89

Fix

Extend the all_qualified_accesses_are_public ignore tuple in test/qa/qa.jl from (: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 to Typeof/GotoIfNot. all_explicit_imports_are_public = (; ignore = (:GotoIfNot,)) is left unchanged. No source change, no compat/floor change.

Validation (local)

  • QA group (GROUP=QA Pkg.test) on Julia 1.12.6 (the julia 1 lane): QA/qa.jl | 18 18 — all pass (was 17 pass / 1 error before).
  • QA group on Julia 1.10.11 (lts lane): QA/qa.jl | 16 16 — all pass (the two public-API checks are skipped pre-1.11).
  • Reproduced the pre-fix failure (exactly the 8 names above) before editing; confirmed all clear afterward.
  • Ran Runic on the changed file.

Resolved deps at verification: SciMLTesting 1.8.0, ExplicitImports 1.15.0, Aqua 0.8.16, JET 0.11.5.

🤖 Generated with Claude Code

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>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review July 5, 2026 04:59
@ChrisRackauckas ChrisRackauckas merged commit 16668e2 into SciML:main Jul 5, 2026
9 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants