luau/VM/src
Vighnesh-V 77642988c2
Sync to upstream/release/661 (#1664)
# General
- Additional logging enabled for fragment autocomplete.

## Roundtrippable AST
- Add a new `AstNode`, `AstGenericType`
- Retain source information for `AstExprTypeAssertion`
## New Type Solver
- New non-strict mode will report unknown symbol errors, e.g
```
foo = 5
local wrong1 = foob <- issue warning
```
- Fixed a bug where new non-strict mode failed to visit large parts of
the program.
- We now infer the types of unnanotated local variables in statements
with multiple assignments, e.g. `local x: "a", y, z = "a", f()`
- Fixed bugs in constraint dispatch ordering.
- Fixed a bug that caused an infinite loop between `Subtyping`,
`OverloadResolution`, and `Type Function Reduction`, by preventing calls
to `Type Function Reduction` being re-entrant.
- Fixed a crash in bidirectional type inference caused by asserting read
and write properties on a type that was readonly.

## Runtime
- Fix a stack overflow caused by `luaL_checkstack` consuming stack space
even if the function fails to reserve memory.
- Using '%c' with a 0 value in Luau string.format will append a '\0'.
Resolves https://github.com/luau-lang/luau/issues/1650

## Miscellaneous
- Miscellaneous small bugfixes for the new solver.

**Full Changelog**:
https://github.com/luau-lang/luau/compare/0.660...0.661
----
Co-authored-by: Ariel Weiss <aaronweiss@roblox.com>
Co-authored-by: Hunter Goldstein <hgoldstein@roblox.com>
Co-authored-by: Talha Pathan <tpathan@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>

---------

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>
2025-02-14 13:57:46 -08:00
..
lapi.cpp Sync to upstream/release/659 (#1637) 2025-01-31 18:58:36 -08:00
lapi.h Sync to upstream/release/501 (#20) 2021-11-01 14:52:34 -07:00
laux.cpp Sync to upstream/release/661 (#1664) 2025-02-14 13:57:46 -08:00
lbaselib.cpp Sync to upstream/release/539 (#625) 2022-08-04 15:35:33 -07:00
lbitlib.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
lbuffer.cpp Sync to upstream/release/600 (#1076) 2023-10-20 18:10:30 -07:00
lbuffer.h Sync to upstream/release/600 (#1076) 2023-10-20 18:10:30 -07:00
lbuflib.cpp Sync to upstream/release/660 (#1643) 2025-02-07 16:17:11 -08:00
lbuiltins.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lbuiltins.h Sync to upstream/release/551 (#727) 2022-10-28 03:37:29 -07:00
lbytecode.h Sync to upstream/release/529 (#505) 2022-05-26 15:08:16 -07:00
lcommon.h Sync to upstream/release/539 (#625) 2022-08-04 15:35:33 -07:00
lcorolib.cpp Sync to upstream/release/655 (#1563) 2024-12-13 13:02:30 -08:00
ldblib.cpp Sync to upstream/release/659 (#1637) 2025-01-31 18:58:36 -08:00
ldebug.cpp Sync to upstream/release/658 (#1625) 2025-01-24 12:15:19 -08:00
ldebug.h Sync to upstream/release/658 (#1625) 2025-01-24 12:15:19 -08:00
ldo.cpp Sync to upstream/release/656 (#1612) 2025-01-10 11:34:39 -08:00
ldo.h Sync to upstream/release/656 (#1612) 2025-01-10 11:34:39 -08:00
lfunc.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lfunc.h Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lgc.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lgc.h Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lgcdebug.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
linit.cpp Sync to upstream/release/650 (#1502) 2024-11-01 12:06:07 -07:00
lmathlib.cpp Fix math.map/math.lerp merge fallout (#1621) 2025-01-19 14:14:12 -08:00
lmem.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lmem.h Sync to upstream/release/622 (#1232) 2024-04-19 14:48:02 -07:00
lnumprint.cpp Sync to upstream/release/615 (#1175) 2024-03-01 10:45:26 -08:00
lnumutils.h Sync to upstream/release/650 (#1502) 2024-11-01 12:06:07 -07:00
lobject.cpp Sync to upstream/release/652 (#1525) 2024-11-15 14:29:30 -08:00
lobject.h Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
loslib.cpp Sync to upstream/release/603 (#1097) 2023-11-10 13:10:07 -08:00
lperf.cpp Make os.clock use clock_gettime on FreeBSD (#1364) 2024-08-14 08:31:59 -07:00
lstate.cpp Sync to upstream/release/656 (#1612) 2025-01-10 11:34:39 -08:00
lstate.h Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lstring.cpp Sync to upstream/release/611 (#1160) 2024-02-02 13:32:42 -08:00
lstring.h Sync to upstream/release/539 (#625) 2022-08-04 15:35:33 -07:00
lstrlib.cpp Sync to upstream/release/661 (#1664) 2025-02-14 13:57:46 -08:00
ltable.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
ltable.h Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
ltablib.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
ltm.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
ltm.h Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
ludata.cpp Add lua_getuserdatadtor (#870) 2023-04-11 12:46:55 -07:00
ludata.h Sync to upstream/release/539 (#625) 2022-08-04 15:35:33 -07:00
lutf8lib.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
lveclib.cpp Sync to upstream/release/659 (#1637) 2025-01-31 18:58:36 -08:00
lvm.h Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lvmexecute.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lvmload.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00
lvmutils.cpp Sync to upstream/release/657 (#1619) 2025-01-17 14:55:39 -08:00