luau/Ast/include/Luau
menarulalam 8fe64db609
Sync to upstream/release/679 (#1884)
# What's Changed?

We've been hard at work fixing bugs and introducing new features!

## VM 
* Include constant-folding information in Luau cost model for inlining
and loop unrolling
   * ~1% improvement in compile times

## New Type Solver
* `Luau::shallowClone`'s last argument, whether to clone persistent
(builtin) types, is now non-optional.
* Refinements on properties of tables are now computed with a `read`
table property. This resolves some issues around refining table
properies and then trying to set them. Fixes #1344. Fixes #1651.
```
if foo.bar then
    -- Prior to this release, this would be `typeof(foo) & { bar: ~(false?) }
    -- Now, this is `typeof(foo) & { read bar: ~(false?) }
end
```
* The type function `keyof` should respect the empty string as a
property, as in:
```
-- equivalent to type Foo =""
type Foo = keyof<{ [""]: number }>
```
* Descend into literals to report subtyping errors for function calls:
this both improves bidirectional inference and makes errors more
specific. Before, the error reporting for a table with incorrect members
passed to a function would cite the entire table, but now it only cites
the members that are incorrectly typed.
* Fixes a case where intersecting two tables without any common
properties would create `never`, instead of a table with both of their
properties.

# Internal Contributors
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: 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: 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>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
2025-06-20 15:55:42 -07:00
..
Allocator.h Sync to upstream/release/662 (#1681) 2025-02-21 10:24:12 -08:00
Ast.h Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
Confusables.h Sync to upstream/release/501 (#20) 2021-11-01 14:52:34 -07:00
Cst.h Sync to upstream/release/676 (#1856) 2025-05-30 11:17:49 -07:00
Lexer.h Lexer: add offset getter (#1688) 2025-02-24 16:25:57 -08:00
Location.h Sync to upstream/release/656 (#1612) 2025-01-10 11:34:39 -08:00
ParseOptions.h Sync to upstream/release/660 (#1643) 2025-02-07 16:17:11 -08:00
Parser.h Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
ParseResult.h Sync to upstream/release/679 (#1884) 2025-06-20 15:55:42 -07:00
StringUtils.h Sync to upstream/release/549 (#707) 2022-10-14 12:48:41 -07:00
TimeTrace.h Sync to upstream/release/645 (#1440) 2024-09-27 11:58:21 -07:00