0.623
What's changed?
New Type Solver
- Unification of two fresh types no longer binds them together.
- Replaced uses of raw
emplace
withemplaceType
to catch cyclic bound types when they are created. SetIndexerConstraint
is blocked until the indexer result type is not blocked.- Fix a case where a blocked type got past the constraint solver.
- Searching for free types should no longer traverse into
ClassType
s. - Fix a corner case that could result in the non-testable type
~{}
. - Fix incorrect flagging when
any
was a parameter of some checked function in nonstrict type checker. IterableConstraint
now consider tables without__iter
to be iterables.
Native Code Generation
- Improve register type info lookup by program counter.
- Generate type information for locals and upvalues
Internal Contributors
Co-authored-by: Aaron Weiss aaronweiss@roblox.com
Co-authored-by: Alexander McCord amccord@roblox.com
Co-authored-by: Andy Friesen afriesen@roblox.com
Co-authored-by: James McNellis jmcnellis@roblox.com
Co-authored-by: Vighnesh Vijay vvijay@roblox.com
Co-authored-by: Vyacheslav Egorov vegorov@roblox.com