Skip to content

0.660

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 08 Feb 00:45
2e61028

What's Changed

This release introduces initial work on a Roundtrippable AST for Luau, and numerous fixes to the new type solver, runtime, and fragment autocomplete.

Roundtrippable AST

To support tooling around source code transformations, we are extending the parser to retain source information so that we can re-emit the initial source code exactly as the author wrote it. We have made numerous changes to the Transpiler, added new AST types such as AstTypeGroup, and added source information to AST nodes such as AstExprInterpString, AstExprIfElse, AstTypeTable, AstTypeReference, AstTypeSingletonString, and AstTypeTypeof.

New Type Solver

  • Implement setmetatable and getmetatable type functions.
  • Fix handling of nested and recursive union type functions to prevent the solver from getting stuck.
  • Free types in both old and new solver now have an upper and lower bound to resolve mixed mode usage of the solvers in fragment autocomplete.
  • Fix infinite recursion during normalization of cyclic tables.
  • Add normalization support for intersections of subclasses with negated superclasses.

Runtime

  • Fix compilation error in Luau buffer bit operations for big-endian machines.

Miscellaneous

  • Add test and bugfixes to fragment autocomplete.
  • Fixed clang-tidy warnings in Simplify.cpp.

Full Changelog: 0.659...0.660


Co-authored-by: Ariel Weiss [email protected]
Co-authored-by: Hunter Goldstein [email protected]
Co-authored-by: Talha Pathan [email protected]
Co-authored-by: Varun Saini [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]