diff --git a/CHANGELOG.md b/CHANGELOG.md index 70b35d7fd..f4c87ef2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased Changes +* Fixed `value of type nil cannot be converted to number` warning spam in output. [#955] + +[#955]: https://github.com/rojo-rbx/rojo/pull/893 + ## [7.4.2] - July 23, 2024 * Added Never option to Confirmation ([#893]) * Fixed removing trailing newlines ([#903]) diff --git a/aftman.toml b/aftman.toml index 5273b6d07..528524069 100644 --- a/aftman.toml +++ b/aftman.toml @@ -1,5 +1,5 @@ [tools] -rojo = "rojo-rbx/rojo@7.3.0" +rojo = "rojo-rbx/rojo@7.4.1" selene = "Kampfkarren/selene@0.26.1" stylua = "JohnnyMorganz/stylua@0.18.2" run-in-roblox = "rojo-rbx/run-in-roblox@0.3.0" diff --git a/plugin/src/Reconciler/setProperty.lua b/plugin/src/Reconciler/setProperty.lua index 11df6b54f..b5a0e31b1 100644 --- a/plugin/src/Reconciler/setProperty.lua +++ b/plugin/src/Reconciler/setProperty.lua @@ -7,7 +7,7 @@ local Log = require(Packages.Log) local RbxDom = require(Packages.RbxDom) local Error = require(script.Parent.Error) -local function setProperty(instance, propertyName, value) +local function setProperty(instance: Instance, propertyName: string, value: unknown): boolean local descriptor = RbxDom.findCanonicalPropertyDescriptor(instance.ClassName, propertyName) -- We can skip unknown properties; they're not likely reflected to Lua. @@ -28,6 +28,13 @@ local function setProperty(instance, propertyName, value) }) end + if value == nil then + if descriptor.dataType == "Float32" or descriptor.dataType == "Float64" then + Log.trace("Skipping nil {} property {}.{}", descriptor.dataType, instance.ClassName, propertyName) + return true + end + end + local writeSuccess, err = descriptor:write(instance, value) if not writeSuccess then