• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

JuliaLang / julia / 380
78%

Build:
DEFAULT BRANCH: master
Ran 24 Aug 2026 09:50PM UTC
Jobs 3
Files 356
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Aug 2026 05:03PM UTC coverage: 78.38% (+0.05%) from 78.333%
380

push

buildkite

web-flow
types: compute self-referential supertypes lazily (#62847)

🤖 A struct definition whose supertype declaration recursively applies
the type being defined at structurally increasing parameters, such as

    struct S{T} <: A{S{Tuple{T}}} end

has an infinite supertype graph: eagerly instantiating each level's
supertype creates the next level. Today the definition-time partial
fixup truncates that recursion by silently caching wrong supertypes —
the same interned type can permanently report `Any` or its true
supertype depending on which expression happened to construct it first,
and `supertype` disagrees with `<:`.

With this PR, an instantiation created while another instantiation of
the same (supertype-self-referential) typename is in flight now defers
its supertype and completes it lazily, one level per demand
(`jl_datatype_compute_super`). Every level of the graph is correct and
independent of instantiation order. Same-parameter self-references still
tie their knot through the instantiation stack, so ordinary recursive
types are unaffected, and field types stay eager — a concrete type must
publish with its layout, so the field-type analogue of this recursion
(the `S1` case of #61347) is left for a follow-up.

Addresses the supertype half of #61347.

Assisted-by: Claude Code (Fable 5)

Co-authored-by: Keno Fischer <Keno@users.noreply.github.com>

13 of 17 new or added lines in 4 files covered. (76.47%)

361 existing lines in 8 files now uncovered.

69435 of 88588 relevant lines covered (78.38%)

23856882.81 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
74.79
0.0% Compiler/src/tfuncs.jl
2
77.04
0.0% Compiler/src/typelimits.jl

Coverage Regressions

Lines Coverage ∆ File
286
74.79
0.0% Compiler/src/tfuncs.jl
31
78.74
0.0% Compiler/src/utilities.jl
15
92.65
0.0% base/operators.jl
11
67.24
-3.13% base/shell.jl
6
77.65
-0.28% base/show.jl
5
78.35
-0.2% base/loading.jl
4
72.33
-0.79% base/reflection.jl
3
94.56
-1.02% base/strings/string.jl
Jobs
ID Job ID Ran Files Coverage
380 macos - 380 24 Aug 2026 09:50PM UTC 356
77.15
380 linux - 380 25 Aug 2026 12:53AM UTC 355
77.11
380 windows - 380 24 Aug 2026 11:05PM UTC 322
76.33
Source Files on build 380
  • Tree
  • List 356
  • Changed 48
  • Source Changed 0
  • Coverage Changed 48
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 08eef753 on github
  • Prev Build on master (#379)
  • Next Build on master (#382)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc