0.622
What's changed?
- Improved the actual message for the type errors for
cannot call non-function
when attempting to call a union of functions/callable tables. The error now correctly explains the issue is an inability to determine the return type of the call in this situation. - Resolve an issue where tables and metatables were not correctly being cloned during instantiation (fixes #1176).
- Refactor
luaM_getnextgcopage
toluaM_getnextpage
(generally removinggco
prefix where appropriate). - Optimize
table.move
between tables for large ranges of elements. - Reformat a bunch of code automatically using
clang-format
.
New Type Solver
- Clean up minimally-used or unused constraints in the constraint solver (
InstantiationConstraint
,SetOpConstraint
,SingletonOrTopTypeConstraint
). - Add a builtin
singleton
type family to replaceSingletonOrTopTypeConstraint
when inferring refinements. - Fixed a crash involving type path reasoning by recording when type family reduction has taken place in the path.
- Improved constraint ordering by blocking on unreduced types families that are not yet proven uninhabitable.
- Improved the handling of
SetIndexerConstraints
for both better inference quality and to resolve crashes. - Fix a crash when normalizing cyclic unions of intersections.
- Fix a crash when normalizing an intersection with the negation of
unknown
. - Fix a number of crashes caused by missing
follow
calls onTypeId
s. - Changed type family reduction to correctly use a semantic notion of uninhabited types, rather than checking for
never
types specifically. - Refactor the
union
andintersect
type families to be variadic.
Native Code Generation
- Improve translation for userdata key get/set and userdata/vector namecall.
- Provide
[top level]
and[anonymous]
as function names toFunctionStats
as appropriate when no function name is available. - Disable unwind support on Android platforms since it is unsupported.
Internal Contributors
Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Alexander McCord [email protected]
Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Aviral Goel [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]