github astral-sh/ty 0.0.52

4 hours ago

Release Notes

Released on 2026-06-22.

Bug fixes

  • Avoid shadowing hints for attribute assignments (#26164)
  • Fix dict.pop overloads to accept arbitrary keys with defaults (#26241)
  • Normalize recursive TypeOf across multiple union arms (#26230)
  • Normalize recursive TypeOf growth during cycle recovery (#26163)
  • Normalize recursive protocol growth during cycle recovery (#26246)
  • Preserve generic alias identity during cycle recovery (#26166)
  • Recover from dynamic class code generator cycles (#26167)

LSP server

  • Add a go-to destination for Divergent (#26162)
  • Publish diagnostics for all open files after a single file is saved (#25929)
  • Render Markdown for reStructuredText fields in docstrings on hover (#25903)

CLI

  • Make error-on-warning the default (#26157)

Diagnostics

  • Make rendering of fix diffs more concise (#26161)

Performance

  • Avoid allocating disabled error context trees (#26191)
  • Avoid lookup maps for small place tables (#26177)
  • Avoid moving boxed use-def map builders (#26211)
  • Avoid transient AST ID merge map (#26185)
  • Batch signature typevar freshness scans (#26196)
  • Box large semantic index builders (#26186)
  • Build frozen definition maps directly (#26188)
  • Compact use-def binding interner keys (#26193)
  • Consume condition flow snapshots (#26189)
  • Lazily allocate reachability caches (#26194)
  • Remove redundant use-def state shrinking (#26206)
  • Reuse the first union bindings buffer (#26225)
  • Short-circuit terminal narrowing constraints (#26215)
  • Solve simple constraint conjunctions directly (#25879)
  • Store cycle-detector cache entries inline (#26183)
  • Stream indexed AST construction (#26184)
  • Suppress discarded TypedDict diagnostics (#26250)
  • Use SmallVec for CycleDetector::seen (#26181)
  • Use a SmallVec for seen type aliases (#26187)

Core type checking

  • Raise limit for number of non-recursive union literals (#25212)
  • Preserve gradual behavior for explicit Any subclasses (#26034)
  • Preserve metaclasses when inheriting from intersection-typed bases (#26145)
  • Recognize exhaustive matches over finite tuples (#26132)

Contributors

Install ty 0.0.52

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.52/ty-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ty/releases/download/0.0.52/ty-installer.ps1 | iex"

Download ty 0.0.52

File Platform Checksum
ty-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ty-x86_64-apple-darwin.tar.gz Intel macOS checksum
ty-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ty-i686-pc-windows-msvc.zip x86 Windows checksum
ty-x86_64-pc-windows-msvc.zip x64 Windows checksum
ty-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ty-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ty-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ty-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ty-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
ty-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ty-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ty-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ty-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ty-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ty-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ty-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ty-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/ty

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

Don't miss a new ty release

NewReleases is sending notifications on new releases.