mirror of
https://github.com/luau-lang/luau.git
synced 2025-04-30 00:23:49 +01:00
53 lines
2.2 KiB
Markdown
53 lines
2.2 KiB
Markdown
---
|
|
layout: single
|
|
title: "Luau Recap: September 2021"
|
|
---
|
|
|
|
Luau is our new language that you can read more about at [https://luau-lang.org](https://luau-lang.org).
|
|
|
|
[Cross-posted to the [Roblox Developer Forum](https://devforum.roblox.com/t/luau-recap-september-2021/).]
|
|
|
|
## Editor features
|
|
|
|
We have made some improvements to the Luau-powered autocomplete beta feature in Roblox Studio:
|
|
|
|
* We no longer give autocomplete suggestions for client-only APIs in server-side scripts,
|
|
or vice versa.
|
|
* For table literals with known shape, we provide autocomplete suggestions for properties.
|
|
* We provide autocomplete suggestions for `Player.PlayerGui`.
|
|
* Keywords such as `then` and `else` are autocompleted better.
|
|
* Autocompletion is disabled inside a comment span (a comment starting `--[[`).
|
|
|
|
## Typechecking improvements
|
|
|
|
The big news this month is that generic functions are back!
|
|
|
|
*write-up of generics goes here*
|
|
|
|
In other typechecking news:
|
|
|
|
* The Luau constraint resolver can now refine the operands of equality expressions.
|
|
* We fixed some crashes caused by UAF during type inference.
|
|
* We do a better job of tracking updates when script is moved inside the data model.
|
|
* We fixed one of the ways that [recursive types could cause free types to leak](https://devforum.roblox.com/t/free-types-leaked-into-this-modules-public-interface/1459070).
|
|
* We improved the way that `return` statements interact with mutually recursive
|
|
function declarations.
|
|
* We improved parser recovery from code which looks like a function call (but isn't) e.g.
|
|
```
|
|
local x = y
|
|
(expr)[smth] = z
|
|
```
|
|
* We consistently report parse errors before type errors.
|
|
* We display more types as `*unknown*` rather than as an internal type name like `error####`.
|
|
* Luau now infers the result of `Instance:Clone()` much more accurately.
|
|
* Luau type guard refinements now support more arbitrary cases, for instance `typeof(foo) ~= "Instance"` eliminates anything not a subclass of Instance.
|
|
|
|
|
|
## Performance improvements
|
|
|
|
* We optimized the performance of the `Vector3.new` constructor.
|
|
|
|
## Other improvements
|
|
|
|
* We fixed some GC issues where objects could become "zombies".
|
|
* We relaxed the Parallel Lua constraints when dispatching deferred events.
|