mirror of
https://github.com/luau-lang/luau.git
synced 2025-08-26 11:27:08 +01:00
# What's Changed? We've been hard at work fixing bugs in the new type solver and getting it ready to go! ## Native Codegen * Specialized Luau Codegen instruction for fetching an import. As a reminder, an import is an expression like `global.thing` and covers stuff like libraries without fastcalls `coroutine.resume`) and atomic extern libraries. ## New Type Solver * Fix an issue that prevented eager generalization from working properly with OO styled code. * Avoid copying uninitialized memory in Luau attribute parsing * Improve type inference of unsealed tables. * This fixes https://github.com/luau-lang/luau/issues/1838 * and https://github.com/luau-lang/luau/issues/1859 * Infer potential singleton string keys in autocomplete when the expected index type is a union type. * Avoid creating cyclic types when reducing types of the form `t1 where t1 = refine<T, t1, Y>` * The type cloner now does the same thing for the new and old solvers. * Properly infer polarity (aka variance) for divergent table properties. (ie tables whose read type and write type are not the same) * Crash fixes. --------- Co-authored-by: Hunter Goldstein <hgoldstein@roblox.com> Co-authored-by: Varun Saini <61795485+vrn-sn@users.noreply.github.com> Co-authored-by: Alexander Youngblood <ayoungblood@roblox.com> Co-authored-by: Menarul Alam <malam@roblox.com> Co-authored-by: Aviral Goel <agoel@roblox.com> Co-authored-by: Vighnesh <vvijay@roblox.com> Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com> Co-authored-by: Ariel Weiss <aaronweiss@roblox.com> |
||
---|---|---|
.. | ||
Anyification.cpp | ||
ApplyTypeFunction.cpp | ||
AstJsonEncoder.cpp | ||
AstQuery.cpp | ||
Autocomplete.cpp | ||
AutocompleteCore.cpp | ||
AutocompleteCore.h | ||
BuiltinDefinitions.cpp | ||
Clone.cpp | ||
Constraint.cpp | ||
ConstraintGenerator.cpp | ||
ConstraintSolver.cpp | ||
DataFlowGraph.cpp | ||
DcrLogger.cpp | ||
Def.cpp | ||
EmbeddedBuiltinDefinitions.cpp | ||
EqSatSimplification.cpp | ||
Error.cpp | ||
ExpectedTypeVisitor.cpp | ||
FileResolver.cpp | ||
FragmentAutocomplete.cpp | ||
Frontend.cpp | ||
Generalization.cpp | ||
GlobalTypes.cpp | ||
InferPolarity.cpp | ||
Instantiation.cpp | ||
Instantiation2.cpp | ||
IostreamHelpers.cpp | ||
JsonEmitter.cpp | ||
Linter.cpp | ||
LValue.cpp | ||
Module.cpp | ||
NonStrictTypeChecker.cpp | ||
Normalize.cpp | ||
OverloadResolution.cpp | ||
Quantify.cpp | ||
Refinement.cpp | ||
RequireTracer.cpp | ||
Scope.cpp | ||
Simplify.cpp | ||
Substitution.cpp | ||
Subtyping.cpp | ||
Symbol.cpp | ||
TableLiteralInference.cpp | ||
ToDot.cpp | ||
TopoSortStatements.cpp | ||
ToString.cpp | ||
Transpiler.cpp | ||
TxnLog.cpp | ||
Type.cpp | ||
TypeArena.cpp | ||
TypeAttach.cpp | ||
TypeChecker2.cpp | ||
TypedAllocator.cpp | ||
TypeFunction.cpp | ||
TypeFunctionReductionGuesser.cpp | ||
TypeFunctionRuntime.cpp | ||
TypeFunctionRuntimeBuilder.cpp | ||
TypeIds.cpp | ||
TypeInfer.cpp | ||
TypeOrPack.cpp | ||
TypePack.cpp | ||
TypePath.cpp | ||
TypeUtils.cpp | ||
Unifiable.cpp | ||
Unifier.cpp | ||
Unifier2.cpp |