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 to luaM_getnextpage (generally removing gco 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 replace SingletonOrTopTypeConstraint 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 on TypeIds.
Changed type family reduction to correctly use a semantic notion of uninhabited types, rather than checking for never types specifically.
Refactor the union and intersect 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 to FunctionStats as appropriate when no function name is available.
Disable unwind support on Android platforms since it is unsupported.
What's changed?
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.luaM_getnextgcopage
toluaM_getnextpage
(generally removinggco
prefix where appropriate).table.move
between tables for large ranges of elements.clang-format
.New Type Solver
InstantiationConstraint
,SetOpConstraint
,SingletonOrTopTypeConstraint
).singleton
type family to replaceSingletonOrTopTypeConstraint
when inferring refinements.SetIndexerConstraints
for both better inference quality and to resolve crashes.unknown
.follow
calls onTypeId
s.never
types specifically.union
andintersect
type families to be variadic.Native Code Generation
[top level]
and[anonymous]
as function names toFunctionStats
as appropriate when no function name is available.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: Aviral Goel agoel@roblox.com Co-authored-by: Vighnesh Vijay vvijay@roblox.com Co-authored-by: Vyacheslav Egorov vegorov@roblox.com