Release Notes
Bug fixes
- Fix goto definition on imports (#19834)
- Support non-generic recursive type aliases that use the
type
statement (#19805) - Handle cycles when finding implicit attributes (#19833)
Server
- Implement support for "rename" language server feature (#19551)
- Add
ty.experimental.rename
server setting (#19800) - Add
ty.inlayHints.variableTypes
server setting (#19780) - Add inlay hints for call arguments (configured by
ty.inlayHints.callArgumentNames
server setting) (#19269) - Enable goto definition to jump to the runtime definition in the standard library for stdlib symbols (rather than the type definition in typeshed's stubs) (#19529)
- Support LSP client settings (#19614)
- Update goto range for attribute access to only target the attribute (#19848)
- Warn users if the server received unknown options (#19779)
- Render docstrings in hover (#19882)
- Resolve docstrings for modules (#19898)
Typing semantics and features
- Add precise inference for indexing, slicing and unpacking
NamedTuple
instances (#19560) - Disallow
typing.TypedDict
in type expressions (#19777) - Implement module-level
__getattr__
support (#19791) - Improve ability to solve TypeVars when they appear in unions (#19829)
- Improve subscript narrowing for
collections.ChainMap
,collections.Counter
,collections.deque
andcollections.OrderedDict
(#19781) - Extend all tuple special casing to tuple subclasses (#19669)
- Use separate Rust types for bound and unbound type variables (#19796)
- Validate writes to
TypedDict
keys (#19782) typing.Self
is bound by the method, not the class (#19784)- Fix deferred name loading in PEP695 generic classes/functions (#19888)
- Improve handling of symbol-lookup edge cases involving class scopes (#19795)
Performance
- Improve performance around tuple types (#19840)
- Improve performance of subtyping and assignability checks for protocols (#19824)
- Improve multithreaded performance for large codebases (#19867)
Memory usage optimizations
Contributors
- @AlexWaygood
- @Gankra
- @ntbre
- @MichaReiser
- @PrettyWood
- @dhruvmanila
- @carljm
- @dcreager
- @UnboundVariable
- @sharkdp
- @oconnor663
- @MatthewMckee4
Install ty 0.0.1-alpha.18
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.18/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.18/ty-installer.ps1 | iex"