luau/tests/conformance
aaron 68bd1b2349
Sync to upstream/release/622 (#1232)
# What's changed?

* Improved the actual message for the type errors for `cannot call
non-function` when attempting to call a union of functions/callable
tables. The error now correctly explains the issue is an inability to
determine the return type of the call in this situation.
* Resolve an issue where tables and metatables were not correctly being
cloned during instantiation (fixes #1176).
* Refactor `luaM_getnextgcopage` to `luaM_getnextpage` (generally
removing `gco` prefix where appropriate).
* Optimize `table.move` between tables for large ranges of elements.
* Reformat a bunch of code automatically using `clang-format`.

### New Type Solver

* Clean up minimally-used or unused constraints in the constraint solver
(`InstantiationConstraint`, `SetOpConstraint`,
`SingletonOrTopTypeConstraint`).
* Add a builtin `singleton` type family to replace
`SingletonOrTopTypeConstraint` when inferring refinements.
* Fixed a crash involving type path reasoning by recording when type
family reduction has taken place in the path.
* Improved constraint ordering by blocking on unreduced types families
that are not yet proven uninhabitable.
* Improved the handling of `SetIndexerConstraints` for both better
inference quality and to resolve crashes.
* Fix a crash when normalizing cyclic unions of intersections.
* Fix a crash when normalizing an intersection with the negation of
`unknown`.
* Fix a number of crashes caused by missing `follow` calls on `TypeId`s.
* Changed type family reduction to correctly use a semantic notion of
uninhabited types, rather than checking for `never` types specifically.
* Refactor the `union` and `intersect` type families to be variadic.

### Native Code Generation

* Improve translation for userdata key get/set and userdata/vector
namecall.
* Provide `[top level]` and `[anonymous]` as function names to
`FunctionStats` as appropriate when no function name is available.
* Disable unwind support on Android platforms since it is unsupported.
*  

---

### Internal Contributors

Co-authored-by: Aaron Weiss <aaronweiss@roblox.com>
Co-authored-by: Alexander McCord <amccord@roblox.com>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
Co-authored-by: Aviral Goel <agoel@roblox.com>
Co-authored-by: Vighnesh Vijay <vvijay@roblox.com>
Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com>

---------

Co-authored-by: Alexander McCord <amccord@roblox.com>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
Co-authored-by: Vighnesh <vvijay@roblox.com>
Co-authored-by: Aviral Goel <agoel@roblox.com>
Co-authored-by: David Cope <dcope@roblox.com>
Co-authored-by: Lily Brown <lbrown@roblox.com>
Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com>
2024-04-19 14:48:02 -07:00
..
apicalls.lua Sync to upstream/release/571 (#895) 2023-04-07 14:01:29 -07:00
assert.lua Sync to upstream/release/501 (#20) 2021-11-01 14:52:34 -07:00
attrib.lua Sync to upstream/release/501 (#20) 2021-11-01 14:52:34 -07:00
basic.lua Sync to upstream/release/594 (#1036) 2023-09-07 17:13:49 -07:00
bitwise.lua Sync to upstream/release/602 (#1089) 2023-11-03 16:45:04 -07:00
buffers.lua Sync to upstream/release/604 (#1106) 2023-11-17 10:46:18 -08:00
calls.lua Sync to upstream/release/550 (#723) 2022-10-21 10:54:01 -07:00
clear.lua Sync to upstream/release/501 (#20) 2021-11-01 14:52:34 -07:00
closure.lua Sync to upstream/release/600 (#1076) 2023-10-20 18:10:30 -07:00
constructs.lua Sync to upstream/release/598 (#1063) 2023-10-06 12:02:32 -07:00
coroutine.lua Sync to upstream/release/514 (#372) 2022-02-17 17:18:01 -08:00
coverage.lua Sync to upstream/release/514 (#372) 2022-02-17 17:18:01 -08:00
datetime.lua Sync to upstream/release/598 (#1063) 2023-10-06 12:02:32 -07:00
debug.lua Sync to upstream/release/617 (#1204) 2024-03-15 16:37:39 -07:00
debugger.lua Sync to upstream/release/618 (#1205) 2024-03-22 10:47:10 -07:00
errors.lua Sync to upstream/release/550 (#723) 2022-10-21 10:54:01 -07:00
events.lua Sync to upstream/release/593 (#1024) 2023-09-01 10:58:27 -07:00
exceptions.lua Sync to upstream/release/501 (#20) 2021-11-01 14:52:34 -07:00
gc.lua Sync to upstream/release/542 (#649) 2022-08-25 14:53:50 -07:00
ifelseexpr.lua Sync to upstream/release/501 (#20) 2021-11-01 14:52:34 -07:00
interrupt.lua Sync to upstream/release/610 (#1154) 2024-01-26 19:20:56 -08:00
iter.lua Sync to upstream/release/550 (#723) 2022-10-21 10:54:01 -07:00
literals.lua Sync to upstream/release/501 (#20) 2021-11-01 14:52:34 -07:00
locals.lua Spelling (#119) 2021-11-04 09:50:46 -05:00
math.lua Sync to upstream/release/602 (#1089) 2023-11-03 16:45:04 -07:00
move.lua Sync to upstream/release/622 (#1232) 2024-04-19 14:48:02 -07:00
native.lua Sync to upstream/release/619 (#1218) 2024-03-30 16:14:44 -07:00
native_types.lua Sync to upstream/release/601 (#1084) 2023-10-27 14:18:41 -07:00
ndebug_upvalues.lua Fix lua_*upvalue() when upvalue names aren't in debug info (#787) 2023-01-18 06:00:13 -08:00
pcall.lua Sync to upstream/release/600 (#1076) 2023-10-20 18:10:30 -07:00
pm.lua Spelling (#119) 2021-11-04 09:50:46 -05:00
safeenv.lua Sync to upstream/release/549 (#707) 2022-10-14 12:48:41 -07:00
sort.lua Sync to upstream/release/571 (#895) 2023-04-07 14:01:29 -07:00
strconv.lua Sync to upstream/release/608 (#1145) 2024-01-12 14:25:27 -08:00
stringinterp.lua String interpolation (#614) 2022-08-24 12:01:00 -07:00
strings.lua Sync to upstream/release/588 (#992) 2023-07-28 08:13:53 -07:00
tables.lua Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
tmerror.lua Sync to upstream/release/591 (#1012) 2023-08-18 11:15:41 -07:00
tpack.lua Sync to upstream/release/550 (#723) 2022-10-21 10:54:01 -07:00
types.lua Sync to upstream/release/544 (#669) 2022-09-08 15:14:25 -07:00
userdata.lua Sync to upstream/release/593 (#1024) 2023-09-01 10:58:27 -07:00
utf8.lua Sync to upstream/release/603 (#1097) 2023-11-10 13:10:07 -08:00
vararg.lua Sync to upstream/release/514 (#357) 2022-02-11 11:02:09 -08:00
vector.lua CodeGen: Improve lowering of NUM_TO_VEC on A64 for constants (#1194) 2024-03-13 12:56:11 -07:00