mirror of
https://github.com/luau-lang/luau.git
synced 2025-08-26 11:27:08 +01:00
# General * Expose an optional `get_alias` API as an alternative to `get_config` in Luau.Require and Luau.RequireNavigator. * Improve the Luau CLI's virtual filesystem implementation to fix bugs related to `init.luau`. Fixes https://github.com/luau-lang/luau/issues/1816 # New Type Solver * Avoid double reporting errors when erroneous arguments are provided to type functions. * Fix some instances of unresovable cyclic type functions in loops by only considering the first loop cycles. This results in some type inference inaccuracies when the type of a variable in loop through multiple iterations. Fixes https://github.com/luau-lang/luau/issues/1413. * Better generalize free types that have meaningful lower and upper bounds, especially for table indexers. * Report more specific errors when assigning or returning table literal types, instead of citing the *entire* table type. * Inference for functions with generic type packs is greatly improved. * Fix some internal compiler exceptions when using type-stating functions like `table.freeze` in `if _ then _ else _` expressions and short circuiting binary operations. * More consistently simplify unions of primitive types, especially in array-like and dictionary-like tables. * Fix a crash when type checking an erroneous type alias containing `typeof` with a type assertion expression, as in: ``` type MyTable = {} -- This will error at type checking time as it's a duplicate type MyTable = typeof(setmetatable(SomeTable :: {}, SomeMetaTable)); ``` * Fix a crash when inferring the type of an index expression where the indexee is invalid (e.g. `nil`). # Runtime * Avoid throwing an exception from `luau_load` if we run out of memory. * Type functions are no longer compiled and included in bytecode. Fixes #1817. * Fix some instances of Luau C API functions reading invalid debug information (generally when the first or last instruction of a block was being inspected). Fixes #1369. * Avoid potential signed integer overflow when doing bounds checks on tables. * Support 16 byte aligned userdata objects when system allocation alignment is also 16 bytes. * Fix memory leaks in `Luau.Require` when using VM build with no exceptions. Fixes #1827. --------- 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: James McNellis <jmcnellis@roblox.com> Co-authored-by: Sora Kanosue <skanosue@roblox.com> Co-authored-by: Talha Pathan <tpathan@roblox.com> Co-authored-by: Varun Saini <vsaini@roblox.com> Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com> |
||
---|---|---|
.. | ||
Anyification.h | ||
ApplyTypeFunction.h | ||
AstJsonEncoder.h | ||
AstQuery.h | ||
Autocomplete.h | ||
AutocompleteTypes.h | ||
BuiltinDefinitions.h | ||
Cancellation.h | ||
Clone.h | ||
Constraint.h | ||
ConstraintGenerator.h | ||
ConstraintSet.h | ||
ConstraintSolver.h | ||
ControlFlow.h | ||
DataFlowGraph.h | ||
DcrLogger.h | ||
Def.h | ||
Differ.h | ||
Documentation.h | ||
EqSatSimplification.h | ||
EqSatSimplificationImpl.h | ||
Error.h | ||
FileResolver.h | ||
FragmentAutocomplete.h | ||
Frontend.h | ||
Generalization.h | ||
GlobalTypes.h | ||
InferPolarity.h | ||
InsertionOrderedMap.h | ||
Instantiation.h | ||
Instantiation2.h | ||
IostreamHelpers.h | ||
JsonEmitter.h | ||
Linter.h | ||
LValue.h | ||
Metamethods.h | ||
Module.h | ||
ModuleResolver.h | ||
NonStrictTypeChecker.h | ||
Normalize.h | ||
NotNull.h | ||
OverloadResolution.h | ||
Polarity.h | ||
Predicate.h | ||
Quantify.h | ||
RecursionCounter.h | ||
Refinement.h | ||
RequireTracer.h | ||
Scope.h | ||
Set.h | ||
Simplify.h | ||
Substitution.h | ||
Subtyping.h | ||
Symbol.h | ||
TableLiteralInference.h | ||
ToDot.h | ||
TopoSortStatements.h | ||
ToString.h | ||
Transpiler.h | ||
TxnLog.h | ||
Type.h | ||
TypeArena.h | ||
TypeAttach.h | ||
TypeChecker2.h | ||
TypeCheckLimits.h | ||
TypedAllocator.h | ||
TypeFunction.h | ||
TypeFunctionReductionGuesser.h | ||
TypeFunctionRuntime.h | ||
TypeFunctionRuntimeBuilder.h | ||
TypeFwd.h | ||
TypeInfer.h | ||
TypeOrPack.h | ||
TypePack.h | ||
TypePairHash.h | ||
TypePath.h | ||
TypeUtils.h | ||
Unifiable.h | ||
Unifier.h | ||
Unifier2.h | ||
UnifierSharedState.h | ||
VisitType.h |