You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Another week, another release!
## Analysis/Autocomplete
- Improve recursive type lookups by using scoped tracking of processed
types.
- Enforce recursion limits in subtyping on type packs, not just on
types.
- Simplify type checking for intersections between tables and
discriminants containing read-only table properties.
- Allow fields provided by `__index` to satisfy subtyping relationships.
- Improve the ability for the type checker to do proper generic
substitution in `for ... in` loops.
- Fix a fragment autocomplete bug that caused fragments to be selected
incorrectly in `for ... in` loops.
- Fix a crash caused by `typeof` containing an unterminated function
definition: `typeof(function())`.
- Fix a flagging issue that may have been causing stack overflows in the
previous release.
## Runtime
- Support constant folding for interpolated strings.
- Fix a bug caused by the empty string being the result of constant
folding.
- Add helper macros in Bytecode.h to help access data in Luau auxiliary
instruction bits.
- Add support for branchless `==`/`~=` comparisons in CodeGen (in
certain cases).
---
Co-authored-by: Andy Friesen <[email protected]>
Co-authored-by: Annie Tang <[email protected]>
Co-authored-by: Ariel Weiss <[email protected]>
Co-authored-by: Hunter Goldstein <[email protected]>
Co-authored-by: Ilya Rezvov <[email protected]>
Co-authored-by: Sora Kanosue <[email protected]>
Co-authored-by: Vighnesh Vijay <[email protected]>
Co-authored-by: Vyacheslav Egorov <[email protected]>
* isn't strictly lexical (see test nested_generic_argument_type_packs), and that nested generic packs can shadow existing ones
60
60
* such as with the type <A...>(<A...>(A...) -> (), <A...>(A...) -> ()) -> (), which should result in three independent bindings for A... .
61
61
* To handle this, we maintain a stack of frames, each of which contains a mapping for the generic packs bound in that scope, as well as a pointers to
62
-
* its parent and child scopes. Inside each frame, we map the generic pack to an optional type pack, which is nullopt if we have not yet encountered a mapping
63
-
* for that generic pack in this scope.
62
+
* its parent and child scopes. Inside each frame, we map the generic pack to an optional type pack, which is nullopt if we have not yet encountered a
0 commit comments