0.730
Immutable
release. Only release title and notes can be modified.
What's Changed
- Propagate deprecated attribute information on functions to Autocomplete entries by @JohnnyMorganz in #2159
- Add Frontend::clearModules() for selective module removal by @JohnnyMorganz in #2331
Analysis
- Internal refactoring in service of supporting cyclic module dependencies.
- Skip error-ish types when computing properties for autocomplete.
- Fix a regression that would cause us erroneously infer
{unknown}for array-tables.
export type Glob = { string }
local function parseGlob(): Glob
-- Prior, we would incorrectly infer that lua_parts has type `{ unknown }`
local lua_parts = {}
table.insert(lua_parts, "")
table.insert(lua_parts, "")
return {
table.concat(lua_parts)
}
end- Fix a bug where loops could "cancel out" refinements that happened earlier in the block.
type LightingChanger = { [string]: number, Instances: LightingChanger }
local lightingChangers: { LightingChanger } = nil :: any
local closestChanger: LightingChanger?
if #lightingChangers == 1 then
closestChanger = lightingChangers[1]
end
if closestChanger == nil then
return
end
for _, _ in closestChanger do
end
-- Prior, we would claim `closestChanger` was `nil`able here.
local _ = closestChanger.InstancesRuntime
- Fix math.round on negative zero in SSE 4.1 mode.
- Make sure to mark direct access callbacks to cover corner cases.
Native Code Generation
- Sink instructions only used by multiple exit sync blocks into them.
- Fix A64 emitBuiltin in DebugCodegenChaosA64 mode.
- Add an option to output information about register spill and restore events.
- Fix the range of registers marked dead in multi-return builtin fastcalls.
Co-authored-by: Annie Tang annietang@roblox.com
Co-authored-by: Hunter Goldstein hgoldstein@roblox.com
Co-authored-by: Sora Kanosue skanosue@roblox.com
Co-authored-by: Thomas Schollenberger tschollenberger@roblox.com
Co-authored-by: Vighnesh Vijay vvijay@roblox.com
Co-authored-by: Vyacheslav Egorov vegorov@roblox.com
Full Changelog: 0.729...0.730