mirror of
https://github.com/lune-org/lune.git
synced 2024-12-12 13:00:37 +00:00
Fix access of roblox instance reference properties when they are not set
This commit is contained in:
parent
25f46c10a8
commit
8b0edc8dae
3 changed files with 21 additions and 5 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
# Run an individual test using the Lune CLI
|
||||||
|
run-test TEST_NAME:
|
||||||
|
cargo run -- "tests/{{TEST_NAME}}"
|
||||||
|
|
||||||
# Run tests for the Lune library
|
# Run tests for the Lune library
|
||||||
test:
|
test:
|
||||||
cargo test --package lune -- --test-threads 1
|
cargo test --package lune -- --test-threads 1
|
||||||
|
|
|
@ -6,7 +6,7 @@ use std::{
|
||||||
|
|
||||||
use mlua::prelude::*;
|
use mlua::prelude::*;
|
||||||
use rbx_dom_weak::{
|
use rbx_dom_weak::{
|
||||||
types::{Ref as DomRef, Variant as DomValue},
|
types::{Ref as DomRef, Variant as DomValue, VariantType as DomType},
|
||||||
Instance as DomInstance, InstanceBuilder as DomInstanceBuilder, WeakDom,
|
Instance as DomInstance, InstanceBuilder as DomInstanceBuilder, WeakDom,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -739,10 +739,14 @@ impl LuaUserData for Instance {
|
||||||
} else if let Some(prop_default) = info.value_default {
|
} else if let Some(prop_default) = info.value_default {
|
||||||
Ok(LuaValue::dom_value_to_lua(lua, prop_default)?)
|
Ok(LuaValue::dom_value_to_lua(lua, prop_default)?)
|
||||||
} else if info.value_type.is_some() {
|
} else if info.value_type.is_some() {
|
||||||
|
if info.value_type == Some(DomType::Ref) {
|
||||||
|
Ok(LuaValue::Nil)
|
||||||
|
} else {
|
||||||
Err(LuaError::RuntimeError(format!(
|
Err(LuaError::RuntimeError(format!(
|
||||||
"Failed to get property '{}' - missing default value",
|
"Failed to get property '{}' - missing default value",
|
||||||
prop_name
|
prop_name
|
||||||
)))
|
)))
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Err(LuaError::RuntimeError(format!(
|
Err(LuaError::RuntimeError(format!(
|
||||||
"Failed to get property '{}' - malformed property info",
|
"Failed to get property '{}' - malformed property info",
|
||||||
|
|
|
@ -47,3 +47,11 @@ assert(meshPart.Anchored == false)
|
||||||
assert(meshPart.Material == Enum.Material.Plastic)
|
assert(meshPart.Material == Enum.Material.Plastic)
|
||||||
assert(meshPart.Size == Vector3.new(4, 1.2, 2))
|
assert(meshPart.Size == Vector3.new(4, 1.2, 2))
|
||||||
assert(meshPart.CustomPhysicalProperties == nil)
|
assert(meshPart.CustomPhysicalProperties == nil)
|
||||||
|
|
||||||
|
-- Instance reference properties should work
|
||||||
|
|
||||||
|
local objectValue = Instance.new("ObjectValue")
|
||||||
|
|
||||||
|
assert(objectValue.Value == nil)
|
||||||
|
objectValue.Value = meshPart
|
||||||
|
assert(objectValue.Value == meshPart)
|
||||||
|
|
Loading…
Reference in a new issue