mirror of
https://github.com/luau-lang/luau.git
synced 2025-08-26 11:27:08 +01:00
# What's Changed? This week comes with many improvements to the new type solver and an important fix to the garbage collection to make it more robust in memory constrained scenarios. # Runtime - Garbage collection will no longer run out of memory itself, which could have happened when resizing arrays to a smaller size # New Type Solver - Type refinements on external types should now work and should no longer normalize the type into `never` - Improved error reporting when `string.format` is used with a dynamic format string - Updated type signature of `getmetatable` library function to use the corresponding type function and produce better type inference - Restored a type mismatch error when converting function types with different number of generic parameters, like `() -> ()` into `<T>() -> ()` - Types resulting from compound assignments have been simplified, reducing cyclic type introduction and inference failures - Fixed function generic types leaking into tables during bidirectional type inference (Fixes #1808 and #1821 ) - Stability and performance improvements (Fixes #1860 ) # Internal Contributors Co-authored-by: Andy Friesen <afriesen@roblox.com> Co-authored-by: Ariel Weiss <aaronweiss@roblox.com> Co-authored-by: Hunter Goldstein <hgoldstein@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>
32 lines
1.4 KiB
C++
32 lines
1.4 KiB
C++
// This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details
|
|
#pragma once
|
|
|
|
#include <string.h>
|
|
|
|
namespace Luau
|
|
{
|
|
|
|
inline bool isAnalysisFlagExperimental(const char* flag)
|
|
{
|
|
// Flags in this list are disabled by default in various command-line tools. They may have behavior that is not fully final,
|
|
// or critical bugs that are found after the code has been submitted. This list is intended _only_ for flags that affect
|
|
// Luau's type checking. Flags that may change runtime behavior (e.g.: parser or VM flags) are not appropriate for this list.
|
|
static const char* const kList[] = {
|
|
"LuauInstantiateInSubtyping", // requires some fixes to lua-apps code
|
|
"LuauFixIndexerSubtypingOrdering", // requires some small fixes to lua-apps code since this fixes a false negative
|
|
"StudioReportLuauAny2", // takes telemetry data for usage of any types
|
|
"LuauTableCloneClonesType3", // requires fixes in lua-apps code, terrifyingly
|
|
"LuauNormalizationReorderFreeTypeIntersect", // requires fixes in lua-apps code, also terrifyingly
|
|
"LuauSolverV2",
|
|
// makes sure we always have at least one entry
|
|
nullptr,
|
|
};
|
|
|
|
for (const char* item : kList)
|
|
if (item && strcmp(item, flag) == 0)
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
} // namespace Luau
|