Skip to content

0.661

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 14 Feb 22:25
7764298

What's Changed?

This release introduces numerous improvements to the new solver's non-strict mode that should begin to make it more useful - we warn on Unknown Symbols and correctly visit the whole program now. We've also fixed a number of bugs in the new solver as well as made progress on the new round-trippable AST.

Roundtrippable AST

  • Add a new AstNode, AstGenericType
  • Retain source information for AstExprTypeAssertion

New Type Solver

  • New non-strict mode will report unknown symbol errors, e.g
foo = 5
local wrong1 = foob <- issue warning
  • Fixed a bug where new non-strict mode failed to visit large parts of the program.
  • We now infer the types of unnanotated local variables in statements with multiple assignments, e.g. local x: "a", y, z = "a", f()
  • Fixed bugs in constraint dispatch ordering.
  • Fixed a bug that caused an infinite loop between Subtyping, OverloadResolution, and Type Function Reduction, by preventing calls to Type Function Reduction being re-entrant.
  • Fixed a crash in bidirectional type inference caused by asserting read and write properties on a type that was readonly.

Runtime

  • Fix a stack overflow caused by luaL_checkstack consuming stack space even if the function fails to reserve memory.
  • Using '%c' with a 0 value in Luau string.format will append a '\0'. Resolves #1650

Full Changelog: 0.660...0.661

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]