luau/Compiler/src
Alexander McCord 259e509038
Sync to upstream/release/623 (#1236)
# What's changed?

### New Type Solver

- Unification of two fresh types no longer binds them together.
- Replaced uses of raw `emplace` with `emplaceType` to catch cyclic
bound types when they are created.
- `SetIndexerConstraint` is blocked until the indexer result type is not
blocked.
- Fix a case where a blocked type got past the constraint solver.
- Searching for free types should no longer traverse into `ClassType`s.
- Fix a corner case that could result in the non-testable type `~{}`.
- Fix incorrect flagging when `any` was a parameter of some checked
function in nonstrict type checker.
- `IterableConstraint` now consider tables without `__iter` to be
iterables.

### Native Code Generation

- Improve register type info lookup by program counter.
- Generate type information for locals and upvalues

---

### 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: James McNellis <jmcnellis@roblox.com>
Co-authored-by: Vighnesh Vijay <vvijay@roblox.com>
Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com>

---------

Co-authored-by: Aaron Weiss <aaronweiss@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-25 15:26:09 -07:00
..
BuiltinFolding.cpp Sync to upstream/release/613 (#1167) 2024-02-15 18:04:39 -08:00
BuiltinFolding.h Sync to upstream/release/589 (#1000) 2023-08-04 12:18:54 -07:00
Builtins.cpp Sync to upstream/release/608 (#1145) 2024-01-12 14:25:27 -08:00
Builtins.h Sync to upstream/release/588 (#992) 2023-07-28 08:13:53 -07:00
BytecodeBuilder.cpp Sync to upstream/release/623 (#1236) 2024-04-25 15:26:09 -07:00
Compiler.cpp Sync to upstream/release/623 (#1236) 2024-04-25 15:26:09 -07:00
ConstantFolding.cpp Sync to upstream/release/605 (#1118) 2023-12-01 23:46:57 -08:00
ConstantFolding.h Optimize vector literals by storing them in the constant table (#1096) 2023-11-17 04:54:32 -08:00
CostModel.cpp Sync to upstream/release/591 (#1012) 2023-08-18 11:15:41 -07:00
CostModel.h Sync to upstream/release/536 (#592) 2022-07-14 15:52:26 -07:00
lcode.cpp Sync to upstream/release/505 (#216) 2021-11-19 08:10:07 -08:00
TableShape.cpp Sync to upstream/release/513 (#340) 2022-02-04 08:45:57 -08:00
TableShape.h Sync to upstream/release/510 (#313) 2022-01-14 08:20:09 -08:00
Types.cpp Sync to upstream/release/623 (#1236) 2024-04-25 15:26:09 -07:00
Types.h Sync to upstream/release/623 (#1236) 2024-04-25 15:26:09 -07:00
ValueTracking.cpp Use const char* const* over const char** (#1005) 2023-08-07 13:45:04 -07:00
ValueTracking.h Use const char* const* over const char** (#1005) 2023-08-07 13:45:04 -07:00