0.739
Immutable
release. Only release title and notes can be modified.
Hello again! Another week, another release.
We have a handful of nice optimizations and a new language feature to try out.
Language
- Experimental support for
if localexpressions:
local raycast_instance =
if local r = workspace:Raycast(Vector3.zero, Vector3.new(0, 1000, 0))
then r.Instance
else nil
print(r) -- nil: The local `r` is only available within the expressionThis is behind an experimental flag and is may likely change in the future, so for now treat it as unstable.
- Improve the error that's produced when attempting to index from a type refined to
table. Fixes #2712 - Typecheck generics within function bodies more strictly.
local function call<T>(fn: (T) -> T)
fn(nil) -- this should not be accepted. Fixed!
end
call(function(x: number)
return x + 1
end)VM
- Inline Luau-to-Luau metamethod call path.
- Improve performance of slow paths in Luau VM table get/set.
- Fixed integer overflow after table.move causing an OOB access.
- Add a metamethod lookup cache to frozen metatables.
Other
- Fix an autocomplete bug which prevented suggestions being surfaced correctly.
- Introduce a golden test framework for testing of Luau itself. See
tests/golden/analysis/README.mdfor details.
Co-authored-by: Andy Friesen afriesen@roblox.com
Co-authored-by: Annie Tang annietang@roblox.com
Co-authored-by: Ariel Weiss arielweiss@roblox.com
Co-authored-by: Hunter Goldstein hgoldstein@roblox.com
Co-authored-by: Ilya Rezvov irezvov@roblox.com
Co-authored-by: Vighnesh Vijay vvijay@roblox.com
Co-authored-by: Vyacheslav Egorov vegorov@roblox.com