luau/tests
vegorov-rbx f5dabc2998
Sync to upstream/release/644 (#1432)
In this update we improve overall stability of the new type solver and
address some type inference issues with it.

If you use the new solver and want to use all new fixes included in this
release, you have to reference an additional Luau flag:
```c++
LUAU_DYNAMIC_FASTINT(LuauTypeSolverRelease)
```
And set its value to `644`:
```c++
DFInt::LuauTypeSolverRelease.value = 644; // Or a higher value for future updates
```

## New Solver
* Fixed a debug assertion failure in autocomplete (Fixes #1391)
* Fixed type function distribution issue which transformed `len<>` and
`unm<>` into `not<>` (Fixes #1416)
* Placed a limit on the possible normalized table intersection size as a
temporary measure to avoid hangs and out-of-memory issues for complex
type refinements
* Internal recursion limits are now respected in the subtyping
operations and in autocomplete, to avoid stack overflow crashes
* Fixed false positive errors on assignments to tables whose indexers
are unions of strings
* Fixed memory corruption crashes in subtyping of generic types
containing other generic types in their bounds

---

Internal Contributors:

Co-authored-by: Aaron Weiss <aaronweiss@roblox.com>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com>
2024-09-20 09:53:26 -07:00
..
conformance Sync to upstream/release/640 (#1374) 2024-08-23 09:35:30 -07:00
require Sync to upstream/release/643 (#1408) 2024-09-13 11:48:25 -07:00
AnyTypeSummary.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
AssemblyBuilderA64.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
AssemblyBuilderX64.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
AstJsonEncoder.test.cpp Sync to upstream/release/639 (#1368) 2024-08-16 11:29:33 -07:00
AstQuery.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
AstQueryDsl.cpp Sync to upstream/release/549 (#707) 2022-10-14 12:48:41 -07:00
AstQueryDsl.h Sync to upstream/release/549 (#707) 2022-10-14 12:48:41 -07:00
AstVisitor.test.cpp Sync to upstream/release/501 (#20) 2021-11-01 14:52:34 -07:00
Autocomplete.test.cpp Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
BuiltinDefinitions.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
ClassFixture.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
ClassFixture.h Sync to upstream/release/600 (#1076) 2023-10-20 18:10:30 -07:00
CodeAllocator.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
Compiler.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
Config.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
Conformance.test.cpp Sync to upstream/release/643 (#1408) 2024-09-13 11:48:25 -07:00
ConformanceIrHooks.h Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
ConstraintGeneratorFixture.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
ConstraintGeneratorFixture.h Sync to upstream/release/602 (#1089) 2023-11-03 16:45:04 -07:00
ConstraintSolver.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
CostModel.test.cpp Sync to upstream/release/591 (#1012) 2023-08-18 11:15:41 -07:00
DataFlowGraph.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
DenseHash.test.cpp Sync to upstream/release/561 (#820) 2023-01-27 14:28:31 -08:00
DiffAsserts.cpp Sync to upstream/release/600 (#1076) 2023-10-20 18:10:30 -07:00
DiffAsserts.h Sync to upstream/release/613 (#1167) 2024-02-15 18:04:39 -08:00
Differ.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
EqSat.language.test.cpp Equality graphs (#1285) 2024-07-16 10:35:20 -07:00
EqSat.propositional.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
EqSat.slice.test.cpp Equality graphs (#1285) 2024-07-16 10:35:20 -07:00
Error.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
Fixture.cpp Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
Fixture.h Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
Frontend.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
Generalization.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
InsertionOrderedMap.test.cpp Sync to upstream/release/580 (#951) 2023-06-09 10:08:00 -07:00
Instantiation2.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
IostreamOptional.h Sync to upstream/release/603 (#1097) 2023-11-10 13:10:07 -08:00
IrBuilder.test.cpp Sync to upstream/release/640 (#1374) 2024-08-23 09:35:30 -07:00
IrCallWrapperX64.test.cpp Sync to upstream/release/601 (#1084) 2023-10-27 14:18:41 -07:00
IrLowering.test.cpp Sync to upstream/release/643 (#1408) 2024-09-13 11:48:25 -07:00
IrRegAllocX64.test.cpp Sync to upstream/release/595 (#1044) 2023-09-15 10:26:59 -07:00
JsonEmitter.test.cpp Sync to upstream/release/543 (#657) 2022-09-01 16:14:03 -07:00
Lexer.test.cpp Sync to upstream/release/629 (#1290) 2024-06-07 10:51:12 -07:00
Linter.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
LValue.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
main.cpp Sync to upstream/release/640 (#1374) 2024-08-23 09:35:30 -07:00
Module.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
NonstrictMode.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
NonStrictTypeChecker.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
Normalize.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
NotNull.test.cpp Sync to upstream/release/555 (#768) 2022-12-02 10:09:59 -08:00
Parser.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
RegisterCallbacks.cpp Sync to upstream/release/594 (#1036) 2023-09-07 17:13:49 -07:00
RegisterCallbacks.h Sync to upstream/release/594 (#1036) 2023-09-07 17:13:49 -07:00
Repl.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
RequireByString.test.cpp Sync to upstream/release/643 (#1408) 2024-09-13 11:48:25 -07:00
RequireTracer.test.cpp Sync to upstream/release/514 (#372) 2022-02-17 17:18:01 -08:00
RuntimeLimits.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
ScopedFlags.h Sync to upstream/release/616 (#1184) 2024-03-08 16:47:53 -08:00
Set.test.cpp Sync to upstream/release/625 (#1252) 2024-05-10 11:21:45 -07:00
SharedCodeAllocator.test.cpp Sync to upstream/release/626 (#1258) 2024-05-16 16:02:03 -07:00
Simplify.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
StringUtils.test.cpp Sync to upstream/release/588 (#992) 2023-07-28 08:13:53 -07:00
Subtyping.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
Symbol.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
ToDot.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TopoSort.test.cpp Sync to upstream/release/523 (#459) 2022-04-14 16:57:43 -07:00
ToString.test.cpp Sync to upstream/release/643 (#1408) 2024-09-13 11:48:25 -07:00
Transpiler.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
TxnLog.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeFunction.test.cpp Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
TypeInfer.aliases.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.annotations.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.anyerror.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.builtins.test.cpp Sync to upstream/release/643 (#1408) 2024-09-13 11:48:25 -07:00
TypeInfer.cfa.test.cpp Sync to upstream/release/636 (#1346) 2024-07-26 10:47:49 -07:00
TypeInfer.classes.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.definitions.test.cpp Sync to upstream/release/639 (#1368) 2024-08-16 11:29:33 -07:00
TypeInfer.functions.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.generics.test.cpp Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
TypeInfer.intersectionTypes.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.loops.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.modules.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.negations.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.oop.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.operators.test.cpp Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
TypeInfer.primitives.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.provisional.test.cpp Sync to upstream/release/643 (#1408) 2024-09-13 11:48:25 -07:00
TypeInfer.refinements.test.cpp Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
TypeInfer.singletons.test.cpp Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
TypeInfer.tables.test.cpp Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
TypeInfer.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.tryUnify.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.typePacks.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.typestates.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeInfer.unionTypes.test.cpp Sync to upstream/release/644 (#1432) 2024-09-20 09:53:26 -07:00
TypeInfer.unknownnever.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypePack.test.cpp Sync to upstream/release/571 (#895) 2023-04-07 14:01:29 -07:00
TypePath.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
TypeVar.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
Unifier2.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
Variant.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
VecDeque.test.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
VisitType.test.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00