0.691
New Type Solver
- Fixed #1983 by adding additional context to permit some expressions otherwise not allowed
- We now skip issuing CheckedFunctionWarnings on use of unreduced type functions
- Fix gcc compile error
- Handle expressions
a == banda ~= bmore efficiently - Subtyping now correctly handles generics over unions and intersections in cases such as
local function a<T>(arr: { T }) end
a({ 'one', 'two' })
- Rearrange unification cases to avoid free type generalization to never
- Improve generic bounds mismatch error message
- Fix Ancestry bug in visitor for incomplete repeat blocks such as
local t = {}
function t:Foo() end
repeat
t:|
- Support autocomplete for attributes
Native Codegen
- Unwind info has support on Android
- Introduced a separate ctypeof function which does not constant-fold for vector arguments.
- We now perform string concatenation at compile time if possible (there is a known issue with the optimization that we will address next week)
- Make vector.lerp and math.lerp more efficient with FMA
- Record STORE_SPLIT_TVALUE as a potential restore operation to reduce number of spills to stack
- When native execution is disabled, we now mark the call frame as not executing natively, making resumption safer
Co-authored-by: Andy Friesen afriesen@roblox.com
Co-authored-by: Annie Tang annietang@roblox.com
Co-authored-by: Hunter Goldstein hgoldstein@roblox.com
Co-authored-by: Ilya Rezvov irezvov@roblox.com
Co-authored-by: Menarul Alam malam@roblox.com
Co-authored-by: Sora Kanosue skanosue@roblox.com
Co-authored-by: Varun Saini vsaini@roblox.com
Co-authored-by: Vighnesh Vijay vvijay@roblox.com
Co-authored-by: Vyacheslav Egorov vegorov@roblox.com