Improved error messages for type families to describe what's wrong in more detail, and ideally without using the term type family at all.
Change boolean and string singletons in type checking to report errors to the user when they've gotten an impossible type (indicating a type error from their context).
Split debugging flags for type family reduction (DebugLuauLogTypeFamilies) from general solver logging (DebugLuauLogSolver).
Improve type simplification to support patterns like (number | string) | (string | number) becoming number | string.
Native Code Generation
Use templated luaV_doarith to speedup vector operation fallbacks.
Various small changes to better support arm64 on Windows.
New Type Solver
type family
at all.boolean
andstring
singletons in type checking to report errors to the user when they've gotten an impossible type (indicating a type error from their context).DebugLuauLogTypeFamilies
) from general solver logging (DebugLuauLogSolver
).(number | string) | (string | number)
becomingnumber | string
.Native Code Generation
luaV_doarith
to speedup vector operation fallbacks.Internal Contributors
Co-authored-by: Aaron Weiss aaronweiss@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