luau/Analysis/src
Vighnesh-V 60cd88af32
Sync to upstream/release/681 (#1902)
# What's Changed?
Short week, so a slightly shorter release! This one has been focused on
improving polish in fragment autocomplete and the new solver.

## New Type Solver
* Fix a bug where we didn't infer self types correctly under
bidirectional type inference.
* Improve the memory consumption of the new solver by reducing the
number of expensive allocations performed by `Substitution`.
* The New non strict Mode shouldn't issue errors when we call checked
functions with `never` values.
* Extend the number of cases in which the new non strict mode can report
unknown symbols.
* Fix a bug where `and` and `or` expressions didn't correctly forward
information computed by their operands. This should allow more programs
using these expressions to complete typechecking correctly.
* Small performance improvements for `Generalization`

## Fragment Autocomplete
* Fragment autocomplete provides richer autofill information when typing
`self.|`
* Fragment autocomplete now uses refinement information computed in the
new solver to provide more accurate incremental completion.

## Code Generation
* Fix a bug where Codegen could sometimes try to execute a
non-executable page

---
Co-authored-by: Ariel Weiss <aaronweiss@roblox.com>
Co-authored-by: Hunter Goldstein <hgoldstein@roblox.com>
Co-authored-by: Vighnesh Vijay <vvijay@roblox.com>
Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com>

---------

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: Vyacheslav Egorov <vegorov@roblox.com>
Co-authored-by: Ariel Weiss <aaronweiss@roblox.com>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
2025-07-04 09:26:45 -07:00
..
Anyification.cpp Sync to upstream/release/671 (#1787) 2025-04-25 14:19:27 -07:00
ApplyTypeFunction.cpp Sync to upstream/release/671 (#1787) 2025-04-25 14:19:27 -07:00
AstJsonEncoder.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
AstQuery.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
Autocomplete.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
AutocompleteCore.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
AutocompleteCore.h Sync to upstream/release/651 (#1513) 2024-11-08 13:41:45 -08:00
BuiltinDefinitions.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
Clone.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
Constraint.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
ConstraintGenerator.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
ConstraintSolver.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
DataFlowGraph.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
DcrLogger.cpp Sync to upstream/release/678 (#1878) 2025-06-13 09:36:35 -07:00
Def.cpp Sync to upstream/release/669 (#1770) 2025-04-11 17:44:21 -07:00
EmbeddedBuiltinDefinitions.cpp Sync to upstream/release/674 (#1832) 2025-05-16 12:39:58 -07:00
EqSatSimplification.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
Error.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
ExpectedTypeVisitor.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
FileResolver.cpp Sync to upstream/release/671 (#1787) 2025-04-25 14:19:27 -07:00
FragmentAutocomplete.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
Frontend.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
Generalization.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
GlobalTypes.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
InferPolarity.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
Instantiation.cpp Sync to upstream/release/672 (#1800) 2025-05-02 14:00:23 -07:00
Instantiation2.cpp Sync to upstream/release/671 (#1787) 2025-04-25 14:19:27 -07:00
IostreamHelpers.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
JsonEmitter.cpp Sync to upstream/release/543 (#657) 2022-09-01 16:14:03 -07:00
Linter.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
LValue.cpp Sync to upstream/release/527 (#491) 2022-05-19 17:02:24 -07:00
Module.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
NonStrictTypeChecker.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
Normalize.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
OverloadResolution.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
Quantify.cpp Sync to upstream/release/665 (#1732) 2025-03-14 13:11:24 -07:00
Refinement.cpp Sync to upstream/release/664 (#1715) 2025-03-07 10:07:27 -08:00
RequireTracer.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
Scope.cpp Sync to upstream/release/676 (#1856) 2025-05-30 11:17:49 -07:00
Simplify.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
Substitution.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
Subtyping.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
Symbol.cpp Sync to upstream/release/664 (#1715) 2025-03-07 10:07:27 -08:00
TableLiteralInference.cpp Sync to upstream/release/678 (#1878) 2025-06-13 09:36:35 -07:00
ToDot.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
TopoSortStatements.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
ToString.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
Transpiler.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
TxnLog.cpp Sync to upstream/release/668 (#1760) 2025-04-04 14:11:51 -07:00
Type.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
TypeArena.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
TypeAttach.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
TypeChecker2.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
TypedAllocator.cpp Add #include <stdint.h> to fix building with gcc 15 (#1720) 2025-03-10 06:02:09 -07:00
TypeFunction.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
TypeFunctionReductionGuesser.cpp Sync to upstream/release/678 (#1878) 2025-06-13 09:36:35 -07:00
TypeFunctionRuntime.cpp Sync to upstream/release/678 (#1878) 2025-06-13 09:36:35 -07:00
TypeFunctionRuntimeBuilder.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
TypeIds.cpp Sync to upstream/release/677 (#1872) 2025-06-06 11:52:47 -07:00
TypeInfer.cpp Sync to upstream/release/681 (#1902) 2025-07-04 09:26:45 -07:00
TypeOrPack.cpp Sync to upstream/release/600 (#1076) 2023-10-20 18:10:30 -07:00
TypePack.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
TypePath.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
TypeUtils.cpp Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
Unifiable.cpp Sync to upstream/release/653 (#1541) 2024-11-22 13:00:51 -08:00
Unifier.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00
Unifier2.cpp Sync to upstream/release/680 (#1894) 2025-06-27 13:14:36 -07:00