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

JuliaLang / julia / 379
88%

Build:
DEFAULT BRANCH: master
Ran 23 Aug 2026 09:47PM 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.333% (+0.07%) from 78.262%
379

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%)

24 existing lines in 8 files now uncovered.

69416 of 88616 relevant lines covered (78.33%)

23947628.23 hits per line

Uncovered Changes

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

Coverage Regressions

Lines Coverage ∆ File
11
76.16
-3.2% Compiler/src/ssair/irinterp.jl
5
77.93
2.49% base/show.jl
3
68.61
-2.19% base/stat.jl
1
49.31
-0.17% base/gmp.jl
1
84.25
-0.03% Compiler/src/abstractinterpretation.jl
1
65.26
1.05% Compiler/src/effects.jl
1
77.38
-0.11% Compiler/src/optimize.jl
1
85.97
-0.08% Compiler/src/typeinfer.jl
Jobs
ID Job ID Ran Files Coverage
379 windows - 379 23 Aug 2026 10:51PM UTC 322
76.39
379 linux - 379 24 Aug 2026 12:50AM UTC 355
76.72
379 macos - 379 23 Aug 2026 09:47PM UTC 356
76.77
Source Files on build 379
  • Tree
  • List 356
  • Changed 44
  • Source Changed 4
  • Coverage Changed 43
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 08eef753 on github
  • Prev Build on master (#376)
  • Next Build on master (#380)
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