0.700
Immutable
release. Only release title and notes can be modified.
We have reached release 700!
Analysis
table.isfrozenandtable.clearuse{}instead of generic table type to make it work with union of table types.- Relax typing definitions for
types.newtableto make it easier to specify read-only table properties - Do not drop explicit generic type packs. Hopefully fixes #2075
- Added protection against stack overflows to more spots in
Unifier2 - Improved bidirectionally inferring lambdas. When performing inference on a lambda, check right before we attempt to emplace a free type whether there's a generic.
- Reworked overload resolution interface.
OverloadResolver::resolveOverloadwas introduced to abstract and unify existing resolving machinery. instantiation2selects more useful bounds.- If we have positive or negative polarity, blindly use the upper/lower bounds respectively.
- Otherwise, attempt to find a reasonable bound by first avoiding picking
neverorunknown, then doing a subtype test to try to pick a tight bound.
- Added protection against stack overflows to the non-strict type checker
- Luau-syntax configuration extraction can now be timed out during analysis. See
CLI/src/Analyze.cppfor an example.
Require
- Support chained aliases with built-in cycle detection: luau-lang/rfcs#145.
- Resolve JohnnyMorganz/luau-lsp#1246.
Autocomplete
- Do not recommend generic types for anonymous functions being passed as arguments
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: Varun Saini vsaini@roblox.com