github astral-sh/ty 0.0.1-alpha.30

pre-release3 hours ago

Release Notes

Released on 2025-12-03.

Bug fixes

  • Fix exhaustiveness checking for match statements over unions of generic instance types (#21726)
  • Don't introduce invalid syntax when autofixing override-of-final-method (#21699)
  • Suppress false positives when dataclasses.dataclass(...)(cls) is called imperatively (#21729)
  • Fix false positives for class F(Generic[*Ts]): ... (#21723)
  • Don't confuse multiple occurrences of typing.Self when binding bound methods (#21754)
  • Fix subtyping between type[T] and a union type, where T is a type variable in scope (#21740)
  • Fix subtyping between type[T] and U, where T is a type variable in scope and U is a type variable not in scope (#21766)
  • Fix false positives for type[tuple[...]] (#21652)

Memory usage improvements

  • Significantly reduce memory usage (especially when ty is used as an LSP server) by enabling least-recently-used (LRU) cache eviction for module ASTs (#21749)

LSP server

  • Add code action to ignore diagnostic on the current line (#21595)
  • Exclude typing_extensions from autocomplete suggestions unless it's really available (#21731)
  • Fix auto-import code action to handle pre-existing imports (#21733)
  • Fix "find all references" for types defined in stub files (#21732)
  • Fix "find all references" for symbols defined via aliased imports (#21736)

Improvements to handling of type aliases

  • Default-specialize generic type aliases when they appear unspecialized in type expressions (#21765)
  • Infer a type alias as being a generic type alias if it includes a type variable in its definition, even in cases where the value subscripted with the type variable is inferred as having a dynamic type such as Any or Unknown (#21730)

New NamedTuple diagnostics

  • Detect NamedTuple classes that have field names starting with underscores, which is banned at runtime (#21697)
  • Add a diagnostic detecting overrides of prohibited NamedTuple attributes (#21717)
  • Detect illegal uses of super() in methods of NamedTuple classes (#21700)

Improvements to existing diagnostics

  • Improve diagnostics for unsupported comparison operations (#21737)
  • For invalid-type-arguments diagnostics, show the user where the type variable was defined (#21727)
  • Extend invalid-explicit-override to also cover properties decorated with @override that do not override anything (#21756)
  • Improve @override, @final and Liskov checks in cases where there are multiple reachable definitions (#21767)

Contributors

Install ty 0.0.1-alpha.30

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

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

Download ty 0.0.1-alpha.30

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

Don't miss a new ty release

NewReleases is sending notifications on new releases.